数据类型是一个属性,它指定创建表时将存储在每个列中的数据类型。数据类型是 MariaDB 了解每个列中所需的数据类型的指南,并且还标识了 MariaDB 将如何与存储的数据
在MariaDB中,数据类型主要可以分为三类:
- 字符串数据类型
- 数字数据类型
- 日期和时间数据类型
字符串数据类型
数据类型 | 描述 |
---|---|
CHAR(size) | 固定长度字符串,可以包含字母、数字和特殊字符 人物。 size 参数指定列长度(以字符为单位)。 它可以是从 0 到 255。默认值为 1。 |
VARCHAR(size) | 可以包含字母、数字和特殊字符的 VARIABLE 长度字符串 人物。 size 参数指定最大列长度(以字符为单位)。 它可以是从 0 到 65535。 |
BINARY(size) | 等于 CHAR(),但存储二进制字节字符串。 size 参数指定列长度(以字节为单位)。 默认值为 1。 |
CHAR BYTE | BINARY() 的别名。 |
VARBINARY(size ) | 等于 VARCHAR(),但存储二进制字节字符串。 size 参数指定最大列长度(以字节为单位)。 |
TINYTEXT(size) | 保存最大长度为 255 个字符的字符串。 |
TEXT(size) | 保存最大长度为 65,535 字节的字符串。 |
MEDIUMTEXT(size ) | 保存最大长度为 16,777,215 个字符的字符串。 |
LONG | MEDIUMTEXT 的同义词 |
LONG VARCHAR | MEDIUMTEXT 的同义词 |
LONGTEXT(size) | 保存带有 a 的字符串 最大长度为 4,294,967,295 个字符。 |
ENUM(val1, val2, val3, ...) | 只能有一个值的字符串对象,选择 来自可能值的列表。 ENUM 列表中最多可以列出 65535 个值。 如果插入的值不在列表中,则将插入空白值。 这些值按照输入的顺序排序。 |
SET(val1, val2, val3, ...) | 一个字符串对象,可以有 0 个或多个值,从可能值列表中选择。 SET 列表中最多可以列出 64 个值。 |
TINYBLOB | 用于 BLOB(二进制大对象)。 最大长度:255 字节。 |
BLOB(size) | 用于 BLOB(二进制大型对象)。 最多可容纳 65,535 字节的数据。 |
MEDIUMBLOB | 用于 BLOB(二进制大型对象)。 最多可容纳 16,777,215 字节的数据。 |
LONGBLOB | 用于 BLOB(二进制大对象)。 最多可容纳 4,294,967,295 字节的数据。 |
UUID 数据类型 | 用于存储 UUID 数据的数据类型。 |
ROW | 存储过程变量的数据类型。 |
INET6 | 用于存储 IPv6 地址。 |
JSON 数据类型 | 兼容性数据类型,是 LONGTEXT 的别名。 |
数字数据类型
数据类型 | 说明 |
---|---|
BOOL | 零被视为 false,非零值被视为 true。 |
BOOLEAN | 等于 BOOL |
BIT(size) | 位值类型。 每个值的位数在大小中指定。 size 参数可以容纳 1 到 64 之间的值。默认值为 1。 |
TINYINT(size) | 非常小的整数。 有符号范围是-128到127。无符号范围是0到255。size参数指定最大显示宽度(即255) |
SMALLINT(size) | 一个小整数。 有符号范围是从-32768到32767。无符号范围是从0到65535。size参数指定最大显示宽度(即255) |
MEDIUMINT(size) | 一个中等整数。 有符号范围是从-8388608到8388607。无符号范围是从0到16777215。size参数指定最大显示宽度(即255) |
INT(size) | 整数值。 有符号范围是从-2147483648到2147483647。无符号范围是从0到4294967295。size参数指定最大显示宽度(即255) |
INTEGER(size) | 等于 INT(size) |
BIGINT(size) | 一个大整数。 有符号范围是从-9223372036854775808到9223372036854775807。无符号范围是从0到18446744073709551615。size参数指定最大显示宽度(即255) |
FLOAT(size, d) | 浮点数。 总位数在大小中指定。 小数点后的位数在d参数中指定。 |
FLOAT(p) | 浮点数。 MariaDB 使用 p 值来确定是使用 FLOAT 还是 DOUBLE 作为结果数据类型。 如果 p 是从 0 到 24,则数据类型变为 FLOAT()。 如果 p 是从 25 到 53,则数据类型变为 DOUBLE()。 |
DOUBLE(size, d) | 正常大小的浮点数 。 指定总位数在尺寸方面。 小数点后的位数在 d 参数中指定 |
DOUBLE PRECISION(size, d) | DOUBLE 的同义词。 |
REAL(size, d) | DOUBLE 的同义词。 |
DECIMAL(size, d) | 精确的定点数。 总位数在大小中指定。 小数点后的位数在 d 参数中指定。 size 的最大数量为 65。d 的最大数量为 30。size 的默认值为 10。d 的默认值为 0。 |
DEC(size, d) | 等于 DECIMAL(size, d) |
NUMERIC(size, d) | 等于 DECIMAL(size, d) |
FIXED(size,d) | 等于 DECIMAL(size,d) |
INT1 | TINYINT 的同义词 |
INT2 | SMALLINT 的同义词 |
INT3 | MEDIUMINT 的同义词 |
INT4 | INT 的同义词 |
INT8 | BIGINT 的同义词 |
NUMBER | Oracle 模式下 DECIMAL 的同义词 |
注意:所有数字数据类型都可能有一个额外的选项:UNSIGNED 或ZEROFILL。如果添加了 UNSIGNED 选项,MariaDB 允许该列使用负值。如果 添加ZEROFILL选项,MariaDB还会自动向列添加UNSIGNED属性。
日期和时间数据类型
数据类型 | 描述 |
---|---|
DATE | 日期。 格式:年-月-日。 支持的范围是从"1000-01-01"到"9999-12-31"。 |
DATETIME(fsp) | 日期和时间 组合。 格式:YYYY-MM-DD hh:mm:ss。 支持的范围是从"1000-01-01 00:00:00"到"9999-12-31 23:59:59"。 在列定义中添加 DEFAULT 和 ON UPDATE,以自动初始化并更新到当前日期和时间。 |
TIMESTAMP(fsp) | 时间戳。 TIMESTAMP 值存储为自 Unix 纪元 ('1970-01-01 00:00:00' UTC) 以来的秒数。 格式:YYYY-MM-DD hh:mm:ss。 支持的范围是从"1970-01-01 00:00:01"UTC 到"2038-01-09 03:14:07"UTC。 可以在列定义中使用 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP 指定自动初始化和更新到当前日期和时间。 |
TIME(fsp) | 一次。 格式:时:分:秒。 支持的范围是从"-838:59:59"到"838:59:59"。 |
YEAR | 四位数的年份 格式。 允许采用四位数字格式的值:1901 到 2155 和 0000。自 MariaDB 5.5.27 起,两位数格式已被弃用。 |