数据类型是一个属性,它指定创建表时将存储在每个列中的数据类型。数据类型是 MariaDB 了解每个列中所需的数据类型的指南,并且还标识了 MariaDB 将如何与存储的数据

在MariaDB中,数据类型主要可以分为三类:

  • 字符串数据类型
  • 数字数据类型
  • 日期和时间数据类型

字符串数据类型

数据类型描述
CHAR(size)固定长度字符串,可以包含字母、数字和特殊字符 人物。 size 参数指定列长度(以字符为单位)。 它可以是从 0 到 255。默认值为 1。
VARCHAR(size)可以包含字母、数字和特殊字符的 VARIABLE 长度字符串 人物。 size 参数指定最大列长度(以字符为单位)。 它可以是从 0 到 65535。
BINARY(size)等于 CHAR(),但存储二进制字节字符串。 size 参数指定列长度(以字节为单位)。 默认值为 1。
CHAR BYTEBINARY() 的别名。
VARBINARY(size )等于 VARCHAR(),但存储二进制字节字符串。 size 参数指定最大列长度(以字节为单位)。
TINYTEXT(size)保存最大长度为 255 个字符的字符串。
TEXT(size)保存最大长度为 65,535 字节的字符串。
MEDIUMTEXT(size )保存最大长度为 16,777,215 个字符的字符串。
LONGMEDIUMTEXT 的同义词
LONG VARCHARMEDIUMTEXT 的同义词
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)
INT1TINYINT 的同义词
INT2SMALLINT 的同义词
INT3MEDIUMINT 的同义词
INT4INT 的同义词
INT8BIGINT 的同义词
NUMBEROracle 模式下 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 起,两位数格式已被弃用。