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

📅  最后修改于: 2020-12-02 06:23:09             🧑  作者: Mango


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

创建用户定义的数据类型

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

CREATE TYPE . 
( variable1, variable2).

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

Field Field name Data type
credit card no num int
credit card pin pin int
name on credit card name text
cvv cvv int
Contact details of card holder phone set
cqlsh:tutorialspoint> CREATE TYPE card_details (
   ... num int,
   ... pin int,
   ... name text,
   ... cvv int,
   ... phone set
... );

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

验证

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

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

更改用户定义的数据类型

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

将字段添加到类型

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

ALTER TYPE typename
ADD field_name field_type; 

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

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,
   );

重命名类型中的字段

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

ALTER TYPE typename
RENAME existing_name TO new_name;

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

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,
   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