MYSQL基本操作语句

0、修改密码:mysqladmin -u root -p password 123456

导出数据库:mysqldump -u root -p yunpay>yunpay.sql

导入数据库:mysql –u root -p yunpay < yunpay.sql

1、为mysql增加一个名为admin,主机名任意的网络用户,其通过密码‘123‘访问数据库,这个用户拥有对数据库的所有操作权限(ALL PRIVILEGES)

CREATE USER ‘admin‘@‘%‘ IDENTIFIED BY ‘123‘;

GRANT ALL PRIVILEGES ON * . * TO ‘admin‘@‘%‘ IDENTIFIED BY ‘123‘ WITH GRANT OPTION;

2、删除该用户

DROP USER ‘wbhuang‘@‘%‘;

3、创建数据库

CREATE DATABASE school;

USE school;

SHOW TABLES;

4、删除、创建数据表

删除数据表时,有如下语法

DROP TABLE <表名> [RESTRICT | CASCADE];

当选择RESTRICT:则该表的删除是有限制条件的。欲删除的基本表不能被其他表的约束所引用(如CHECK,FOREIGN KEY等约束),不能有视图,触发器,存储过程和函数,否则不能删除。如果选择CASCADE:则删除基本表的同事,相关的依赖对象,例如视图,都将被一起删除。下面语句的"SET FOREGIN_KEY_CHECKS = 0;"为取消CHECKS依赖。可见MYSQL默认的删除表方式为RESTRICT(受约束的)。

SET FOREIGN_KEY_CHECKS = 0;

DROP TABLE IF EXISTS Student;

DROP TABLE IF EXISTS Course;

DROP TABLE IF EXISTS SC;

CREATE TABLE Student

    (Sno CHAR(9) PRIMARY KEY,

     Sname CHAR(20) UNIQUE,

         Ssex CHAR(2),

         Sage SMALLINT,

         Sdept CHAR(20)

        );

        

CREATE TABLE Course

    (Cno CHAR(4) PRIMARY KEY,

         Cname CHAR(40),

         Cpno CHAR(4),/*先修课*/

         Ccredit SMALLINT,

         FOREIGN KEY (Cpno) REFERENCES Course(Cno)

         /*表级完整性约束条件,Cpno是外码,被参照表是Course,被参照列是Cno*/

         );

CREATE TABLE SC

    (Sno CHAR(9),

         Cno CHAR(4),

         Grade SMALLINT,

         PRIMARY KEY (Sno,Cno),

         /*主码由两个属性构成,必须作为表级完整性进行定义*/

         FOREIGN KEY (Sno) REFERENCES Student(Sno),

         FOREIGN KEY (Cno) REFERENCES Course(Cno)

        );

5、修改数据表

ALTER TABLE Student DROP COLUMN Sentry;

ALTER TABLE Student ADD Sentrance DATE;

ALTER TABLE Student CHANGE Sentrance Sentry DATE;

/*为Student增加"入学时间"列*/

ALTER TABLE Student MODIFY COLUMN Sage INT;

/*将年龄的数据类型由字符型改为整形*/

ALTER TABLE Course ADD UNIQUE(Cname);

/*增加课程名称必须取唯一值的约束条件*/

6、删除、创建索引表

DROP INDEX Stusno ON Student;

DROP INDEX Coucno ON Course;

DROP INDEX SCno ON SC;

CREATE UNIQUE INDEX Stusno ON Student(Sno);

/*按课程号升序建唯一索引*/

CREATE UNIQUE INDEX Coucno ON Course(Cno);

/*SC表按学号升序和课程号降序建唯一索引*/

CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC);

<br>SELECT * FROM INDEX Stusno;

7、插入数据

INSERT INTO Student (Sno,Sname,Ssex,Sage,Sdept,Sentry) VALUES(‘20071025‘,‘wbhuang‘,‘male‘,23,‘math‘,‘2007-09-01‘);

INSERT INTO Student (Sno,Sname,Ssex,Sage,Sdept,Sentry) VALUES(‘20071026‘,‘dkluo‘,‘male‘,24,‘math‘,‘2007-09-01‘);

INSERT INTO Student (Sno,Sname,Ssex,Sage,Sdept,Sentry) VALUES(‘20071005‘,‘hlyang‘,‘male‘,24,‘math‘,‘2007-09-01‘);

INSERT INTO Student (Sno,Sname,Ssex,Sage,Sdept,Sentry) VALUES(‘20071007‘,‘ljhu‘,‘male‘,24,‘math‘,‘2007-09-01‘);

