编写顺序和执行顺序是不一样的
编写顺序:
SELECT
字段列表
FROM
表名列表
WHERE
条件列表
GROUP BY
分组字段列表
HAVING
分组后条件列表
ORDER BY
排序字段列表
LIMIT
分页参数
DCL
英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
查询mysql用户
use mysql; // 用户所具有的全部信息都是放在mysql这个数据库中的
select * from user;
创建用户-语法
create user '用户名'@'主机名' identified by '密码';
创建用户ituser, 只能够在当前主机localhost访问,密码123456
create user 'ituser'@'localhost' identified by '123456';
当前我们创建的这个数据库用户。
它只能访问mysql数据库,其他数据库没有访问的权限。
创建用户user,可以在任意主机访问数据库,密码123456
create user 'user'@'%' identified by '123456';
ps:% 任意主机
修改用户的密码-语法
alter use '用户名'@'主机名' identified with mysql_native_password by '新密码';
修改用户user的访问密码为123
alter use 'user'@'%' identified with mysql_native_password by '123'
删除用户密码-语法
drop user '用户名'@'主机名';
注意:
·主机名可以使用%通配。
·这类SQL开发人员操作的比较少,主要是DBA ( Database Administrator数据库管理员)使用。
权限控制
查询用户有哪些权限
查询用户有哪些权限语法: show grants for '用户名'@'主机名';
现在我们查询之前创建的 ituser 用户有哪些权限。
show grants for 'ituser'@'localhost';
出现:GRANT USAGE ON xxx表示只有连接权限
授予权限
grant 列表列表 on 数据库名.表名 to '用户名'@'主机名';
现在我们需要给ituser用户设置某一个数据库的所有权限
grant all on itdemo1.* to 'ituser'@'localhost';
出现 GRANT ALL PRIVILEGES 表示是所有的权限
撤销权限
revoke 列表列表 on 数据库名.表名 from '用户名'@'主机名';
现在我们要撤销 ituser用户 itdemo1数据库下所有表的所有权限,如下
revoke all on itdemo1.* from 'ituser'@'localhost';
撤销成功后,我们可以查询一下:
show grants for 'ituser'@'localhost';
出现:GRANT USAGE ON xxx 表示只有连接权限
ps:itdemo1.* 表示itdemo1数据库下的所有表
注意的是
·多个权限之间,使用逗号分隔
·授权时,数据库名和表名可以使用*进行通配,代表所有。
遇见问题,这是你成长的机会,如果你能够解决,这就是收获。
作者:晚来南风晚相识