本章目标:建立数据库核心认知,搞清楚数据库、表、字段、约束、事务、范式这些高频概念,为后续 SQL 实战打基础。
graph TD
A["应用程序"] --> B["DBMS (MySQL)"]
B --> C["数据库 school_db"]
C --> D["表 students"]
C --> E["表 classes"]
D --> F["列: id, name, class_id"]
E --> G["列: id, class_name"]
D -. FK: class_id .-> E
| 概念 | 英文 | 说明 | 示例 |
|---|---|---|---|
| 数据库 | Database | 存放多张表的容器 | school_db |
| 表 | Table | 同类数据的结构化集合 | students |
| 字段 | Column | 表中的某个属性 | name VARCHAR(50) |
| 记录 | Row | 表中的一行数据 | 1, 张三, 3班 |
NULL。INT:整数,常用于 ID、计数。BIGINT:更大范围整数,常用于大规模业务主键。DECIMAL(M,D):精确小数,适合金额场景(不要用浮点存金额)。CHAR(n):定长字符串,长度固定时性能稳定。VARCHAR(n):变长字符串,更节省空间,业务中最常用。TEXT:长文本,例如文章内容、日志片段。DATE:日期(年-月-日)DATETIME:日期时间(推荐业务常用)TIMESTAMP:时间戳,常配合默认值记录创建/更新时间utf8mb4(支持 Emoji)。utf8mb4_general_ci。建议:
utf8mb4。事务(Transaction)是一组要么全部成功、要么全部失败的 SQL 操作,常用于转账、下单等场景。
flowchart LR
A[BEGIN] --> B[执行多条SQL]
B --> C{是否出错?}
C -- 否 --> D[COMMIT]
C -- 是 --> E[ROLLBACK]
D --> F[数据持久化]
E --> G[恢复到事务前]
| 分类 | 全称 | 作用 | 常见命令 |
|---|---|---|---|
| DDL | Data Definition Language | 定义结构 | CREATE ALTER DROP |
| DML | Data Manipulation Language | 操作数据 | INSERT UPDATE DELETE |
| DQL | Data Query Language | 查询数据 | SELECT |
| DCL | Data Control Language | 权限控制 | GRANT REVOKE |
DECIMAL 而不是 FLOAT?