关系型数据库总览
什么是关系型数据库?
关系型数据库(RDBMS)把数据组织成一张张二维表:行是记录、列是字段,表和表之间靠外键关联。操作它的语言是 SQL——"我要什么数据"直接写出来,数据库自己决定怎么取。
它有三个立身之本:
- 结构先行(schema):先定义表结构,数据按结构入座。换来的是数据整齐、约束可靠。
- SQL:声明式查询,从简单
SELECT到多表 JOIN、聚合,四十年生态积累。 - 事务(ACID):转账扣钱和到账要么都成功、要么都不成功——这是关系型最硬的底牌。
MySQL 和 SQL Server 都是 RDBMS:前者开源、互联网公司标配;后者微软出品,企业级特性全(数据仓库、报告服务)。学校教的是 sqlserver 课程线,但概念通用——范式、事务、索引换到 MySQL 照样成立。我自学的 MySQL 主线在 Mysql 子文件夹。
和 Redis 比一比(为什么不能只有关系型)
Redis 是基于内存的键值存储,支持字符串、列表、集合等结构,主要做高速缓存和临时数据。拿它和关系型放一起看,差异一目了然:
| 维度 | Redis | MySQL / SQL Server |
|---|---|---|
| 存储 | 内存为主(可持久化) | 磁盘为主 |
| 数据组织 | 键 → 值 | 表格 + SQL |
| 速度 | 极快,适合缓存、会话 | 相对慢,但扛得住复杂查询 |
| 事务 | 有限支持 | 完整 ACID,复杂事务和高级查询 |
| 定位 | 快速访问,不是长期主存储 | 强持久性和可靠性,长期存重要数据 |
| 典型场景 | 缓存、消息队列、会话存储 | 电商、数据仓库、企业级应用 |
所以它们不是替代关系,而是配合:Redis 挡在前面扛速度,关系型在后面管持久。Redis 的完整内容在 02-NoSQL 组。
SQLite:不用装服务的关系型
SQLite 表、SQL、事务一样不少,只是它不作为独立服务运行——整个数据库就是嵌在程序里的一个文件,读写就是读写文件。手机 App、浏览器、各种桌面工具里它无处不在。
细节见 SQLite。
组内地图
学习顺序按编号走:概念 → 设计 → 建表操作 → T-SQL 编程 → 进阶专题。这批都是学校 sqlserver 课程的笔记,收在 sqlserver/ 文件夹里;其中 10-15 查询六篇再聚在 查询/ 子文件夹。SQLite 和 Mysql 是另外两个平级的产品子文件夹:SQLite/(单机主力,常查常新)与 Mysql/(自学主线,18 篇带编号)。PostgreSQL/ 是最新加入的第四个平级产品子文件夹——正在系统学习,5 篇带编号(MySQL 对照式:基础 / 类型与表设计 / 查询进阶 / 索引与 MVCC / Python 实战)。
| 编号 | 笔记 | 内容 |
|---|---|---|
| 01 | 数据库系统的一些概念 | 什么是 DBMS、数据模型,课程起点 |
| 02 | 数据库的管理技术及其发展 | 数据库技术演进脉络 |
| 03 | 数据库的管理 | DBMS 的实际管理与配置 |
| 04 | 设计数据库 | E-R 图到表结构的设计流程 |
| 05 | 三范式 | 1NF/2NF/3NF,表怎么拆才合理 |
| 06 | 表的管理 | 建表、约束、修改表结构 |
| 07 | 数据插入(增) | INSERT INTO 单行/多行/日期插入 |
| 08 | 数据删除(删) | DELETE / TRUNCATE,逻辑删与物理删 |
| 09 | 数据修改(改) | UPDATE 指定/规律/条件修改 |
| 10 | 关系代数与单表查询 | 查的理论根基:关系代数 + 单表的投影、筛选、生成表 |
| 11 | 聚合查询 | COUNT/SUM/AVG/MIN/MAX + GROUP BY + HAVING |
| 12 | 排序与语句执行顺序 | ORDER BY / TOP,以及 from→where→group by→having→select→order by |
| 13 | 多表连接查询 | 内连接、外连接、交叉连接,连接后照样能筛选分组 |
| 14 | 子查询与结果集归并 | 嵌套查询的三个位置 + UNION / Intersect / EXCEPT |
| 15 | 别名的妙用与limit分页 | 别名省遍历、救自连接,limit 分页公式,大总结 |
| 16 | 导入导出 | 数据进出数据库 |
| 17 | T-SQL程序设计 | 变量、流程控制、函数,SQL 变编程 |
| 18 | 存储过程 | 把一段 SQL 封装成可调用的过程 |
| 19 | 事务与并发 | ACID、隔离级别、锁 |
| 20 | 索引 | 让查询快起来的核心手段 |
| 21 | 视图 | 虚拟表,常用查询的封装 |
| 22 | 用户管理(DBA命令) | 权限、账号、DBA 日常 |
| 23 | 存储引擎 | InnoDB 等引擎,表下面的实现层 |
| — | SQLite | 嵌入式关系型,一个文件的数据库 |
| — | PostgreSQL 系统讲解 | 5 篇带编号(基础对照/类型表设计/查询进阶/索引 MVCC/Python 实战),PostgreSQL/ 子文件夹 |
| — | sqlserver 课程原稿 | 学校课程 word 原稿(数据库.docx),收在 sqlserver/assets/ |
⬅️ 00-数据库 🏠 00-数据库 ➡️ 数据库系统的一些概念
💬 评论