> MariaDB中文手册 > MariaDB 数据类型

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

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

数字数据类型

MariaDB支持的数字数据类型如下 -

  • TINYINT - 此数据类型表示落入-128到127的有符号范围内的小整数,以及0到255的无符号范围。

  • BOOLEAN - 此数据类型将值0与“false”相关联,值1与“true”相关联。

  • SMALLINT - 此数据类型表示-32768到32768的有符号范围内的整数,以及0到65535的无符号范围。

  • MEDIUMINT - 此数据类型表示有符号范围-8388608到8388607中的整数,无符号范围0到16777215。

  • INT(也为INTEGER) - 此数据类型表示正常大小的整数。当标记为unsigned时,范围跨越0到4294967295.当有符号(默认设置)时,范围跨越-2147483648到2147483647.当列设置为ZEROFILL(无符号状态)时,其所有值都由零添加INT值中的M个数字。

  • BIGINT - 此数据类型表示有符号范围9223372036854775808到9223372036854775807内的整数,无符号范围0到18446744073709551615。

  • DECIMALDEC,NUMERIC,FIXED) - 该数据类型表示精确的定点数,M指定其数字,D指定小数后的数字。 M值不添加“ - ”或小数点。如果D设置为0,则不会出现小数或小数部分,并且该值将舍入为最接近的DECIMAL INSERT。最大允许位数为65,小数位数的最大值为30.默认值M的默认值为10,省略时D为0。

  • FLOAT - 此数据类型表示值0的小的浮点数或以下范围内的数字 - 

    • -3.402823466E + 38至-1.175494351E-38

    • 1.175494351E-38至3.402823466E + 38

  • DOUBLE(也是REAL和DOUBLE PRECISION) - 此数据类型表示值0的正常大小的浮点数,或以下范围内的值 - 

    • -1.7976931348623157E + 308至-2.2250738585072014E-308

    • 2.2250738585072014E-308至1.7976931348623157E + 308

  • BIT - 此数据类型表示位字段,M指定每个值的位数。省略M时,默认值为1.位值可以通过“b'[value]'”应用,其中值表示0和1中的位值。零填充从左边自动发生全长;例如,“10”变为“0010”。

日期和时间数据类型

MariaDB支持的日期和时间数据类型如下 - 

  • DATE - 此数据类型表示日期范围“1000-01-01”到“9999-12-31”,并使用“YYYY-MM-DD”日期格式。

  • TIME - 此数据类型表示“-838:59:59.999999”到“838:59:59.999999”的时间范围。

  • DATETIME - 此数据类型表示范围“1000-01-01 00:00:00.000000”至“9999-12-31 23:59:59.999999”。它使用“YYYY-MM-DD HH:MM:SS”格式 。

  • TIMESTAMP - 此数据类型表示“YYYY-MM-DD HH:MM:DD”格式的时间戳。 它主要用于详细描述数据库修改的时间,例如插入或更新。

  • YEAR - 此数据类型表示4位数格式的年份。 四位数格式允许在1901到2155和0000范围内的值。

字符串数据类型

MariaDB支持的字符串类型值如下 -

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

  • CHAR - 此数据类型表示包含指定长度的空格的右侧带有固定长度的字符串。 M表示字符的列长度,取值范围为0〜255,缺省值为1。

  • VARCHAR - 此数据类型表示一个可变长度字符串,M范围(最大列长度)为0到65535。

  • BINARY - 此数据类型表示二进制字节字符串,M为列长度(以字节为单位)。

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

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

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

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

  • LONGBLOB - 此数据类型表示最大长度为4,294,967,295(232 - 1)个字节的blob列。在存储中,每个使用四字节长度的前缀,表示值中的字节数量。

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

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

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

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

  • ENUM - 此数据类型表示一个列表中只有一个值的字符串对象。

  • SET - 此数据类型表示一个列表中具有零个或多个值的字符串对象,最多包含64个成员。 SET值在内部作为整数值存在。