Cassandra CQL集合

2018-12-21 13:46 更新

CQL提供了使用Collection數(shù)據(jù)類型的功能。使用這些集合類型,您可以在單個變量中存儲多個值。本章介紹如何在Cassandra中使用Collections。

List

List用于以下的情況下

  • 將保持元素的順序,并且
  • 值將被多次存儲。

您可以使用列表中元素的索引來獲取列表數(shù)據(jù)類型的值。

使用List創(chuàng)建表

下面給出了一個創(chuàng)建一個包含兩個列(名稱和電子郵件)的樣本表的示例。要存儲多個電子郵件,我們使用列表。

cqlsh:tutorialspoint> CREATE TABLE data(name text PRIMARY KEY, email list<text>);

將數(shù)據(jù)插入列表

在將數(shù)據(jù)插入列表中的元素時,在如下所示的方括號[]中輸入以逗號分隔的所有值。

cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['abc@gmail.com','cba@yahoo.com'])

更新列表

下面給出了一個在名為data的表中更新列表數(shù)據(jù)類型的示例。在這里,我們正在向列表中添加另一封電子郵件。

cqlsh:tutorialspoint> UPDATE data
... SET email = email +['xyz@tutorialspoint.com']
... where name = 'ramu';

驗證

如果使用SELECT語句驗證表,您將得到以下結(jié)果:

cqlsh:tutorialspoint> SELECT * FROM data;

 name | email
------+--------------------------------------------------------------
 ramu | ['abc@gmail.com', 'cba@yahoo.com', 'xyz@tutorialspoint.com']

(1 rows)

Set

Set是用于存儲一組元素的數(shù)據(jù)類型。集合的元素將按排序順序返回。

使用Set創(chuàng)建表

以下示例創(chuàng)建一個包含兩個列(名稱和電話)的樣本表。對于存儲多個電話號碼,我們使用集合。

cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);

將數(shù)據(jù)插入集合

在將數(shù)據(jù)插入集合中的元素時,請在花括號{}中輸入逗號分隔的所有值,如下所示。

cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman',    {9848022338,9848022339});

更新集合

以下代碼顯示如何更新名為data2的表中的集合。在這里,我們正在添加另一個電話號碼。

cqlsh:tutorialspoint> UPDATE data2
   ... SET phone = phone + {9848022330}
   ... where name = 'rahman';

驗證

如果使用SELECT語句驗證表,您將得到以下結(jié)果:

cqlsh:tutorialspoint> SELECT * FROM data2;

   name | phone
--------+--------------------------------------
 rahman | {9848022330, 9848022338, 9848022339}

(1 rows)

Map

地圖是用于存儲元素的鍵值對的數(shù)據(jù)類型。

使用Map創(chuàng)建表

以下示例顯示如何創(chuàng)建具有兩個列(名稱和地址)的樣本表。為了存儲多個地址值,我們使用map。

cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address
map<timestamp, text>);

將數(shù)據(jù)插入到地圖中

在將數(shù)據(jù)插入到地圖中的元素時,輸入所有的鍵:值對,用逗號在逗號之間以逗號分隔,如下所示。

cqlsh:tutorialspoint> INSERT INTO data3 (name, address)
   VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );

更新集合

以下代碼顯示如何在名為data3的表中更新地圖數(shù)據(jù)類型。在這里,我們改變了關(guān)鍵辦公室的價值,也就是說,我們改變一個名為robin的人的辦公地址。

cqlsh:tutorialspoint> UPDATE data3
   ... SET address = address+{'office':'mumbai'}
   ... WHERE name = 'robin';

驗證

如果使用SELECT語句驗證表,您將得到以下結(jié)果:

cqlsh:tutorialspoint> select * from data3;

  name | address
-------+-------------------------------------------
 robin | {'home': 'hyderabad', 'office': 'mumbai'}

(1 rows)

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號