Cassandra - CQL 用户定义的数据类型


CQL 提供了创建和使用用户定义的数据类型的工具。您可以创建一个数据类型来处理多个字段。本章介绍如何创建、更改和删除用户定义的数据类型。

创建用户定义的数据类型

命令CREATE TYPE用于创建用户定义的数据类型。其语法如下 -

CREATE TYPE <keyspace name>. <data typename>
( variable1, variable2).

例子

下面给出了创建用户定义数据类型的示例。在此示例中,我们将创建一个包含以下详细信息的card_details数据类型。

场地 字段名称 数据类型
信用卡号 编号 整数
信用卡密码 别针 整数
信用卡上的名字 姓名 文本
变异系数 变异系数 整数
持卡人联系方式 电话
cqlsh:tutorialspoint> CREATE TYPE card_details (
   ... num int,
   ... pin int,
   ... name text,
   ... cvv int,
   ... phone set<int>
... );

注意- 用于用户定义数据类型的名称不应与保留类型名称一致。

确认

使用DESCRIBE命令验证创建的类型是否已经创建。

CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>
   );

更改用户定义的数据类型

ALTER TYPE - 命令用于更改现有的数据类型。使用 ALTER,您可以添加新字段或重命名现有字段。

向类型添加字段

使用以下语法将新字段添加到现有的用户定义数据类型。

ALTER TYPE typename
ADD field_name field_type; 

以下代码向Card_details数据类型添加一个新字段。在这里,我们添加一个名为电子邮件的新字段。

cqlsh:tutorialspoint> ALTER TYPE card_details ADD email text;

确认

使用DESCRIBE命令验证新字段是否已添加。

cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>,
   );

重命名类型中的字段

使用以下语法重命名现有的用户定义数据类型。

ALTER TYPE typename
RENAME existing_name TO new_name;

以下代码更改类型中字段的名称。在这里,我们将字段电子邮件重命名为邮件。

cqlsh:tutorialspoint> ALTER TYPE card_details RENAME email TO mail;

确认

使用DESCRIBE命令验证类型名称是否更改。

cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>,
   mail text
   );

删除用户定义的数据类型

DROP TYPE是用于删除用户定义的数据类型的命令。下面给出了删除用户定义的数据类型的示例。

例子

在删除之前,请使用DESCRIBE_TYPES命令验证所有用户定义数据类型的列表,如下所示。

cqlsh:tutorialspoint> DESCRIBE TYPES;
card_details card

从这两个类型中,删除名为card的类型,如下所示。

cqlsh:tutorialspoint> drop type card;

使用DESCRIBE命令验证数据类型是否已删除。

cqlsh:tutorialspoint> describe types;

card_details