MySQL 视频课 · 50 集 / DQL 基础:基础查询、条件查询、聚合函数 / P16
第 16 集 / 共 50 · DQL 基础:基础查询、条件查询、聚合函数 · 视频 p=16 · 时长 17:57
P16 16. 基础-SQL-DQL-条件查询
看视频,对照阅读:在新标签打开原视频(p=16)
只取需要的行。条件写对,才不会多查或少查。
复习模式:快速跳知识点(详解在下方各节)
复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。
一句话理解
只查需要的行,就要在 WHERE 里写条件。这一集把比较运算符、逻辑运算符和几个特殊写法过一遍。
按这 4 步做
- 基本比较有六个:
=、>、>=、<、<=、<>或!=(不等于)。字符串和日期加引号,数字不用。 - 范围和列表:
BETWEEN 15 AND 20含两端,等价于>=15 AND <=20;IN (18,20,40)是多选一,比一串 OR 短。 - 模糊与空值:
LIKE配%(任意多个字符)和_(一个字符);空值只能写IS NULL或IS NOT NULL。 - 多条件用
AND/&&、OR/||、NOT/!组合。AND 先算、OR 后算,混用加括号最稳。
小例
SELECT id, name, age, salary
FROM employee
WHERE age BETWEEN 22 AND 30
AND salary IS NOT NULL;
两个条件同时成立才留下:年龄在 22–30(含 22、30),并且薪水不为空。结果是小林(22)、小周(25)、小陈(30)三行;小李年龄 21 不在范围,薪水又是 NULL,被两条条件分别挡掉。
易错点
- 写
salary = NULL,结果永远查不到。NULL 的比较要用 IS NULL。 - BETWEEN 写反(30 AND 22)不报错,只返回空结果,容易误判成“没数据”。
LIKE '%林'匹配结尾,LIKE '林%'匹配开头,方向写反就查不到。- AND 和 OR 混用不加括号。默认 AND 先算,结果常和预期不一致。
30 秒速记
六个比较符;BETWEEN 含端点;IN 多选一;LIKE 的 % 和 _;空值用 IS NULL;AND 先于 OR。
自测(2 题,先答再展开)
自测 1:为什么 WHERE salary = NULL 查不到任何行?
NULL 表示“未知”,任何与 NULL 的相等比较结果都是 UNKNOWN,不是 TRUE,所以行不会被选中。判断空值必须用 IS NULL 或 IS NOT NULL。
自测 2:BETWEEN 15 AND 20 和 >= 15 AND <= 20 等价吗?
对数字和日期等价,都包含两端。注意 BETWEEN 的下界必须写在前面,写反了虽然不报错,但会得到空结果。
材料与来源
展开材料出处、讲义页码与证据等级
| 材料 | 类型 / 位置 | 支持了什么 |
|---|---|---|
| B站原视频 P16《16. 基础-SQL-DQL-条件查询》 | 平台视频页 · P16 | 标题、时长与分 P 信息取自平台公开页面;仅作外链,不在站内播放 |
| 本集采样画面 p16_t30.jpg(约 322s) | 平台视频页 · P16 / 约 322s | 已人工查看该帧:Workbench 中条件查询练习:where age = 88、age < 20、age <= 20、idcard is not null、age != 88、between 15 and 20;只证明这一画面,不代表整集讲解 |
| 本集采样画面 p16_t80.jpg(约 861s) | 平台视频页 · P16 / 约 861s | 已人工查看该帧:幻灯片“DQL-条件查询”:SELECT 字段列表 FROM 表名 WHERE 条件列表,并列出比较运算符(含 LIKE、IS NULL)与逻辑运算符(AND/OR/NOT);只证明这一画面,不代表整集讲解 |
| MySQL 8.0 Reference Manual: Comparison Operators | 官方文档 | 语法条目备查,未逐字引用 |
以同版讲义公开镜像核对:讲义 2.6.3 条件查询(p42–45)。原声字幕未取得(匿名接口字幕轨为空且需登录),讲师逐句讲解未核;本页示例、表与数字为站内原创,不是课堂原表。
讲义对照:讲义 2.6.3 条件查询 · p42–45(公开镜像;按主题对应,切点 notexact)
- 画面静帧 9 帧,采样点 0:12–17:44 / 全片 17:57(只用于确认画面主题,不作内容边界)
- 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号
等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。