INSERT INTO Student (Sno,Sname,Ssex,Sage,Sdept,Sentry) VALUES(‘20071024‘,‘yluo‘,‘male‘,24,‘math‘,‘2007-09-01‘);

INSERT INTO Course (Cno,Cname,Cpno,Ccredit) VALUES(‘100‘,‘Chinese‘,‘100‘,4);

INSERT INTO Course (Cno,Cname,Cpno,Ccredit) VALUES(‘101‘,‘English‘,‘100‘,3);

INSERT INTO Course (Cno,Cname,Cpno,Ccredit) VALUES(‘102‘,‘Science‘,‘100‘,2);

INSERT INTO Course (Cno,Cname,Cpno,Ccredit) VALUES(‘103‘,‘Math‘,‘100‘,5);

8、修改、删除数据

UPDATE  `school`.`student` SET  `Sname` =  ‘wbhuang‘,`Sdept` =  ‘xinji‘ WHERE  `student`.`Sno` =  ‘20071025‘;

DELETE FROM Student WHERE Sno=‘20071025‘;

9、普通查询和聚集函数

SELECT Sno,Sname,Ssex FROM Student WHERE Sno=‘20071004‘;

SELECT COUNT(DISTINCT Sname) FROM Student;

SELECT AVG(Sage) FROM Student;

SELECT Cno FROM Student ORDER BY Sage DESC;

ORDER BY <列名|,列名> [ASC | DESC];       ASC升序,DESC降序

COUNT([DISTINCT | ALL] * )          统计元素个数

COUNT([DISTINCT | ALL] <列名> ) 统计一列中元素个数

SUM([DISTINCT | ALL] <列名> )       计算一列值的总和(数值型)

AVG([DISTINCT | ALL] <列名> )       计算一列值的平均值(数值型)

MAX([DISTINCT | ALL] <列名> )       计算一列值的最大值

MIX([DISTINCT | ALL] <列名> )       计算一列值的最小值

GROUP BY 子句将查询结果按某一列或多列的值分组,值相等的为一组。

SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno;

/*Cno值相等的为一组,计算各组的COUNT(Sno)*/

10、连接查询

/*等值,非等值连接:比较的连接谓词有=、<、>、>=、<=、!=(或<>)等*/

SELECT Student.*,SC.* FROM Student,SC WHERE Student.Sno=SC.Sno;

/*若在等值连接中把目标列的重复的属性去掉则为自然连接*/

SELECT Student.*,SC.Cno,SC.Grade FROM Student,SC WHERE Student.Sno=SC.Sno;

/*自身连接:一个表与自己进行连接*/

SELECT FIRST.*,SECOND.* FROM Course FIRST, Course SECOND WHERE FIRST.Cpno=SECOND.Cno;

/*外连接:若某个Student没有选课,仍把舍弃的Student元组保存在结果中,其SC的属性全填NULL*/

SELECT * FROM Student LEFT JOIN SC ON (Student.Sno=SC.Sno);

11、嵌套查询

/*去掉Student.Cname的UNIQUE*/

ALTER TABLE Student DROP INDEX Sname;

/*带有比较运算符的子查询*/

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sdept = (

    SELECT Sdept

    FROM Student

    WHERE Sno=‘20071004‘);

                        

SELECT Sno,Sname,Sdept

FROM Student

WHERE Sno IN (

    SELECT Sno

    FROM SC

    WHERE Grade>=5);

                        

/*带有ANY(SOME)或ALL谓词的子查询*/

SELECT Sno,Sname,Sage,Ssex

FROM Student

WHERE Sage>ANY (

    SELECT Sage

    FROM Student

    WHERE Ssex=‘fe‘);

/*带有[NOT] EXISTS谓词的子查询*/

/*EXISTS谓词的子查询不反悔任何数据,只产生逻辑真与假*/

/*拿外层的元组逐个放在内层中判断是否EXIST,如果为真则将元组放入结果集*/

SELECT Sname

FROM Student

WHERE EXISTS (

    SELECT *

    FROM SC

    WHERE Sno=Student.Sno

    AND Cno=‘100‘);

                            

/*集合查询:UNION并集,INTERSECT交集,EXCEPT差集*/

SELECT Sno

FROM Student

WHERE Sdept=‘hwx‘

UNION

SELECT *

FROM Student

WHERE Sage>=20;

12、视图操作

/*创建视图*/

CREATE VIEW V_Student

AS

SELECT Sno,Sname,Sage

FROM Student

WHERE Sdept=‘xj‘;

/*删除视图*/

