专题归档 · 2026 年 9 月(编辑分组,非实际写作日期)
数据库学习随记
记录关系型数据库、约束和 SQL JOIN 学习时的问题与直观理解。
数据库的具体学习,将概念化为一张图
数据库是存储业务数据
关系型数据库
![[relational-database#一句话定义]]
主键、外键、约束
PRIMARY KEY
↓
标识自己是谁
FOREIGN KEY
↓
引用别人是谁
NOT NULL
↓
值必须存在
UNIQUE
↓
值不能重复
UNIQUE(a, b)
↓
组合不能重复
CHECK
↓
值必须满足条件
join
INNER JOIN 两边都能匹配上的才返回。
一个问题:
// JOIN 可以继续加 WHERE
SELECT
articles.title,
users.name
FROM articles
JOIN users
ON articles.user_id = users.id
WHERE users.name = 'Sean';
这个过程中具体细节是怎么样的, 直观看好像是先获取 所有的 articles username 的信息,然后筛选。 是不是先 只获取 where 信息, 只查看对应 usename 可以提升性能? 虽然 SQL 实际执行优化过程没这么机械,但作为学习模型非常好用。 看到这么一句话,应该是内部就是并非按直观顺序的