文档

数据类型

更新时间:

Lindorm CQL是一种类型化语言,支持丰富的数据类型。本文档主要介绍了Lindorm CQL支持的数据类型。

基础数据类型

数据类型

支持的常量

描述

bigint

integer

64位有符号长整数。

blob

blob

大小小于2M的任意字节。受宽表引擎的配额限制,具体说明,请参见配额与限制

重要

Lindorm CQL支持的blob数据类型与Lindorm SQL支持的blob数据类型不同,限制与使用方法也不相同。Lindorm SQL支持的blob数据类型,请参见BLOB数据类型(邀测中)

boolean

boolean

取值为true或者false

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类型,所以输入为String.进行存储。

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。