热线电话:13121318867

登录
首页大数据时代数据库表的四大基本概念:表、字段、记录与主键
数据库表的四大基本概念:表、字段、记录与主键
2026-11-03
收藏

一、关系型数据库的核心就是"表"

不管是 MySQL、Oracle、SQL Server 还是 PostgreSQL,关系型数据库里最基本的数据组织单位就是表(Table)。你可以把它想象成一张 Excel 工作表——由行和列组成,所有业务数据都以表的形式存在。

理解数据库,首先要把四个基本概念搞清楚:表、字段、记录、主键。它们是数据库的"砖块",所有复杂查询、关联、设计都建立在这四个概念之上。本文用一个贴近业务的例子,把这四个概念讲透。

二、表(Table):数据的容器

2.1 什么是表

表是数据库中用来存储一类实体数据的结构。一个表描述现实世界中一类对象,比如:

  • 用户表:存储所有注册用户的信息
  • 订单表:存储所有订单记录
  • 商品表:存储所有商品信息

每张表都有一个表名,用来区分不同的数据集合。比如 users、orders、products。

2.2 表的结构

一张表在逻辑上就是一个二维矩阵:

+----+----------+-----+----------+
| id | username | age | city     |
+----+----------+-----+----------+
| 1  | 张三     | 28  | 北京     |
| 2  | 李四     | 35  | 上海     |
| 3  | 王五     | 22  | 广州     |
+----+----------+-----+----------+

横向是行,纵向是列,交叉处是一个具体的数据值。

三、字段(Field / Column):表的列

3.1 什么是字段

字段就是表的"列",描述这一类对象的某一个属性。上面的用户表里:

每个字段都有明确的数据类型:整数、字符串、日期、小数等。比如 age 是整数类型,username 是变长字符串。

3.2 字段设计原则

  • 一个字段只表达一个含义:不要把"姓名"和"手机号"塞在一列里。
  • 字段名要见名知意:用 user_name 而不是 col1。
  • 同一张表内字段名不重复。

四、记录(Record / Row):表的行

4.1 什么是记录

记录就是表的"行",代表一个具体的实体。上面用户表里,每一行就是一个具体用户:

  • 第1行记录:张三,28岁,北京
  • 第2行记录:李四,35岁,上海
  • 第3行记录:王五,22岁,广州

一条记录就是现实世界中一个对象在数据库里的完整画像。

4.2 记录和字段的关系

可以这么理解:

  • 字段是"表头",定义这张表能存哪些信息。
  • 记录是"数据行",一条记录是一个具体对象的所有属性值。
  • 一个数据库表 = N个字段 + M条记录。

五、主键(Primary Key):唯一标识

5.1 为什么需要主键

想象一下用户表里有两个"张三"——他们同名同姓,但确实是两个不同的人。如果没有一个唯一标识,你怎么区分他俩?怎么保证不会把张三A的订单写到张三B头上?

主键就是干这件事的:表里每条记录的唯一标识,整张表中不重复、不为空。

上面例子里的 id 字段就是主键:1、2、3 互不相同,每条记录有且只有一个编号。

5.2 主键的三大特性

  1. 唯一性:表里任意两条记录的主键值不能相同。
  2. 非空性:主键字段不允许为 NULL。
  3. 不可修改(建议):主键一旦分配,最好不要更新,因为其他表会通过它引用这条记录。

5.3 主键的常见形式

形式 例子 适用场景
自增整数 id = 1, 2, 3... 大多数业务表,最简单常用
UUID "a3f5e7..." 分布式系统、需要预生成ID
业务编号 订单号 "DD20240101001" 有天然唯一业务编码的场景
联合主键 (user_id, date) 一个用户每天一条记录,单字段不唯一

5.4 选主键的建议

  • 优先用无业务含义的自增ID,不要用手机号、身份证号当主键——这些字段未来可能变。
  • 主键越简单越好,整数型主键占空间小、索引快。
  • 一张表有且只有一个主键。

六、四个概念的关系一张图

表(users 用户表)
├── 字段1:id(主键)
├── 字段2:username
├── 字段3:age
├── 字段4:city
│
├── 记录1:(1, 张三, 28, 北京)
├── 记录2:(2, 李四, 35, 上海)
└── 记录3:(3, 王五, 22, 广州)
  • 表是容器,装一类对象的数据。
  • 字段是表的骨架,决定能存什么信息。
  • 记录是表的内容,一条记录代表一个具体对象。
  • 主键是记录的身份证号,确保每条记录能被唯一找到。

七、一个完整的业务例子

假设要建一个订单表,存储用户下单数据:

字段名 类型 说明
order_id INT 主键,订单编号
user_id INT 下单用户(关联用户表)
amount DECIMAL(10,2) 订单金额
status VARCHAR(20) 订单状态
create_time DATETIME 下单时间

这张表里:

  • 表名:orders
  • 字段:order_id、user_id、amount、status、create_time
  • 主键:order_id(每个订单一个唯一编号)
  • 记录:每一行就是一笔具体订单

以后查"张三下过哪些订单",就是通过 user_id 关联 users 表和 orders 表;查"某笔订单状态",就是按 order_id 主键定位到具体那一行。

八、常见误区

8.1 把"表"和"字段"搞混

表是整张二维结构,字段是表里的某一列。说"用户表有 id、name、age 三个字段"是对的;说"用户表是 id、name、age"就不准确。

8.2 主键不是"随便加一列"

主键不是装饰。它的作用是:

  • 保证每条记录唯一可识别
  • 作为其他表关联引用的锚点
  • 建索引加速查询

随便拿个字段当主键、或者不设主键,会导致数据重复、关联错乱。

8.3 记录不是"字段"

一条记录是一整行数据,不是一个单元格。说"新增一条用户记录",是指插入一整行新用户数据,不是改一个格子。

8.4 一张表只描述一类实体

不要在一张表里同时塞用户信息和订单信息。不同实体拆成不同表,通过主键关联——这是关系型数据库设计的基本思路。

九、总结

表、字段、记录、主键是关系型数据库的四块基石:

  • 表:一类对象的数据容器
  • 字段:表的列,描述对象属性
  • 记录:表的行,一个具体对象
  • 主键:每条记录的唯一标识

理解这四个概念,后面学 SQL 查询、表关联、索引设计、范式优化,都是在这四块砖上盖楼。数据库的一切复杂度,归根到底都是"怎么组织表、怎么设计字段、怎么定义主键"这三件事。

推荐学习书籍 《CDA一级教材》适合CDA一级考生备考,也适合业务及数据分析岗位的从业者提升自我。完整电子版已上线CDA网校,累计已有10万+在读~ !

免费加入阅读:https://edu.cda.cn/goods/show/3151?targetId=5147&preview=0

数据分析师资讯
更多

OK
客服在线
立即咨询
客服在线
立即咨询