1.DQL
DQL:英语 Data query language
数据查询语言,用来查询数据库中表的记录。
Select 字段列表
From 表名
Where 条件列表
Group by 分组字段列表
Having 分组后条件列表
Order by 排序字段列表
Limit 分页参数
①基本查询
查询多个字段:
Select 字段1,字段2 from 表名;
Select * from 表名;
设置别名:Select 字段1 [as 别名],字段2[as 别名] from 表名;
去除重复记录:Select distinct 字段列表 from 表名;
②条件查询
Select 字段列表 from 表名 where 条件列表;
like 占位符 : _ 匹配单个字符,% 匹配任意个字符。
in(…):在in之后的列表中的值多选一。
③分组查询
Select 聚合函数名(字段列表)from 表名;
聚合函数:count max min avg sum
Select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where是分组之前进行过滤,若不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。
且where不能对聚合函数进行判断,而having可以。
执行顺序:where>聚合函数>having
分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
④排序查询
Select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
排序方式:ASC 升序(默认),DESC 降序。
tip:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
⑤分页查询
Select 字段列表 from 表名 limit 起始索引,查询记录数;
起始索引从0开始,如果查询是第一页数据起始索引,可以省略。
不同数据库的分页查询实现方式不同,MySQL中是limit。
2.DCL
DCL:英语 Data control language
数据控制语言,用来管理数据库的用户,控制数据库的访问权限。
①管理用户
查询用户:Use mysql;
Select * from user;
创建用户:Create user '用户名'@'主机名' identified by '密码';
修改用户密码:Alter user '用户名'@'主机名' identified with mysql_native_password '密码';
删除用户:Drop user '用户名'@'主机名';
②权限控制
查询权限:Show grants for '用户名'@'主机名';
授予权限:Grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
撤销权限:Revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
tips:多个权限之间使用逗号分隔,授权时数据库名和表名可以使用*进行通配,代表所有。