开发学院

您的位置:首页>教程>正文

教程正文

MariaDB 数据类型

MariaDB 数据类型

  良好的字段定义对于优化数据库至关重要。理想的方法是您专门使用所需类型和大小的字段。例如,如果只使用一个5个字符宽的字段,则不要定义20个字符宽的字段。指定存储在字段中的数据类型,字段(或列)类型也称为数据类型。

  MariaDB数据类型可分为数字、日期和时间以及字符串值。

数值数据类型

  MariaDB支持所有标准的ANSI SQL数字数据类型。以下列表显示常见的数字数据类型及其描述:

  •   INT:支持有符号和无符号的普通整数整数.如果有符号,则允许范围为-2147483648至2147483647。如果无符号,则允许范围为0到4294967295。您可以指定最多11位的宽度。

  •   TINYINT:支持有符号和无符号的非常小的整数。如果有符号,允许范围为-128到127。如果无符号,则允许范围为0到255。您可以指定最多4位的宽度。

  •   SMALLINT:支持有符号和无符号的小整数。如果有符号,则允许范围为-32768至32767。如果无符号,则允许范围为0到65535。您可以指定最多5位的宽度。

  •   MEDIUMINT:支持有符号和无符号的中等大小的整数。如果有符号,则允许范围为-8388608至8388607。如果无符号,则允许范围为0到16777215。您可以指定最多9位的宽度。

  •   BIGINT:支持有符号和无符号的大整数。如果有符号,则允许范围为-9223372036854775808至9223372036854775807。如果无符号,则允许范围为0到18446744073709551615。您可以指定最多20位的宽度。

  •   FLOAT(m ,d):不支持无符号的浮点数字。您可以定义显示长度(m)和小数(d)的数目,这不是必需的,默认为10,2 ,其中2是小数位数,10是总位数(包括小数)。十进制精度可以到24个浮动的地方。

  •   DOUBLE(m ,d):不支持无符号的双精度浮点数字。您可以定义显示长度(m)和小数(d)的数目。这不是必需的,默认为16,4,其中4是小数位数。十进制精度可以转到53个地方为一倍。real是double的同义词。

  •   DECIMAL(m,d):数字型,不存在精度损失,常用于银行帐目计算。需要定义显示长度(m)和小数(d)的数目。

  •   BIT: 此数据类型表示位字段,其中M指定每个值的位数。省略M时,默认值为1。位值可以与“b’[value]’”一起应用,其中值代表0和1中的位值。零填充在整个长度上自动从左边开始;例如,“10”变成“0010”。 

日期和时间类型

  MariaDB支持的日期和时间类型如下:

  •   DATE:YYYY-MM-DD格式的日期(1000-01-01到9999-12-31之间)。例如,1973年12月30日将存储为1973-12-30。

  •   DATETIME:YYYY-MM-DD HH:MM:SS 格式(1000-01-01 00:00:00至9999-12-31 23:59:59)。例如,1973年12月30日下午3点将存储为1973-12-30 15:30:00。

  •   TIMESTAMP:介于1970年1月1日午夜和2037年某时之间的时间戳。这看起来像以前的datetime格式,只是在数字之间没有连字符;1973年12月30日下午3点30分将存储为19731230153000 (YYYYMMDDHHMMSS).

  •   TIME:以HH:MM:SS格式存储时间。

  •   YEAR(M)-以2位或4位数的格式存储年份。如果长度指定为2(例如YEAR(2)) ,则年份可以是1970年至2069 (70至69)。如果长度为4,则可为1901至2155。默认长度为4。

字符串类型

  MariaDB支持的字符串类型值如下所示。

  •   String literals:此数据类型表示用引号括起来的字符序列。

  •   CHAR(M):长度为1到255个字符之间的固定长度字符串(例如char(5)),在存储时用空格填充指定长度。不需要定义长度,但默认值为1。

  •   VARCHAR(M):长度为1到255个字符之间的变长字符串;例如varchar(25)。在创建varchar字段时,必须定义长度。

  •   BLOB:此数据类型表示最大长度为65,535 ( 216 - 1 )字节的blob列。在存储中,每一个都使用一个两字节长的前缀来表示值中的字节数量。

  •   TINYBLOB:最大长度为255个字符的blob或文本列。您无需指定tinyblob的长度。

  •   MEDIUMBLOB:最大长度为16777215字符的blob或文本列。您无需指定mediumblob的长度。

  •   LONGBLOB:最大长度为4294967295字符的blob或文本列。您无需指longblob的长度。

  •   ENUM 枚举是一个有趣的类型。在定义枚举时,您将创建必须从中选择值的项目列表(或它也可以为NULL)。例如,如果您希望您的字段包含“a”或“b”或“c”,则您将定义您的枚举作为枚举(“a”、“b”、“c”) ,并且只有这些值(或null)可能会填充该字段。

  •   TINYTEXT:此数据类型表示最大长度为255 ( 28 - 1 )个字符的文本列。在存储中,每个都使用一个字节长度前缀来表示值中的字节数量。

  •   TEXT:此数据类型表示最大长度为65,535 ( 216 - 1 )个字符的文本列。在存储中,每一个都使用一个两字节长的前缀来表示值中的字节数量。

  •   MEDIUMTEXT:此数据类型表示最大长度为16,777,215 ( 224 - 1 )个字符的文本列。在存储中,每一个都使用一个三字节长度的前缀来表示值中的字节数量。

  •   LONGTEXT:此数据类型表示最大长度为4,294,967,295或4GB ( 232 - 1 )字符的文本列。在存储中,每一个都使用一个四字节长度的前缀来表示值中的字节数量。

  •   BINARY:此数据类型表示二进制字节字符串,其中M是以字节为单位的列长度。

  •   VARBINARY:此数据类型表示可变长度的二进制字节字符串,列长度为M。

  •   SET:此数据类型表示列表中具有零个或更多值的字符串对象,最多64个成员。设置内部显示为整数值的值。