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

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

创建用户定义的数据类型

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

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

示例

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

字段字段名称数据类型
信用卡号numint
信用卡密码pinint
信用卡上的姓名姓名text
cvvcvvint
持卡人的联系方式电话set
cqlsh:it1352> CREATE TYPE card_details(
. .. num int,
 ... pin int,
 ... name text,
 ... cvv int,
 ... phone set< int> 
 ...);

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

验证

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

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

更改用户定义的数据类型

ALTER TYPE :  command用于更改现有数据类型.使用ALTER,您可以添加新字段或重命名现有字段.

将字段添加到类型

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

 ALTER TYPE typename 
 ADD field_name field_type;

以下代码在 Card_details 数据类型中添加了一个新字段.这里我们添加一个名为email的新字段.

cqlsh:it1352>ALTER TYPE card_details ADD email text;

验证

使用 DESCRIBE 命令验证是否添加了新字段或没有.

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

重命名类型中的字段

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

 ALTER TYPE typename 
 RENAME existing_name TO new_name;

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

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

验证

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

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

删除用户定义的数据类型

DROP TYPE 是用于指定的命令删除用户定义的数据类型.以下是删除用户定义数据类型的示例.

示例

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

cqlsh:it1352>DESCRIBE TYPES;
card_details card

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

 cqlsh:it1352> drop type card;

使用 DESCRIBE 命令验证数据类型是否已丢弃.

cqlsh:it1352> describe types; 
 card_details