MySQL 视频课 · 50 集 / DQL 基础:基础查询、条件查询、聚合函数 / P15
第 15 集 / 共 50 · DQL 基础:基础查询、条件查询、聚合函数 · 视频 p=15 · 时长 14:26
P15 15. 基础-SQL-DQL-基础查询
看视频,对照阅读:在新标签打开原视频(p=15)
查询的第一步:选列、改列名、去重。
复习模式:快速跳知识点(详解在下方各节)
复习顺序:先看“一句话理解”能否复述,再扫步骤,最后做自测;答不出时回到小例与易错。
一句话理解
从这一集开始查数据。基础查询解决三件事:查哪些列、列名怎么显示、重复值要不要去掉。
按这 4 步做
- 语法骨架是
SELECT 字段列表 FROM 表名;。字段列表写具体列名,或写*表示所有列;*方便,但会把不需要的大字段也查出来。 - 起别名用
AS:SELECT name AS 姓名 FROM ...,结果表头就变成“姓名”。AS 可以省略,写个空格也行,但显式写更好读。 - 去重是在字段前加
DISTINCT:SELECT DISTINCT dept_id FROM employee;,相同的值只留一行。它作用于整个字段列表,不是只作用于紧挨着的那一列。 - 画面里的例子是
select name, workno, age from emp;,只取三列,结果按建表时的列顺序显示。
小例
SELECT name AS 姓名, salary AS 月薪
FROM employee;
结果两列,表头是“姓名”和“月薪”,共 4 行。第 4 行小李的月薪显示 NULL——NULL 表示“没有值”,不是 0;这也是后面 COUNT 要区分“数行”和“数列”的原因。
易错点
- 以为
SELECT *更快。它往往更慢,因为多读了用不到的列,还多传了网络数据。 - 把 NULL 当 0 或空字符串。它参与运算结果还是 NULL。
- 以为 DISTINCT 只去重一列。
DISTINCT a, b去重的是 (a,b) 组合。
30 秒速记
SELECT 列 FROM 表;
* 是所有列;AS 起别名;DISTINCT 去重;NULL 不是 0。自测(2 题,先答再展开)
自测 1:SELECT name AS 姓名 里的 AS 改变了数据吗?
没有。它只改结果集的列标题,表里的列名和数据都不变。别名的作用是让输出更好读,或在导出、报表时给出业务名称。
自测 2:SELECT DISTINCT dept_id, salary 会得到什么?
得到不重复的 (dept_id, salary) 组合。同一部门但薪水不同算两条;只有两列都相同才合并。
材料与来源
展开材料出处、讲义页码与证据等级
| 材料 | 类型 / 位置 | 支持了什么 |
|---|---|---|
| B站原视频 P15《15. 基础-SQL-DQL-基础查询》 | 平台视频页 · P15 | 标题、时长与分 P 信息取自平台公开页面;仅作外链,不在站内播放 |
| 本集采样画面 p15_t20.jpg(约 173s) | 平台视频页 · P15 / 约 173s | 已人工查看该帧:幻灯片“SQL—DQL-语法”给出 SELECT/FROM/WHERE/GROUP BY/HAVING/ORDER BY/LIMIT 的完整骨架;只证明这一画面,不代表整集讲解 |
| 本集采样画面 p15_t70.jpg(约 605s) | 平台视频页 · P15 / 约 605s | 已人工查看该帧:Workbench 中执行基本查询第 1 题:select name, workno, age from emp,结果网格三列四行数据;只证明这一画面,不代表整集讲解 |
以同版讲义公开镜像核对:讲义 2.6.1 基本语法 / 2.6.2 基础查询(p38–41)。原声字幕未取得(匿名接口字幕轨为空且需登录),讲师逐句讲解未核;本页示例、表与数字为站内原创,不是课堂原表。
讲义对照:讲义 2.6.1 基本语法 / 2.6.2 基础查询 · p41–42(公开镜像;按主题对应,切点 notexact)
- 画面静帧 9 帧,采样点 0:12–14:13 / 全片 14:26(只用于确认画面主题,不作内容边界)
- 原声字幕未取得:匿名接口字幕轨为空且需登录,未使用任何账号
等级含义:平台视频页 / 官方文档 / 课件 = 原始材料;二手整理 = 参考;推断 = 未经核实。站内补充的解释与练习会在此说明。