一、基本概念
-
数据库(DB):长期存储在计算机内、有组织、可共享的数据集合。
-
数据库管理系统(DBMS):管理数据库的软件,如 MySQL、Oracle、SQL Server、PostgreSQL。
-
数据库系统(DBS):DB + DBMS + 应用程序 + 管理员 + 用户。
-
数据模型三要素:数据结构、数据操作、完整性约束。
二、常见数据模型
• 层次模型:树形结构,一对多
• 网状模型:图结构,多对多
• 关系模型:用二维表表示(主流)
三、关系数据库核心
- 关系 = 表
◦ 行 = 元组 = 记录
◦ 列 = 属性 = 字段
- 键(关键字)
◦ 超键:能唯一标识元组的属性集
◦ 候选键:最小超键,无多余属性
◦ 主键(Primary Key):选中的候选键,唯一非空
◦ 外键(Foreign Key):引用另一表主键,用于关联
- 三大完整性
◦ 实体完整性:主键非空唯一
◦ 参照完整性:外键要么为空,要么是对应主键值
◦ 用户自定义完整性:如取值范围、唯一、非空等
四、SQL 基础
- 分类
• DDL:数据定义(CREATE、ALTER、DROP)
• DML:数据操作(INSERT、UPDATE、DELETE、SELECT)
• DCL:数据控制(GRANT、REVOKE)
• TCL:事务控制(COMMIT、ROLLBACK)
- 常用语句
• 建表:CREATE TABLE 表名(字段 类型 约束);
• 查询:SELECT * FROM 表名 WHERE 条件 GROUP BY 分组 HAVING 筛选 ORDER BY 排序;
• 插入:INSERT INTO 表名(字段) VALUES(值);
• 更新:UPDATE 表名 SET 字段=值 WHERE 条件;
• 删除:DELETE FROM 表名 WHERE 条件;
- 常用函数
• 聚合:COUNT、SUM、AVG、MAX、MIN
• 分组:GROUP BY
• 排序:ORDER BY ASC/DESC
五、三大范式(1NF、2NF、3NF)
-
1NF:列不可再分,原子性
-
2NF:满足1NF,非主属性完全依赖主键(消除部分依赖)
-
3NF:满足2NF,非主属性不传递依赖主键(消除传递依赖)
六、索引
• 作用:加快查询,减慢增删改
• 类型:主键索引、唯一索引、普通索引、复合索引
• 原则:经常查询、选择性高的字段建索引;频繁修改、重复值多的少建
七、事务(Transaction)
四大特性 ACID:
• A原子性:要么全做,要么全不做
• C一致性:执行前后数据合法
• I隔离性:事务间互不干扰
• D持久性:提交后永久生效
八、并发问题 & 隔离级别
• 问题:脏读、不可重复读、幻读
• 隔离级别(由低到高):
读未提交 → 读已提交 → 可重复读 → 串行化
九、连接查询
• INNER JOIN:内连接,两边都匹配
• LEFT JOIN:左连接,左表全显示
• RIGHT JOIN:右连接,右表全显示
• FULL JOIN:全连接(部分数据库支持)
十、视图 & 存储过程
• 视图:虚拟表,简化查询,控制权限
• 存储过程:预编译 SQL 集合,提高效率