第5单元 数据查询笔记
2026/6/19 1:23:45 网站建设 项目流程

一、5.1 单表查询
5.1.1 SELECT语句定义

完整基础语法:
sql
SELECT [DISTINCT] 查询字段 FROM 表名;

作用:从一张数据表中提取需要的数据,是SQL查询核心语句。
DISTINCT:去除查询结果重复数据。


5.1.2 选择列
1. * :查询表全部字段;
2. 字段1,字段2 :自定义查询指定字段;
3. 字段 AS 别名 :给查询列设置显示别名;
4. 常量/表达式查询:查询时对字段做加减运算、拼接字符串。

5.1.3 WHERE条件子句
作用:筛选符合条件的数据行,写在FROM后面。
1. 比较运算符: > < >= <= = !=
2. 逻辑运算符: AND(并且)、OR(或者)、NOT(取反)
3. 模糊查询: LIKE , % 任意多个字符、 _ 单个字符;
4. 范围查询: BETWEEN ... AND ... 区间范围;
5. 集合查询: IN(值1,值2) 匹配集合内数据;
6. 空值判断: IS NULL 空值、 IS NOT NULL 非空值。

二、5.2 多表查询
5.2.1 FROM子句

FROM后可写多张数据表,实现跨表查询;多表直接罗列默认产生笛卡尔积(无效冗余数据),必须通过连接条件筛选有效数据。

5.2.2 多表连接
1. 内连接 INNER JOIN
只查询两张表匹配关联条件的数据,两边无匹配不展示;语法 表1 JOIN 表2 ON 关联条件 。
2. 左外连接 LEFT JOIN
保留左表全部数据,右表无匹配内容显示NULL。
3. 右外连接 RIGHT JOIN
保留右表全部数据,左表无匹配内容显示NULL。
4. 全连接:MySQL不直接支持,可用左右连接合并实现。

5.2.3 子查询
把一条SELECT查询结果当做另一条SQL的条件,嵌套查询。
1. 标量子查询:返回单个值,用 = > < 判断;
2. 列子查询:返回一列多个值,搭配 IN、ANY、ALL ;
3. 相关子查询:子语句引用外层查询表字段,内外语句相互关联执行。

5.2.4 联合查询 UNION
合并多条SELECT语句结果集:
UNION :合并后自动去除重复行;
UNION ALL :直接拼接全部结果,不去重,效率更高;
⚠️ 多条查询字段数量、数据类型必须一致。

三、5.3 分类汇总与排序
5.3.1 聚合函数(统计函数)
用于数据统计,不能单独写WHERE中:
1. COUNT() :统计记录行数;
2. SUM() :数值字段求和;
3. AVG() :数值字段求平均值;
4. MAX() :字段最大值;
5. MIN() :字段最小值。

5.3.2 GROUP BY分组子句
按照指定字段分组统计,相同字段值划为一组,配合聚合函数实现分组计算;
规则:SELECT后非聚合字段,必须写在GROUP BY后。

5.3.3 HAVING筛选子句
作用:对分组后的结果再次筛选;
✅ HAVING筛选分组后统计结果,写在GROUP BY后面;
❌ WHERE是分组前原始数据筛选,不能使用聚合函数。

5.3.4 ORDER BY排序子句
对查询结果排序,写在语句末尾:
ASC :升序(默认可省略);
DESC :降序;
支持多个字段先后依次排序。

5.3.5 LIMIT限制行数
截取查询结果部分数据,常用于分页:
LIMIT 起始下标,展示条数 ;下标从0开始;简写 LIMIT 条数 默认从第1行开始截取。

四、完整SQL语句执行顺序
FROM → WHERE → GROUP BY → 聚合函数 → HAVING → SELECT → ORDER BY → LIMIT

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询