Cassandra 简明教程
Cassandra - CQL Collections
CQL 提供了使用集合数据类型的功能。使用这些集合类型,你可以在单个变量中存储多个值。本小节解释了如何在 Cassandra 中使用集合。
List
列表用在以下情况:
-
元素的顺序需要维护,且
-
一个值需要被存储多次。
你可以使用列表中元素的索引获取列表数据类型的值。
Creating a Table with List
下面是一个使用两个列名和电子邮件创建样本表的示例。为了存储多封电子邮件,我们使用列表。
cqlsh:tutorialspoint> CREATE TABLE data(name text PRIMARY KEY, email list<text>);
Inserting Data into a List
在将数据插入列表元素时,使用方括号 [ ] 将所有值以逗号分隔开,如下所示。
cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['abc@gmail.com','cba@yahoo.com'])
SET
集合是一个用于存储一群元素的数据类型。集合的元素将以排序顺序返回。
Creating a Table with Set
以下示例创建一个有两个列名和 phone 的样本表。为了存储多个电话号码,我们使用集合。
cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);
Inserting Data into a Set
在将数据插入集合元素时,使用花括号 { } 将所有值以逗号分隔开,如下所示。
cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman', {9848022338,9848022339});
MAP
映射是一种用于存储元素键值对的数据类型。
Creating a Table with Map
以下示例展示了如何创建一个有两个列名和地址的样本表。为了存储多个地址值,我们使用映射。
cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address
map<timestamp, text>);
Inserting Data into a Map
将数据插入地图中的元素时,请在花括号 {} 中输入所有以逗号分隔的 key : value 对,如下所示。
cqlsh:tutorialspoint> INSERT INTO data3 (name, address)
VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );