mysql [-h host] -u root -p 连接MySQL
-h host:host代表要连接的主机地址 可以省略
-u root:root为MySQL中的管理员用户名
-p :root用户对应的密码
#创建用户
CREATE USER ‘用户名’[@ ‘主机地址’][ IDENTIFIED BY ‘密码’];
[]:为可省略部分,如果省略了主机地址 默认为 % ;如果省略了密码,
该用户没有密码!
#创建MySQL用户cmy
CREATE USER ‘cmy’@’%’ IDENTIFIED BY‘123’;
#授予cmy用户全部权限
GRANT ALL ON *.* TO ‘cmy’@’%’;
#刷新权限 立即生效
FLUSH PRIVILEGES;
#删除用户
DROP USER ‘用户名’@‘主机地址’;
#创建数据库 `` 作用将数据库名|表名和数据库的关键字区分开 可有有无
CREATE DATABASE ‘数据库名’;
#展示数据
SHOW DATABASES;
#切换数据库
USE ‘数据库名’;
#删除数据库
DROP DATABASE ‘数据库名’;
(1)修改表名
ALTER TABLE 旧表名 RENAME 新表名;
(2)修改字段的数据类型
ALTER TABLE 表名 MODIFY 字段名 数据类型;
(3)修改字段名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;
(4)添加字段
ALTER TABLE 表名 ADD 新字段名 数据类型;
(5)删除字段
ALTER TABLE 表名 DROP 字段名;
(6)给表设置主键约束 约束名:PK_列名
ALTER TABLE 表名 ADD CONSTRAINT 约束名 PRIMARY KEY 表名(`列`)
(7)给表设置外键约束
ALTER TABLE 从表 ADD CONSTRAINT 约束名 FOREIGN KEY(`从表的外键`) REFERENCES `主表` (`主键`);
(8)删除数据表(表结构和数据都不保留)
DROP TABLE 表名;
(9)删除数据表(表结构保留、数据不保留)
TRUNCATE 表名;
(10)撤销用户权限
revoke all on *.* from 'root'@'192.168.0.197' ;
(11)删除外键
ALTER TABLE test2 DROP FOREIGN KEY FK_tnum;
(12)删除主键
ALTER TABLE test DROP PRIMARY KEY;
#查询Java基础考试的成绩是否存在大于80分的学生,如果存在打印所有人
SELECT stuname,stuid FROM student s WHERE EXISTS(
SELECT stuid,score,sid FROM result r WHERE sid=
(SELECT sid FROM SUBJECT WHERE sname='Java基础')
AND score >60 AND s.`stuid`=r.`stuid`
);
#查询Java基础考试的成绩是否存在大于80分的学生,如果存在打印前三人
SELECT s.stuname,s.stuid,r.score,r.sid FROM student s
INNER JOIN result r ON s.`stuid`=r.`stuid`
WHERE EXISTS(
SELECT stuid,score,sid FROM result r1 WHERE score >70
AND r1.sid=(SELECT sid FROM SUBJECT WHERE sname='Java基础')
AND r.`stuid`=r1.`stuid` AND r.`sid`=r1.`sid`
)ORDER BY score DESC LIMIT 3;
#检查Java基础考试的成绩是否存在小于80分,如果有,则所有成绩+5分,直至>=80分
UPDATE result SET score=score+5 WHERE EXISTS(
SELECT stuid,score,sid FROM (SELECT * FROM result) tmp WHERE `sid`=
(SELECT sid FROM SUBJECT WHERE sname='Java基础')
AND tmp.score <80 AND tmp.stuid=result.`stuid` AND tmp.sid=result.`sid`
);