Mariadb 简明教程

MariaDB - Data Types

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

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

Numeric Data Types

MariaDB 支持的数值数据类型如下 −

  1. TINYINT − 此数据类型表示落在 -128 到 127 的带符号范围和小整数,落在 0 到 255 的无符号范围。

  2. BOOLEAN − 此数据类型将值 0 与“false”关联,将值 1 与“true”关联。

  3. SMALLINT − 此数据类型表示范围在 -32768 到 32768 之间的有符号整数,以及范围在 0 到 65535 之间的无符号整数。

  4. MEDIUMINT − 此数据类型表示范围在 -8388608 到 8388607 之间的有符号整数,以及范围在 0 到 16777215 之间的无符号整数。

  5. INT(also INTEGER) − 此数据类型表示正常大小的整数。如果标记为无符号,则范围为 0 到 4294967295。如果是有符号(默认设置),则范围为 -2147483648 到 2147483647。如果将列设置为 ZEROFILL(无符号状态),则会在其所有值前加上零,在 INT 值中放置 M 位数。

  6. BIGINT − 此数据类型表示范围在 9223372036854775808 到 9223372036854775807 之间的有符号整数,以及范围在 0 到 18446744073709551615 之间的无符号整数。

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

  8. FLOAT − 此数据类型表示值为 0 或以下范围内的较小浮点数 -3.402823466E+38 到 -1.175494351E-381.175494351E-38 到 3.402823466E+38

  9. DOUBLE (也为 REALDOUBLE PRECISION) − 此数据类型表示值为 0 或以下范围内的正常大小浮点数 -1.7976931348623157E+308 到 -2.2250738585072014E-3082.2250738585072014E-308 到 1.7976931348623157E+308

  10. BIT − 此数据类型表示位字段,其中 M 指定每个值中的位数。如果省略 M,则默认值为 1。可以使用“b’[value]’”应用位值,其中 value 表示 0 和 1 中的位值。会自动从左侧填充零以达到全长;例如,“10”变为“0010”。

Date and Time Data Types

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

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

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

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

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

  5. YEAR − 此数据类型表示 4 位格式的年份。四位格式允许范围在 1901 到 2155,以及 0000 之间的数值。

String DataTypes

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

  1. String literals − 此数据类型表示用引号引起来的一系列字符。

  2. CHAR − 此数据类型表示右填充、固定长度的字符串,其中包含指定长度的空格。M 表示字符列长度,范围为 0 到 255,其默认值为 1。

  3. VARCHAR − 此数据类型表示可变长度字符串,最大列长度 (范围) 为 0 到 65535。

  4. BINARY - 此数据类型表示二进制字节串,其中 M 为按字节计的列长度。

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

  6. TINYBLOB - 此数据类型表示长度最多为 255(28 - 1)字节的二进制大对象列。在存储时,每个大对象使用一个字节长度前缀指示值中的字节量。

  7. BLOB - 此数据类型表示长度最多为 65,535(216 - 1)字节的二进制大对象列。在存储时,每个大对象使用两个字节长度前缀指示值中的字节量。

  8. MEDIUMBLOB - 此数据类型表示长度最多为 16,777,215(224 - 1)字节的二进制大对象列。在存储时,每个大对象使用三个字节长度前缀指示值中的字节量。

  9. LONGBLOB - 此数据类型表示长度最多为 4,294,967,295(232 - 1)字节的二进制大对象列。在存储时,每个大对象使用四个字节长度前缀指示值中的字节量。

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

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

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

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

  14. ENUM - 此数据类型表示仅从列表中具单个值的字符串对象。

  15. SET - 此数据类型表示从列表中具有零个或多个值(最多 64 个成员)的字符串对象。集合值在内部显示为整数值。