当您创建表的时候,必须指定表记录行的每一列的数据类型,数据类型定义了该列存储数据的合法格式。比如说一个 DATE 类型的列,能存储值“2020-02-20”,但是不能存储值为2的数字或者字符串“hello”。
有关 SQL 数据类型的详细描述,请参考《OceanBase SQL参考(MySQL模式)》,这里介绍一些常用的数据类型。
分类 | 类型 | 备注 |
数值类型-整形 | bigint | 有符号:[-2 ^ 63, 2 ^ 63 - 1] 无符号:[0, 2 ^ 64 - 1] |
int integer | 有符号:[-2^31, 2^31-1] 无符号:[0, 2^32-1] | |
smallint | 有符号:[-2^15, 2^15-1] 无符号:[0, 2^16-1] | |
bool boolean tinyint | 有符号:[-2^7, 2^7-1] 无符号:[0, 2^8-1] | |
数值类型-定点 | decimal(p, s) | decimal等同于numeric |
数值类型-浮点 | float | 有符号:[-2 ^ 128, 2 ^ 128] 无符号:[-2 ^ 1024, 2 ^ 1024] 精度7位 |
double | 有符号:[-2^1024, 2^1024] 无符号:[0, 2^1024] 精度15位 | |
数值类型- 整形/定点/浮点 | number number(p) number(p, s) | p(precision)为精度,s(scale)表示小数点右边的数字个数,精度最大值为38,scale的取值范围为-84到127。
|
字符类型-变长 | varchar(N) | 最长256K,字符集UTF8MB4 |
varbinary | 最初256K,字符集BINARY | |
enum | 最多65535个元素,每个元素最长255个字符,字符集UTF8MB4 | |
set | 最多64个元素,每个元素最长255个字符,字符集UTF8MB4 | |
字符类型-定长 | char(N) | 最大256,字符集UTF8MB4 |
binary | 最大256,字符集BINARY | |
时间类型 | date | YYYY-MM-DD,只包含日期 |
time | HH:MM:SS[.fraction],只包含时间。 | |
datetime | YYYY-MM-DD HH:MM:SS[.fraction],包含日期时间(不考虑时区)。 | |
Timestamp | 日期时间(考虑时区)。 | |
year | YYYY,[1901, 2155] | |
大对象 | Text / blob | 最大64K |
Longtext /longblob | 最大48M |