Lindorm CQL是一种类型化语言,支持丰富的数据类型。本文档主要介绍了Lindorm CQL支持的数据类型。
基础数据类型
数据类型 | 支持的常量 | 描述 |
bigint | integer | 64位有符号长整数。 |
blob | blob | 大小小于2M的任意字节。受宽表引擎的配额限制,具体说明,请参见配额与限制。 重要 Lindorm CQL支持的blob数据类型与Lindorm SQL支持的blob数据类型不同,限制与使用方法也不相同。Lindorm SQL支持的blob数据类型,请参见BLOB数据类型(邀测中)。 |
boolean | boolean | 取值为 |
counter | integer | Counter列(64位有符号值)。 |
date | integer, string | 日期时间。 |
decimal | integer, float | 可变精度十进制。 |
double | integer, float | 64位IEEE-754浮点数 |
float | integer, float | 32位IEEE-754浮点数。 |
inet | string | IP地址。可以是IPv4和IPv6。由于没有IP类型,所以输入为 |
int | integer | 32位有符号整数。 |
smallint | integer | 16位有符号整数。 |
text | string | UTF-8编码的字符串。 |
time | integer, string | 时间类型,纳秒精度。 |
timestamp | integer, string | 时间戳,精度是毫秒。 |
timeuuid | uuid | 版本1 UUID,通常用作无冲突时间戳。 |
tinyint | integer | 8位无符号整数。 |
uuid | uuid | 一个UUID。 |
varint | integer | 任意精度整数。 |
Counter
计数器类型用于定义计数器列。Lindorm的counter和Cassandra的counter是有一定区别的,Cassandra的counter表只允许包含counter列,但是Lindorm CQL的表允许counter列和非counter列共存。示例如下:
CREATE TABLE person_info (name text primary key, age counter, address text);
UPDATE person_info SET age = age + 2 WHERE name = 'my';
INSERT INTO person_info (name, age, address) VALUES ( 'my', 30, 'hz');
Timestamp
允许输入int数据类型的数据以及string类型的字符串,用来表示某一个时间点。下面的示例用来表示:2011年03月2号 04:05:00AM GMT。
CREATE TABLE person_info ( name text PRIMARY KEY , birthtime timestamp , address text );
INSERT INTO person_info (name, birthtime, address) VALUES ( 'my', 1299038700000, 'hz');
INSERT INTO person_info (name, birthtime, address) VALUES ( 'mm', '2011-03-02 04:05+0000', 'hz');
INSERT INTO person_info (name, birthtime, address) VALUES ( 'lucy', '2011-03-02 04:05:00+0000', 'bj');
Time
支持INT以及STRING表示times的数据类型,如果是STRING表示时间的话,格式为hh:mm:ss[.fffffffff]
,其中[.fffffffff]
是可选的。示例如下:
CREATE TABLE person_info ( name text PRIMARY KEY , birthtime time , address text );
INSERT INTO person_info (name,birthtime,address) VALUES ( 'lili', '08:12:54', 'hz');
date
支持使用INT以及STRING表示date数据类型。如果使用STRING表示的date类型,格式为yyyy-mm-dd
。示例如下:
CREATE TABLE person_info ( name text PRIMARY KEY , birthday date , address text );
INSERT INTO person_info (name,birthday,address) VALUES ( 'lucy', '2021-02-01', 'beijing');
暂时不支持的数据类型
集合数据类型:set,list,map。
用户自定义类型:User-Defined Types。
基础数据类型:durations。