DROP VIEW V_Student;

/*查询视图*/

SELECT Sno,Sname

FROM V_Student

WHERE Sage>50;

/*更新视图*/

UPDATE V_Student

SET Sname=‘vname‘

WHERE Sno=‘20071089‘;

INSERT INTO V_Student

VALUES (‘20081010‘,‘vnew‘,36);

时间: 2024-10-17 06:23:33

MYSQL基本操作语句的相关文章

SqlServer 与 MySQL 基本操作语句对比

继上篇 MySQL 基本操作语句 后,个人测试和补充了 SqlServer 与 MySQL 的 基本操作语句对比,主要是对比SQL命令的一些差异,不作更多说明. (由于mysql 没有系统学习过,欢迎大侠们拍砖~~)  SqlServer版本:SqlServer 2008 MySQL版本: MySQL 5.5 执行符号: MySQL :分号';' SqlServer :字符'GO' 自增列:MySQL必须要索引,不能设置增量: 默认值:MySQL默认值不用加括号:SqlServer可加或不加:

MySql 基本操作语句整理

数据库 DATABASE: 创建 CREATTE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name . 删除: DROP {DATABASE | SCHEMA} [IF EXISTS] db_name; 显示: SHOW{ DATABASES| SCHEMAS} [LIKE 'pattern'|WHERE expr]; 选择: USE database_name : 数据表 T

Mysql的基本操作语句(适合初学者借鉴)

因本人之前对mysql数据库不是特别了解,所以那段时间为了应对工作做出了各种努力,现将本人总结整理的mysql数据库基本操作摘录出来分享给大家,大多已加批注,方便记忆学习!  Mysql的基本操作语句 1.新建用户 1.1 登录MYSQL: @>mysql -u root -p @>密码 无密码设置如果已设mysql系统环境变量可直接mysql进入,如没有设置mysql系统环境变量请使用绝对路径 1.2 创建用户: mysql> insert into mysql.user(Host,U

Linux下的Mysql基本语句

Linux下的Mysql基本语句 实验目标 数据库常见概念 SQL语句概述-创建数据库 SQL语句之表的基本操作 实验环境 LAMB环境 服务端:xuegod63.cn     IP:192.168.1.63 客户端:xuegod64.cn                   IP:192.168.1.64   实验概述 数据库相关概念: DBD(数据库开发)  DBA(数据库管理员) SQL :结构化查询语言(Structured QueryLanguage)简称SQL 作用:结构化查询语言是

Linux下mysql基本操作

Linux下mysql基本操作                            作者:浩浩哥来了 对mysql进行初始密码的添加 方法(一) mysqladmin -uroot password 123 方法(二) 如果在添加初始密码是报错了可以进行我下面的方法修改密码. ERROR1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 在/etc/my.cnf文件中添加skip-grant-

快速学习MySQL SQL语句

须知: SQL语言:结构化查询语言,是关系型数据库查询语言的标准,不同的数据库虽然有自己私有扩展,但关键词都支持:(select.update.delete.insert.where) SQL语句分类:像Oracle.MSSQL都是通用的 DDL:数据定义语言(create.alter.drop.rename) DML:数据库维护语言(select.insert.update.delete) DCL:数据库控制语言,权限(Grant.revoke) TCL:事物型语言(commt.sarepqi

95.更改MySQL的root用户密码,MySQL基本操作的常用命令

更改MySQL的root用户密码 1.首次进入数据库 [[email protected] ~]# /usr/local/mysql/bin/mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.6.36 MySQL Community Server (GPL) Copyright (c) 2000, 2017, O

Mysql基本操作、C++Mysql简单应用、PythonMysql简单应用

MySql基本操作 -- 当指定名称的数据库不存在时创建它并且指定使用的字符集和排序方式 CREATE DATABASE IF NOT EXISTS db_name CHARACTER SET UTF8 COLLATE utf8_general_ci; -- 显示数据库语句 SHOW DATABASES; -- 查看数据库的创建方式,主要是字符类型 SHOW CREATE DATABASE db_name; -- 修改数据库的属性信息,比如修改字符集为 GBK ALTER DATABASE db

mysql基本操作和授权

mysql基本操作和授权:(介绍5.7的和5.6很多地方不一样哦)MySQL Server version: 5.7.23 本文的数据库test本文的表名test本文的用户名testshow databases; 命令查看已经创建了哪些数据库.show columns from test 或者desc test;获取表结构命令:shou tables 查看所有的表use database1; 切换数据库show grants; 查看当前用户的权限show grants for [email pr