章节摘要:本章是概念筑基的核心。关系模型、表/列/行、数据类型、主键外键——这些是理解后面所有 SQL 语法的根。概念不清,写 SQL 就是背单词。
阅读完本章,你应当能够:
关系模型是骨架,表是肉,键是关节。
关系模型的"表 = 关系、行 = 元组、列 = 属性"思想。
表的结构、常用数据类型怎么选。
主键唯一标识、外键关联表,构成关系网。
2.1 关系模型(理论) ↓ 落地为 2.2 表列行类型(结构) ↓ 用键连成 2.3 主键外键(关系)
理论 → 结构 → 关系,从抽象到具体。
本章是全书概念密度最高的一章,建议放慢节奏,逐节消化后再进入第 3 章写查询。
本章概念会和后面每一章挂钩:第 3 章排序依赖"行无序"这一性质,第 4 章 JOIN 依赖主外键,第 6 章建表依赖数据类型和约束。学完本章,你应该能回答:一张表由什么组成?两个表靠什么关联?如果这两问答不清,建议回头重读对应小节再继续。
学完本章,请尝试回答下面几个问题:
第一,关系模型里"关系、元组、属性"和日常说的"表、行、列"是怎么对应的?为什么理解这套术语对应很重要?
第二,一张表由哪些部分组成?设计列的时候,类型、长度、是否允许空值,这些决定分别要考虑什么?
第三,主键和外键各自解决什么问题?为什么说"没有主键就无法定位一行,没有外键就无法关联两表"?
第四,一对一、一对多、多对多三种关系,各自的实现方式是什么?多对多为什么必须用中间表?
这四个问题都能答上来,说明本章概念已经吃透了。其中第三、第四题尤其关键,它们直接决定第 4 章能否顺畅理解多表连接。建议答不出来时,把对应小节重新读一遍再继续。
本章的"行无序"性质是第 3 章必须显式排序的根本原因;主外键是第 4 章连接的依据;数据类型和约束是第 6 章建表的原料。本章是全书的承重墙,值得多花时间。