mysql基础学习之DQL语句学习(三)

2024-08-17 22:33:46 浏览数 (1)

DQL

DQL- 编写顺序

代码语言:javascript复制
 SELECT 字段列表 select
 ​
 FROM 表名列表  from
 ​
 WHERE 条件列表  where
 ​
 GROUP BY 分组字段列表 group by
 ​
 HAVING 分组后条件列表 having
 ​
 ORDER BY 排序字段列表 order by
 ​
 LIMIT 分页参数 limit

DQL- 基础查询

SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 LIMIT 分页参数

  1. 查询指定多个字段
代码语言:javascript复制
 select 字段1,字段2,字段3,.... from 表名
  1. 查询返回所有字段
代码语言:javascript复制
 select * from 表名设置别名
  1. 设置别名
代码语言:javascript复制
 select 字段1 [ as 别名1],字段2[as 别名2]... from 表名

as可以省略不写

  1. 去除重复数据
代码语言:javascript复制
 select distinct 字段列表 from 表名

DQL- 条件查询

代码语言:javascript复制
 -- 查询 年龄 age > 18 的员工有哪些
 select * from employee where age >18;
 -- 查询 年龄 age < 18 的员工有哪些
 select * from employee where age < 18;
 -- 查询 年龄 age = 18 的员工有哪些
 select * from employee where age = 18;
 ​
 -- 查询 年龄 age >= 18 的员工有哪些
 select * from employee where age >= 18;
 ​
 -- 查询 年龄 age 不为null 的员工有哪些
 select * from employee where age is not null;
 ​
  -- 查询年龄 age 不等于 30 的员工有哪些
 select * from employee where age != 30;
 select * from employee where age <> 30;
 ​
 -- 查询 年龄在 20 - 25 之间的 员工有哪些
 select * from employee where age >= 20 && age <= 25;
 select * from employee where age >= 20 and age <= 25;
 select * from employee where age between 20 and 25; -- 包头包尾
 ​
 -- 查询年龄 = 18 并且 性别为 男 的 员工 有哪个
 select * from employee where age = 18 and gender = '男';
 ​
 -- 查询年龄 = 25 或者 28 或者 32 并且性别为 男 的员工有哪些;
 -- 因为该语句中使用了 OR 运算符来组合多个条件时,可能存在优先级问题,需要用括号明确指定条件的优先级。
 select * from employee where gender = '男' and (age = 25 or age = 28 or age = 32)  ;
 select * from employee where gender = '男' and (age in (25,28,32))  ;
 ​
 -- 查询姓名 为3个汉字(3个字符)的员工有哪些;
 select * from employee where name like '___'; -- ___ 代表三个字符
 ​
 -- 查询身份证 最后一位是0 的员工有哪些; %0 : 表示前面有多是字符我不管,我只需要知道最后一个字符是0
 select * from employee where idcard like '%0';
 ​
 update employee set age = 18 where name = '张三';

DQL- 聚合函数

1.介绍:

将一列数据作为一个整体,进行纵向计算

2.常见聚合函数 (不计算 字段值为null 的数据 )

函数

功能

count

统计数量

max

最大值

min

最小值

avg

平均值

sum

求和总数

3. 语法

代码语言:javascript复制
 select 聚合函数 (字段列表) from 表名;

4. 练习题

DQL- 分组查询

1. 语法

ELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [ HAVING 分组 后过滤条件 ];

2. where与having区别 执行时机不同:

  • where是分组之前进行过滤,不满足where条件,不参与分组;
  • 而having是分组 之后结果进行过滤。 判断条件不同:where不能对聚合函数进行判断,而having可以

3. 注意事项:

  • 分组之后,查询的字段一般聚合函数分组字段,查询其他字段无任何意义。
  • 执行顺序: where > 聚合函数 > having 。
  • 支持多字段分组, 具体语法为 : group by columnA,columnB

4. 练习题

DQL- 排序查询

1. 语法

0 人点赞