MySQL--DQLDCL
目录
DQL
DQL - 介绍
DQL - 语法和执行顺序
DQL - 基本查询
DQL - 条件查询
DQL - 聚合函数
DQL - 分组查询
DQL - 排序查询
DQL - 分页查询
DCL
DCL - 介绍
DCL - 管理用户
DCL - 权限控制
DQL
DQL - 介绍
DQL 英文全称是 Data Query Language (数据查询语言),数据查询语言,用来查询数据库中表的记录。
查询关键字:SELECT
DQL - 语法和执行顺序
编写顺序
- select 字段列表
- from 表名列表
- where 条件列表
- group by 分组字段列表
- having 分组后条件列表
- order by 排序字段列表
- limit 分页参数
执行顺序
DQL - 基本查询
查询多个字段
select 字段1, 字段2, 字段3 ... from 表名;
select * from 表名;
设置别名
select 字段1 [as '别名1'], 字段2 [as 别名2] ... from 表名;
去除重复记录
select distinct 字段列表 from 表名;
DQL - 条件查询
- select 字段列表 from 表名 where 条件列表;
比较运算符 | 功能描述 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<> 或 != | 不等于 |
BETWEEN … AND … | 在某个范围之内(含最小、最大值)前小后大 |
IN(...) | 在 IN 之后的列表中的值,多选一 |
LIKE 占位符 | 模糊匹配(_ 匹配单个字符,% 匹配任意个字符) |
IS NULL | 是 NULL |
逻辑运算符 | 功能描述 |
---|---|
AND 或 && | 并且(多个条件同时成立) |
OR 或 || | 或者(多个条件任意一个成立) |
NOT 或! | 非,不是 |
DQL - 聚合函数
介绍
- 将一列数据作为一个整体,进行纵向计算。
常见聚合函数
函数 功能 count 统计数量 max 最大值 min 最小值 avg 平均值 sum 求和 语法
- select 聚合函数(字段列表)from 表名;
注意:所有null值不参与聚合函数计算
DQL - 分组查询
语法:
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
where 与 having 区别:
- 执行时机不同:where 是分组之前进行过滤,不满足 where 条件,不参与分组;而 having 是分组之后对结果进行过滤。
- 判断条件不同:where 不能对聚合函数进行判断,而 having 可以。
注意:
- 执行顺序:where > 聚合函数 > having。
- 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
-- 查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于3的工作地址
select workaddress,count(*) from emp where age < 45 group by workaddress having count(*) >= 3;
DQL - 排序查询
语法:
select 字段列表 from 表名 order by 字段1 排序方式1 , 字段2 排序方式2 ;
排序方式:
- ASC:升序(默认值)
- DESC:降序
注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
DQL - 分页查询
语法:
select 字段列表 from 表名 limit 起始索引, 查询记录数 ;
注意:
- 起始索引从 0 开始,起始索引 =(查询页码 - 1)* 每页显示记录数。
- 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL 中是 limit。
- 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。
DCL
DCL - 介绍
- DCL(Data Control Language ,数据控制语言 ),其功能是管理数据库用户、控制数据库访问权限 。
DCL - 管理用户
查询用户:
- use mysql;
- select * from user;
创建用户:
- create user '用户名'@'主机名' identified by '密码';
修改用户密码:
- alter user '用户名@主机名' identified with mysql_native_password by '新密码';
删除用户:
- drop user '用户名@主机名';
注意:
- 主机名可以使用 % 通配。
- 这类 SQL 开发人员操作的比较少,主要是 DBA(Database Administrator 数据库管理员)使用。
DCL - 权限控制
MySQL 中定义了很多种权限,但是常用的就以下几种:
权限 | 说明 |
---|---|
all, all privileges | 所有权限 |
select | 查询数据 |
insert | 插入数据 |
update | 修改数据 |
delete | 删除数据 |
alter | 修改表 |
drop | 删除数据库 / 表 / 视图 |
create | 创建数据库 / 表 |
查询权限:
- show grants for '用户名@主机名';
授予权限:
- grant 权限列表 on 数据库名.表名 to '用户名@主机名';
撤销权限:
- revoke 权限列表 on 数据库名.表名 from '用户名@主机名';