📄 一句话概括
关系型数据库的全部家当就是一张张表——竖着叫列(字段),横着叫记录(行),每个字段都有严格的数据类型。
📝 本节和前面几节的关系
2-1 定了调:关系模型=用表放数据;本节把【表】的解剖图摊开——1-2 已经露过面的【字段/记录】两个词,这里正式定名并加上【数据类型】这道铁规矩。
一、表的解剖图
一张标准的表,四个部位:
学生表
┌──────┬──────┬─────┬────────┐
│ 学号 │ 姓名 │ 年龄 │ 生日 │ ← 列名(表头)
├──────┼──────┼─────┼────────┤
│ 1001 │ 张三 │ 17 │ 2009-03-12 │ ← 记录(行)
│ 1002 │ 李四 │ 16 │ 2010-07-25 │ ← 记录(行)
└──────┴──────┴─────┴────────┘
↑ 每一竖条 = 列(字段)
| 部位 | 别名 | 是什么 |
|---|---|---|
| 表 | 关系 | 一个完整的数据集合,如【学生表】 |
| 列 | 字段 | 一类信息,如【年龄】——有名字、有类型 |
| 行 | 记录 | 一个完整对象,如张三那一整行 |
| 列名 | 字段名 | 列的名字,建表时定死 |
一句话记忆:列管【类别】,行管【个体】。 1-2 的比喻原样好用:字段是表格的表头,记录是表格的一行。
二、字段的两要素:名字+类型
每个字段必须先说清【放什么类型的值】——这就是数据类型,2-1 说的【限制】(1-4)在这里落地:
| 类型 | 放什么 | 例子 |
|---|---|---|
| 整数型 | 不带小数的数 | 年龄、数量 |
| 小数型 | 带小数的数 | 价格 12.50 |
| 字符串型 | 文字 | 姓名、地址 |
| 日期型 | 日期/时间 | 生日、下单时间 |
定了类型就是铁规矩:【年龄】是整数型,【十七岁】三个字想填进去——数据库直接拒绝。这正是 1-4 说的【限制:错误数据进不了门】。
三、一张表的硬规矩
- 每个字段类型统一:【生日】列不能有的写日期、有的写【三月份】
- 每条记录格式相同:同一张表的每一行,字段个数和含义完全一样
- 记录不分先后:表是【一堆记录的集合】,没有【第 3 行必须在第 4 行前面】的说法——要顺序,查询时用排序指令
- 要有办法区分每条记录:两条记录不能完全一样——靠主键(下一节细讲),通常就是一个不重复的编号
四、动手 Demo:给班级设计一张表
不写 SQL,只做设计。给【班级同学信息】设计一张表:
- 定字段:学号(整数)、姓名(字符串)、生日(日期)、身高(小数)——每个字段写出类型
- 填 5 条记录
- 三个刁钻输入,判断能不能填进去:
- 【姓名】填 138 位数手机号?——类型不合(字符串倒是能放,但业务上不对;类型只管格式,业务规矩另有招)
- 【生日】填【三月份】?——拒绝(日期型)
- 【身高】填 175?——能放(小数型放整数没问题)
看到什么算成功:5 条记录类型整齐,并且能说清每个【拒绝】是卡在类型上。
五、30 秒实验
打开 Excel,随便找一张表问自己三个问题:
- 哪几行是【记录】?——除了表头,每行一条
- 哪几列是【字段】?——每列一个
- 有没有哪列类型混乱(【金额】列混着文字)?——混了就说明它还只是【表格】,不够格叫关系型数据库里的表
六、常见误区
- "列和字段是两个东西" —— 一回事:【字段】是关系模型术语,【列】是视觉说法;同样【记录=行】。
- "数据类型只是建议" —— 是硬约束。类型不合的数据插不进去,和 1-4 的【限制】是同一套机制。
- "表和 Excel 工作表是一回事" —— 像归像,Excel 不强制类型、不强制记录格式、允许合并单元格等破坏结构的操作;数据库的表每一条规矩都是强制的。
自测三问(点开对答案)
1. 列和字段、行和记录,是什么关系? **同义词**:列=字段(一类信息),行=记录(一个完整对象)。 2. 字段的两要素是什么? **名字 + 数据类型**;类型是硬约束,不合的值插不进去。 3. 表里两条记录能不能一模一样? **不能**——要靠主键保证每条记录能被区分。- ☐ 下一节(2-3 表连接-将各种表组合在一起)
相关笔记
- 数据模型、层次模型、网状模型、关系模型-不同的数据存储方式 —— 上一节:赢了的关系模型就是本节这张表
- 🗄️ 数据库基础 · 索引 —— 全课路线图