📅  最后修改于: 2020-12-02 06:22:40             🧑  作者: Mango
CQL提供了使用Collection数据类型的便利。使用这些Collection类型,可以将多个值存储在单个变量中。本章介绍如何在Cassandra中使用Collections。
在以下情况下使用列表
您可以使用列表中元素的索引来获取列表数据类型的值。
下面给出了一个创建示例表的示例,该示例表具有两列,即名称和电子邮件。要存储多封电子邮件,我们使用列表。
cqlsh:tutorialspoint> CREATE TABLE data(name text PRIMARY KEY, email list);
将数据插入列表中的元素时,请在方括号[]中输入所有用逗号分隔的值,如下所示。
cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['abc@gmail.com','cba@yahoo.com'])
下面给出了一个示例,该示例更新名为data的表中的列表数据类型。在这里,我们将另一封电子邮件添加到列表中。
cqlsh:tutorialspoint> UPDATE data
... SET email = email +['xyz@tutorialspoint.com']
... where name = 'ramu';
如果使用SELECT语句验证表,您将得到以下结果-
cqlsh:tutorialspoint> SELECT * FROM data;
name | email
------+--------------------------------------------------------------
ramu | ['abc@gmail.com', 'cba@yahoo.com', 'xyz@tutorialspoint.com']
(1 rows)
Set是一种数据类型,用于存储一组元素。集合中的元素将按排序顺序返回。
下面的示例创建一个包含两列的示例表,名称和电话。为了存储多个电话号码,我们使用set。
cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set);
将数据插入集合中的元素时,请在花括号{}中输入所有用逗号分隔的值,如下所示。
cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman', {9848022338,9848022339});
以下代码显示如何更新名为data2的表中的集合。在这里,我们将另一个电话号码添加到集合中。
cqlsh:tutorialspoint> UPDATE data2
... SET phone = phone + {9848022330}
... where name = 'rahman';
如果使用SELECT语句验证表,您将得到以下结果-
cqlsh:tutorialspoint> SELECT * FROM data2;
name | phone
--------+--------------------------------------
rahman | {9848022330, 9848022338, 9848022339}
(1 rows)
映射是一种数据类型,用于存储一对键值对元素。
下面的示例演示如何创建一个具有两列的示例表,名称和地址。为了存储多个地址值,我们使用map。
cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address
map);
在将数据插入映射中的元素时,请输入所有的key:值对,在花括号{}中用逗号分隔,如下所示。
cqlsh:tutorialspoint> INSERT INTO data3 (name, address)
VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );
以下代码显示了如何在名为data3的表中更新地图数据类型。在这里,我们正在更改关键办公室的值,即,正在更改名为robin的人员的办公室地址。
cqlsh:tutorialspoint> UPDATE data3
... SET address = address+{'office':'mumbai'}
... WHERE name = 'robin';
如果使用SELECT语句验证表,您将得到以下结果-
cqlsh:tutorialspoint> select * from data3;
name | address
-------+-------------------------------------------
robin | {'home': 'hyderabad', 'office': 'mumbai'}
(1 rows)