在本文中,我们将讨论 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;