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) - 此数据类型表示普通大小的整数。当标记为无符号时,范围为 0 到 4294967295。当有符号(默认设置)时,范围为 -2147483648 到 2147483647。当列设置为 ZEROFILL(无符号状态)时,其所有值前面都会添加零,以使 INT 值达到 M 位数字。

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

  • DECIMAL(也称为 DEC、NUMERIC、FIXED) - 此数据类型表示精确的定点数字,其中 M 指定其位数,D 指定小数点后的位数。M 值不添加“-”或小数点。如果 D 设置为 0,则不显示小数或分数部分,并且值将在 INSERT 时四舍五入到最接近的 DECIMAL。允许的最大位数为 65,小数的最大位数为 30。省略 M 时默认值为 10,省略 D 时默认值为 0。

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

    • -3.402823466E+38 到 -1.175494351E-38

    • 1.175494351E-38 到 3.402823466E+38

  • DOUBLE(也称为 REALDOUBLE PRECISION) - 此数据类型表示值为 0 或在以下范围内的普通大小的浮点数:

    • -1.7976931348623157E+308 到 -2.2250738585072014E-308

    • 2.2250738585072014E-308 到 1.7976931348623157E+308

  • BIT - 此数据类型表示位字段,其中 M 指定每个值的位数。省略 M 时,默认值为 1。可以使用“b’[value]’”应用位值,其中 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 支持的字符串类型值如下:

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

  • 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 值在内部表示为整数值。

广告