本章要回答的三个问题:数据在数据库里到底长什么样?SQL 和 Python、Java 这些语言有什么本质不同?第一条 SELECT 语句从敲下去到出结果,中间发生了什么?回答完这三个问题,你就站上了整座阶梯的第一级台阶。
多数人第一次接触 SQL,是从一句"帮我从数据库里导个数据"开始的。如果这时你对"表、行、列、主键"没有具体画面,对"SELECT 的书写顺序不等于执行顺序"没有概念,后面每一级台阶都会踩空:写连接时分不清哪列来自哪张表,写分组时不理解为什么 SELECT 里出现了 GROUP BY 之外的列会被直接报错。这一章不赶进度,把三件事做扎实:给"关系模型"一个可以触摸的形状;给 SQL 的五个语句家族画一张地图;再亲手跑通一条完整的 SELECT,看懂它的输出。
本章还会顺手完成一件影响全书的事:搭建贯穿十个章节的图书电商示例库。后面第 7 章的窗口排名、第 8 章的递归分类树、第 10 章的索引实验,全都跑在这套表上。
对照本章开头的三个问题,你应当能给出如下答案:
| 节 | 回答哪个问题 | 关键产出 |
|---|---|---|
| 1.1 表、行、列入门 | 数据长什么样 | 关系模型的结构图景与主键、外键的角色 |
| 1.2 SQL 语句家族地图 | SQL 是门什么语言 | 五类语句的职责表与声明式的含义 |
| 1.3 第一条 SELECT 查询 | 一条查询怎么跑通 | 过滤、排序、限量的完整会话与逻辑执行顺序 |
| 1.4 建库建表与数据类型 | 练习场怎么搭 | 示例库首张表的建表语句与类型选型表 |
站上第一级台阶的标准不是"会敲 SELECT",而是"能预言 SELECT 的输出"。
下一章暂时放下查询,解决"数据从哪来":用 INSERT 把示例数据灌进表里,再面对 UPDATE 和 DELETE 这两个威力大、也容易闯祸的动词。第 1 章搭好的表结构,就是第 2 章操作的画布。