SQL 道场
返回路线图

MODULE 5 / 进阶

建模与 DDL

把数据"存得对":建表、约束、外键、索引、范式。

建模与 DDL:把数据"存得对"

DDL 是定义数据结构的语言——建表、约束、索引。把结构设计对,数据才可靠。

建表与类型

CREATE TABLE book (id integer PRIMARY KEY, title text, price numeric, sold boolean);

常用类型:integer 整数、text 文本、numeric 小数、boolean 真假、date 日期。

约束 = 数据的护栏

  • NOT NULL:这列不能为空。
  • DEFAULT v:不给值时用默认值。
  • PRIMARY KEY:主键,唯一且非空,一行的身份证。
  • UNIQUE:该列不允许重复。
  • FOREIGN KEY ... REFERENCES:外键,保证引用的行真实存在。
  • CHECK(条件):自定义校验,如 CHECK (price > 0)。

范式 vs 反范式

范式:拆表去冗余,改一处即可、靠外键关联(一致性强)。反范式:故意冗余换查询速度。先范式,再按需反范式。

索引

CREATE INDEX idx_log_level ON log(level);

索引加速按该列查找,代价是占空间、拖慢写入。高频过滤/JOIN 的列才值得建。

事务(了解)

BEGIN ... COMMIT 把多步打包成"全成或全不成"(原子性),出错用 ROLLBACK 回滚。

本模块练习你会亲手建表、加约束——"运行"会跑一个校验查询确认你建对了。

练习(8)

  1. 1.建第一张表难度 2
  2. 2.非空与默认值难度 3
  3. 3.唯一约束难度 3
  4. 4.外键关联难度 4
  5. 5.CHECK 约束难度 4
  6. 6.范式化:拆掉冗余难度 4
  7. 7.建索引难度 3
  8. 8.Boss:设计博客 schema难度 5