数据类型
StoneDB 支持如下的数据类型:
类型 | 成员 |
---|---|
整型 | TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT |
浮点型 | FLOAT、DOUBLE |
定点型 | DECIMAL |
日期时间型 | YEAR、TIME、DATE、DATETIME、TIMESTAMP |
字符串型 | CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT |
二进制字符串型 | BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB |
整型数据类型
各整型的取值范围如下:
类型 | 存储(字节) | 有符号最小值 | 无符号最小值 | 有符号最大值 | 无符号最大值 |
---|---|---|---|---|---|
TINYINT | 1 | -128 | 0 | 127 | 255 |
SMALLINT | 2 | -32768 | 0 | 32767 | 65535 |
MEDIUMINT | 3 | -8388608 | 0 | 8388607 | 16777215 |
INT | 4 | -2147483647 | 0 | 2147483647 | 4294967295 |
BIGINT | 8 | -9223372036854775806 | 0 | 9223372036854775807 | 9223372036854775807 |
注意:
INT
类型: -2147483648
在 Tianmu
引擎中预留给 INT_NULL
,有符号最小值从 -2147483647 开始。
BIGINT
类型: -9223372036854775807
在 Tianmu
引擎中预留给 BIGINT_NULL
,有符号最小值从 -9223372036854775806 开始。
BIGINT
类型: 无符号号最大值限制在 9223372036854775807, 未来我们会扩展到 18446744073709551615。
DECIMAL 精度必须小于或等于18,否则不支持,如 decimal(19) 就会报错。DECIMAL(6, 2) 表示整数部分和小数部分最大有效位数分别为4和2,所以值域为 [-9999.99, 9999.99]。
字符串类型
不同的字符集,即使长度相同,但占用的存储空间不同,以下是以字符集为 latin1 的字符串类型的大小范围。
类型 | 大小 |
---|---|
CHAR(M) | [0,255] |
VARCHAR(M) | [0,65535] |
TINYTEXT | [0,255] |
TEXT | [0,65535] |
MEDIUMTEXT | [0,16777215] |
LONGTEXT | [0,4294967295] |
日期和时间类型
日期类型的日期范围如下:
类型 | 日期格式 | 最小值 | 最大值 |
---|---|---|---|
YEAR | YYYY | 1901 | 2155 |
TIME | HH:MM:SS | -838:59:59 | 838:59:59 |
DATE | YYYY-MM-DD | 0000-00-00 | 9999-12-31 |
DATETIME | YYYY-MM-DD HH:MM:SS | 0000-00-00 00:00:00 | 9999-12-31 23:59:59 |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 1970-01-01 08:00:01 | 2038-01-19 11:14:07 |