📅  最后修改于: 2023-12-03 14:44:09.563000             🧑  作者: Mango
MariaDB是一种开源的关系型数据库管理系统,收录了许多与MySQL相似的功能和特点。它提供了各种数据类型用于存储不同类型的数据。本文将介绍MariaDB数据类型。
MariaDB支持以下整数类型:
| 类型 | 存储范围 | | ------------ | ------------------------------------------------ | | TINYINT | -128到127或0到255 | | SMALLINT | -32768到32767或0到65535 | | MEDIUMINT | -8388608到8388607或0到16777215 | | INT或INTEGER | -2147483648到2147483647或0到4294967295 | | BIGINT | -9223372036854775808到9223372036854775807或0到18446744073709551615 |
举个例子:
CREATE TABLE users (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255));
在上面的例子中,我们创建了一个名为 users 的表,其中包含一个整数类型的id列(unsigned),它将作为主键使用。
MariaDB支持以下实数类型:
| 类型 | 存储范围 | | --------- | ------------------------------------------------------ | | FLOAT(p) | 单精度浮点数,精度为7个数字 | | DOUBLE(p) | 双精度浮点数,精度为15个数字 | | DECIMAL | 可变精度小数,p表示总精度,s表示小数点右侧的位数。 |
举个例子:
CREATE TABLE my_table (id INT, my_number DECIMAL(2,1));
在上面的例子中,我们创建了一个包含id列和my_number列的表,其中my_number只允许一个位数前面有两位的小数。
MariaDB支持以下日期和时间类型:
| 类型 | 存储范围 | | ----------- | ------------------ | | DATE | '1000-01-01'到'9999-12-31' | | TIME | '-838:59:59'到'838:59:59' | | DATETIME | '1000-01-01 00:00:00'到'9999-12-31 23:59:59' | | TIMESTAMP | '1970-01-01 00:00:00'UTC到'2038-01-09 03:14:07'UTC 或 '2038-01-19 03:14:07'UTC到'2106-02-07 06:28:15'UTC | | YEAR(year) | 1901 to 2155(只支持4位数字类型) |
举个例子:
CREATE TABLE test (id INT, my_date DATE, my_time TIME, my_datetime DATETIME, my_timestamp TIMESTAMP, my_year YEAR(4));
在上面的例子中,我们创建了一个包含各种日期和时间类型的表,以及一个名为my_year的YEAR类型。
MariaDB支持以下字符串类型:
| 类型 | 描述 | | ----------- | ------------------------------------------------------------ | | CHAR(n) | 固定长度的字符串,最多255个字符 | | VARCHAR(n) | 可变长度的字符串,最多65535个字符(和表的行长度有关) | | TINYTEXT | 存储最多255个字符 | | TEXT | 存储最多65535个字符 | | MEDIUMTEXT | 存储最多16777215个字符 | | LONGTEXT | 存储最多4294967295个字符 | | BINARY | 固定长度的二进制字符串,最多255个字符 | | VARBINARY(n)| 可变长度的二进制字符串,最多65535个字符(和表的行长度有关) | | TINYBLOB | 存储最多255个字符的二进制串 | | BLOB | 存储最多65535个字符的二进制串 | | MEDIUMBLOB | 存储最多16777215个字符的二进制串 | | LONGBLOB | 存储最多4294967295个字符的二进制串 |
举个例子:
CREATE TABLE test_table (id INT, my_varchar VARCHAR(255), my_text TEXT);
在上面的例子中,我们创建了一个包含VARCHAR和TEXT类型的表。
MariaDB还支持其他一些数据类型:
| 类型 | 描述 | | ----------- | ------------------------------------------------------------ | | ENUM | 一组定义好的值,最多包含65535个值中的一个。 | | SET | 一组定义好的值,最多包含64个值 可以选择多个值。 | | JSON | 存储JSON数据 | | BOOLEAN | 等价于TINYINT(1),支持TRUE, FALSE 和 NULL | | SERIAL | 等价于BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY |
举个例子:
CREATE TABLE test (id INT, my_enum ENUM('apple', 'banana', 'orange'), my_set SET('apple', 'banana', 'orange'));
在上面的例子中,我们创建了一个包含ENUM和SET类型的表。
以上是MariaDB支持的主要数据类型。当您创建表和列时,请记得仔细选择合适的数据类型以及合适的数据大小。