← [ BACK_TO_NOTES ]

专题归档 · 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 实际执行优化过程没这么机械,但作为学习模型非常好用。 看到这么一句话,应该是内部就是并非按直观顺序的

创建于 2026/9/13 更新于 2026/9/13
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本