④【数据查询】MySQL查询语句,拿来即用。

④【数据查询】MySQL查询语句,拿来即用。

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~

个人主页:.29.的博客

学习社区:进去逛一逛~

④【数据查询】MySQL查询语句,拿来即用。1. 语法编写顺序 以及 执行顺序DQL - 语法(编写顺序):

代码语言:javascript复制SELECT

字段列表

FROM

表名列表

WHERE

条件列表

GROUP BY

分组字段列表

HAVING

分组后条件列表

ORDER BY

排序字段列表 排序规则

LIMIT

分页参数执行顺序:

代码语言:javascript复制FROM

表名列表

WHERE

条件列表

GROUP BY

分组字段列表

HAVING

分组后条件列表

SELECT

字段列表

ORDER BY

排序字段列表 排序规则

LIMIT

分页参数查询表 ==> 分组前条件过滤 ==> 分组 ==> 分组后条件过滤 ==> 获取哪些字段 ==> 按照字段排序 ==> 分页显示

2. 基本查询DQL - 基本查询:

基本查询:

①查询多个字段

代码语言:javascript复制SELECT 字段1,字段2,字段3... FROM 表名;代码语言:javascript复制SELECT * FROM 表名;②设置别名

代码语言:javascript复制SELECT 字段1[AS 别名1],字段2[AS 别名2]... FROM 表名;③去除重复记录(DISTINCT关键字)

代码语言:javascript复制SELECT DISTINCT 字段1,字段2,字段3... FROM 表名;代码语言:javascript复制SELECT DISTINCT * FROM 表名;3. 条件查询DQL - 条件查询:

①根据条件查询字段

代码语言:javascript复制SELECT 字段列表 FROM 表名 WHERE 条件;条件:

①比较运算符:>:大于>=:大于等于<:小于<=:小于等于=:等于<>或!=:不等于BETWEEN...AND...:在某个范围以内(含最小、最大值)IN(...):IN(…)括号内列表中的值,多选一LIKE '占位符':模糊匹配(_匹配单个字符,%匹配任意个字符)IS NULL:是NULL②逻辑运算符:AND或&&:并且(多个条件同时成立)OR或||:或者(多个条件任意一个成立)NOT或!:非,不是4. 聚合函数聚合函数:

count():统计数量

max():求最大值

min():求最小值

avg():求平均值

sum():求和

注意:null值不参与所有聚合函数的运算。

使用聚合函数查询:

代码语言:javascript复制SELECT 聚合函数(字段列表) FROM 表名;代码语言:javascript复制-- 演示:

-- 员工表,表名:emp

-- 统计emp员工表的员工数量

SELECT COUNT(*) FROM emp;

-- 统计员工的平均年龄,字段age表示年龄

SELECT AVG(age) FROM emp;

-- 统计员工的最大年龄

SELECT MAX(age) FROM emp;

-- 统计员工的最小年龄

SELECT MIN(age) FROM emp;

-- 统计广东地区员工的年龄之和

-- 地区字段:workaddress

SELECT SUM(age) FROM emp WHERE workaddress = '广东';5. 分组查询DQL - 分组查询:

分组查询数据:

代码语言:javascript复制SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];WHERE 与 HAVING 区别:

执行时机不同:where是分组之前进行过滤,不满足where的条件,不参与分组;而having是分组之后对结果进行过滤。判断条件不同:where不能使用聚合函数进行操作,而having可以代码语言:javascript复制-- 演示

-- 根据性别分组,统计男性员工和女性员工的数量

-- 性别字段:sex

SELECT sex,COUNT(*)

FROM emp

GROUP BY sex;

-- 根据性别分组,统计男性员工和女性员工的平均年龄

-- 性别字段:sex;年龄字段:age

SELECT sex,AVG(age)

FROM emp

GROUP BY sex;

-- 查询年龄小于45岁的员工,根据工作地址分组,获取员工数量大于3的工作地址

SELECT workaddress,COUNT(*)

WHERE age < 45

GROUP BY workaddress

HAVING COUNT(*) > 3;6. 排序查询DQL - 排序查询:

查询并排序

代码语言:javascript复制SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序规则1,字段2 排序规则2;排序规则:

ASC —— 升序(默认值)

DESC —— 降序

若不指定排序规则,默认按照升序排序。

如果指定了多个排序字段,排序的数据只有当第一个字段值相同时,才会根据第二个字段进行排序。

7. 分页查询DQL - 分页查询:

对查询进行分页:

代码语言:javascript复制SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;注意:

①起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示的查询记录数②分页查询在不同的数据库中实现方式不同,MySQL是LIMIT③如果查询的是第一页数据,可以省略起始索引,直接LIMIT 10

相关内容