📜  Cassandra 中的元组类型

📅  最后修改于: 2021-09-08 15:49:20             🧑  作者: Mango

在本文中,我们将讨论 Cassandra 查询语言支持的元组数据类型,我们可以根据需要轻松定义数据。它是用户定义数据类型的替代方案。

当我们需要容纳许多字段时,元组数据类型很有用,我们最多可以容纳 32768 个字段。让我们通过一个例子来理解元组数据类型。

在这里,首先我们要创建表,例如 Emp_data 是表名,E_id 是表的主键,E_data 字段是下面给定表中的元组类型。我们来看一下。

CREATE TABLE Emp_data (
  E_id int PRIMARY KEY,
  E_data tuple
); 

现在,我们将使用以下 CQL 查询在 Emp_data 表中插入一些数据。

INSERT INTO Emp_data (E_id, E_data) 
VALUES(501, (1, 'ok', 200));

INSERT INTO Emp_data (E_id, E_data) 
VALUES(502, (2, 'test', 500));
 
INSERT INTO Emp_data (E_id, E_data) 
VALUES(503, (3, 'final', 400)); 

现在,要查看输出 Emp_data 表,请使用以下 CQL 查询。

SELECT * FROM Emp_data; 

输出:

现在,为了应用过滤器,我们将在元组数据类型的 E_data 字段上创建索引。

CREATE INDEX on Emp_data (E_data); 

我们可以在 where 子句中使用元组类型字段来过滤数据。

SELECT * 
FROM Emp_data 
WHERE E_data = (2, 'test', 500); 

输出:

元组类型也可用于嵌套目的。我们将再次为嵌套目的创建一个新表。所以,让我们看看。

CREATE TABLE nested_Emp_data
(
E_id int PRIMARY KEY, 
E_data tuple> 
); 

现在,使用以下 CQL 查询将数据插入到 nested_Emp_data 表中。

INSERT INTO nested_Emp_data (E_id, E_data) 
VALUES (101, (1, ('Ashish', 200)));

INSERT INTO nested_Emp_data (E_id, E_data) 
VALUES (102, (2, ('rana', 500)));

INSERT INTO nested_Emp_data (E_id, E_data) 
VALUES (103, (3, ('data', 800))); 

要查看输出,请使用以下 CQL 查询。

select * 
from nested_Emp_data;