1.SQL分类
(1)DDL(Data Definition Language)数据定义语言
操作数据库和表(增删改数据库和表)
关键字:create,drop,alter等
(2)DML(Data Manipulation Language)数据操作语言
操作数据库中表的数据(增删改表数据)
关键字:insert,delete,update等。
(3)DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。
关键字:select,where等。
(4)DCL(Data Control Language)数据控制语言
管理用户,授权。
关键字:GRANT REVOKE等。
2. DCL操作
2.1 管理用户
(1)添加用户
- 语法
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
- 示例
# 创建只能在本主机登录数据库的用户
CAEATE USER 'zhangsan'@ 'localhost' IDENTIFIED BY '123456';
#创建可以在其他主机登录的数据库的用户
CAEATE USER 'zhangsan'@'%' IDENTIFIED BY '123456';
(2)删除用户
- 语法
DROP USER '用户名'@ '主机名';
(3)修改用户密码
- 语法
# 第一种方式
UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
# 第二种方式
SET PASSWORD FOR '用户名'@ 'localhost' = PASSWORD('新密码');
- 在MySQL中,忘记root用户的密码解决步骤
① 停止mysql服务;
以管理员方式打开cmd窗口,输入命令 net stop mysql
② 使用无验证方式启动mysql服务;
mysqld --skip-grant-tables
③ 打开新的cmd窗口,直接输入mysql命令回车,即可登录成功;
④ cmd窗口下,修改root用户密码;
use mysql;
update user set password = password(‘新密码’) where user = ‘root’;
⑤ 关闭两个cmd窗口;
⑥ 在任务管理器中,手动结束mysqld.exe进程;
⑦ 启动mysql服务;
以管理员方式打开cmd窗口,输入命令 net start mysql
⑧ 使用新密码登录。
(4)查询用户
- 语法
# 切换到mysql数据库
USE mysql;
# 查询user表
SELECT * FROM USER;
- 注意:通配符% 表示可以在任意主机使用用户登录数据库。
2.2 授权操作
(1)查询权限
- 语法
SHOW GRANTS FOR '用户名'@ '主机名';
- 示例
# 查询root用户权限
SHOW GRANTS FOR 'root'@ 'localhost';
(2)授予权限
- 语法
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@ '主机名';
- 示例
# 给 用户lisi 授予 查询 数据库ecargbd3中的account表的权限
GRANT SELECT ON ecargdb3.account TO 'lisi'@ 'localhost';
# 给 用户zhangsan 授予 所有数据库的所有表的所有权限
GRANT ALL ON *.* TO 'zhangsan'@ 'localhost';
(3)撤销权限
- 语法
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@ '主机名';
- 示例
# 撤销 用户lisi 更新 数据库ecargbd3中的account表的权限
REVOKE UPDATE ON ecargdb3.account FROM 'lisi'@ 'localhost';
3.其他数据库操作地址
(1)DDL详细介绍见MySQL数据库和表之CRUD(DDL)
(2)DML详细介绍见MySQL数据库表数据之CRUD(DML)
(3)DQL详细介绍见MySQL数据库表数据之查询(DQL)