[
code
]
DQL 数据查询语言
查询关键字:select
以下是DQL的语法:
select 字段列表
from 表名列表
where 条件列表
group by 分组字段列表
having 分组后条件列表
order by 排序字段列表
limit 分页参数
基本查询
select 字段1,字段2,...,字段n from 表名; -- 查询多个字段
select * from 表名; --查询全部
select 字段1 [as 别名1],...,字段n [as 别名n] from 表名;
-- 别名的设置是可选的
select distinct 字段列表 from 表名; -- 对查询结果去重
条件查询
select 字段列表 from 表名 where 条件列表;
条件可以包括各类比较运算符,逻辑运算符:
聚合函数
-- 聚合函数可作用于表的某一列
-- null不参与聚合函数的运算
count --统计数量
max --最大值
min --最小值
avg -- 平均值
sum --求和
-- 用法
select 聚合函数(字段列表) from 表名;
分组查询
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where和having的区别:
where是分组之前过滤,不满足where条件的不参与分组,而having是对分组之后的结果进行过滤;where不能对聚合函数进行判断,而having可以。
执行顺序:where>聚合函数>having
排序查询
select 字段列表 from 表名 order by 字段1 排序方式1, 字段2 排序方式2;
排序方式有:ASC升序(default),DESC降序
如果是多字段排序,当第一个字段值相同时,才会参考第二个字段进行排序。
分页查询
select 字段列表 from 表名 limit 起始索引, 查询记录数;
-- 起始索引为(页码-1)*每页记录数
起始索引是从0开始的,如果查询的是第一页的数据,那么起始索引可以忽略。
DQL的执行顺序
编写顺序
select from where group by having order by limit
-- 执行顺序
-- 5 1 2 3 4 6 7
DCL 数据控制语言
用来控制用户对数据库的访问权限:
-- 查询用户
use mysql;
select * from user;
-- 创建用户 主机名可以用百分号通配
create user '用户名'@'主机名' identified by '密码'
-- 修改密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码'
--删除用户
drop user '用户名'@'主机名'