MySQL--DQL&DCL

发布于:2025-07-10 ⋅ 阅读:(20) ⋅ 点赞:(0)

目录

 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 '用户名@主机名';

 


网站公告

今日签到

点亮在社区的每一天
去签到