个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~
MySQL查询操作
- ④【数据查询】MySQL查询语句,拿来即用。
- 1. 语法编写顺序 以及 执行顺序
- 2. 基本查询
- 3. 条件查询
- 4. 聚合函数
- 5. 分组查询
- 6. 排序查询
- 7. 分页查询
④【数据查询】MySQL查询语句,拿来即用。
1. 语法编写顺序 以及 执行顺序
DQL - 语法(编写顺序)
:
-
SELECT字段列表 FROM表名列表 WHERE条件列表 GROUP BY分组字段列表 HAVING分组后条件列表 ORDER BY排序字段列表 排序规则 LIMIT分页参数
执行顺序
:
-
FROM表名列表 WHERE条件列表 GROUP BY分组字段列表 HAVING分组后条件列表 SELECT字段列表 ORDER BY排序字段列表 排序规则 LIMIT分页参数
-
查询表 ==> 分组前条件过滤 ==> 分组 ==> 分组后条件过滤 ==> 获取哪些字段 ==> 按照字段排序 ==> 分页显示
2. 基本查询
DQL - 基本查询
:
-
基本查询
: -
-
①查询多个字段
-
SELECT 字段1,字段2,字段3... FROM 表名;
-
SELECT * FROM 表名;
-
②设置别名
-
SELECT 字段1[AS 别名1],字段2[AS 别名2]... FROM 表名;
-
③去除重复记录(
DISTINCT
关键字) -
SELECT DISTINCT 字段1,字段2,字段3... FROM 表名;
-
SELECT DISTINCT * FROM 表名;
-
3. 条件查询
DQL - 条件查询
:
-
-
①根据条件查询字段
-
SELECT 字段列表 FROM 表名 WHERE 条件;
-
-
条件:
-
- ①比较运算符:
>
:大于>=
:大于等于<
:小于<=
:小于等于=
:等于<>
或!=
:不等于BETWEEN...AND...
:在某个范围以内(含最小、最大值)IN(...)
:IN(…)括号内列表中的值,多选一LIKE '占位符'
:模糊匹配(_
匹配单个字符,%
匹配任意个字符)IS NULL
:是NULL- ②逻辑运算符:
AND
或&&
:并且(多个条件同时成立)OR
或||
:或者(多个条件任意一个成立)NOT
或!
:非,不是
4. 聚合函数
聚合函数
:
-
count()
:统计数量 -
max()
:求最大值 -
min()
:求最小值 -
avg()
:求平均值 -
sum()
:求和 -
注意:null值不参与所有聚合函数的运算。
-
使用聚合函数查询:
-
-
SELECT 聚合函数(字段列表) FROM 表名;
-
-
-- 演示: -- 员工表,表名: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 - 分组查询
:
-
-
分组查询数据:
-
SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
-
WHERE
与HAVING
区别: -
- 执行时机不同:where是分组之前进行过滤,不满足where的条件,不参与分组;而having是分组之后对结果进行过滤。
- 判断条件不同:where不能使用聚合函数进行操作,而having可以
-
-- 演示-- 根据性别分组,统计男性员工和女性员工的数量 -- 性别字段: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 - 排序查询
:
-
-
查询并排序
-
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序规则1,字段2 排序规则2;
-
排序规则:
-
ASC
—— 升序(默认值) -
DESC
—— 降序 -
若不指定排序规则,默认按照升序排序。
-
如果指定了多个排序字段,排序的数据只有当第一个字段值相同时,才会根据第二个字段进行排序。
-
7. 分页查询
DQL - 分页查询
:
-
-
对查询进行分页:
-
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询记录数;
-
注意:
-
- ①起始索引从0开始,
起始索引 = (查询页码 - 1)* 每页显示的查询记录数
- ②分页查询在不同的数据库中实现方式不同,MySQL是
LIMIT
- ③如果查询的是第一页数据,可以省略起始索引,直接
LIMIT 10
- ①起始索引从0开始,
-