数据类型
SQL 数据类型定义了列可以存储的数据类型。当您运行 DESC TABLE
命令时,你可以看到每列的数据类型。
字符串和二进制数据类型
类型名称 | 描述 | 大小 |
---|---|---|
String | UTF-8 编码的字符串。最多可容纳 2,147,483,647 字节的数据 | 字符串的长度 |
Binary | 变长二进制值。最多可容纳 2,147,483,647 字节的数据 | 数据的长度 + 2 字节 |
String
和 Binary
的最大容量取决于它们的编码方式以及存储引擎如何处理它们。例如,String
值被编码为 UTF-8,如果所有字符的长度为 3 个字节,该字段最多可以存储 715,827,882 个字符。对于 Binary
类型,它们最多可以存储 2,147,483,647 字节。
数值数据类型
类型名称 | 描述 | 大小 |
---|---|---|
Int8 | -128 ~ 127 | 1 字节 |
Int16 | -32768 ~ 32767 | 2 字节 |
Int32 | -2147483648 ~ 2147483647 | 4 字节 |
Int64 | -9223372036854775808 ~ 9223372036854775807 | 8 字节 |
UInt8 | 0 ~ 255 | 1 字节 |
UInt16 | 0 ~ 65535 | 2 字节 |
UInt32 | 0 ~ 4294967295 | 4 字节 |
UInt64 | 0 ~ 18446744073709551615 | 8 字节 |
Float32 | 32 位 IEEE 754 浮点数 | 4 字节 |
Float64 | 双精度 IEEE 754 浮点数 | 8 字节 |
Decimal 类型
GreptimeDB 支持 decimal
类型,这是一种定点类型,表示为 decimal(precision, scale)
,其中 precision
是总位数,scale
是小数部分的位数。例如,123.45
的总位数为 5,小数位数为 2。
precision
可以在 [1, 38] 范围内。scale
可以在 [0, precision] 范围内。
如果未指定总位数和比例,则默认的十进制数是 decimal(38, 10)
。
CREATE TABLE decimals(
d DECIMAL(3, 2),
ts TIMESTAMP TIME INDEX,
);
INSERT INTO decimals VALUES ('0.1',1000), ('0.2',2000);
SELECT * FROM decimals;
+------+---------------------+
| d | ts |
+------+---------------------+
| 0.10 | 1970-01-01T00:00:01 |
| 0.20 | 1970-01-01T00:00:02 |
+------+---------------------+