首批通过分布式安全可靠测评,为关键业务系统打造
表概述
更新时间:2026-04-07 20:57:20
数据库的表是一系列二维数组的集合,用来代表和储存数据对象之间的关系。本章节主要介绍表所涉及的数据库对象以及表的相关使用特性,包括表存储、表压缩、表组和临时表等。
在数据库中,表是数据组织的基础单元,它由纵向的列和横向的行组成。例如,一个有关作者信息的表格名称为 "作者",表中每个列包含的是所有作者的某个特定类型的信息,例如姓氏,而每行则包含了某个指定作者的所有信息,例如姓、名、住址等等。对于指定的数据库表,列的数目一般在创建表时确定,各列之间可以由列名来识别;而行的数目可以随时动态变化。
表分为普通表和临时表。OceanBase 数据库 MySQL 模式下的临时表生命周期仅存在于 Session 期间,Session 断开时创建的所有临时表自动被 DROP,如果 sess#1 创建了临时表则对 sess#2 不可见。
不同 Session 可以创建同名临时表,临时表可以和现有的普通表重名,但是不能基于临时表创建视图。当同时存在同名的临时表和普通表时,SHOW CREATET TABLE、DESC、DML 等操作都执行于临时表,此时普通表被隐藏。
注意
- 自 OceanBase 数据库 V4.1.0 BP4 版本起,MySQL 模式下已禁用临时表功能。
- 自 OceanBase 数据库 V4.3.5 BP4 版本起,MySQL 模式下支持临时表功能。
列
在数据库中,列(Column)用于记录一张表上某个属性的字段的值,用户给每个属性起的名称即为列名。除了列名以外,列上还有数据类型以及数据类型的最大长度(精度)等信息。
除了普通列以外,OceanBase 数据库 MySQL 模式下还包括虚拟列(Virtual Column/Generated Column)和自增列(Auto_increment Column)。
虚拟列不像普通列一样具有真实的物理存储空间,而是在查询时通过用户在虚拟列上定义的一个表达式或函数来计算得到结果的。
自增列满足以下三个条件:
多分区全局唯一
语句内连续递增
生成的自增列值大于用户显式插入的值
行
在数据库中,行(Row)表示表中单条记录中所有列的数据集合。简单来说,数据库可以认为是由列和行组成的。表中的每一行代表一组相关数据,并且表中的每一行具有相同的结构。
例如,一张与公司信息相关的数据表,每一行代表一个公司,对应的列可能代表诸如公司名称、公司街道地址、增值税号等内容。