
一、5.1 单表查询5.1.1 SELECT语句定义完整基础语法sqlSELECT [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