CQL提供了創(chuàng)建和使用用戶定義的數(shù)據(jù)類型的功能。您可以創(chuàng)建一個數(shù)據(jù)類型來處理多個字段。本章介紹如何創(chuàng)建,更改和刪除用戶定義的數(shù)據(jù)類型。
命令CREATE TYPE用于創(chuàng)建用戶定義的數(shù)據(jù)類型。其語法如下:
CREATE TYPE <keyspace name>. <data typename> ( variable1, variable2).
下面給出了創(chuàng)建用戶定義數(shù)據(jù)類型的示例。在此示例中,我們正在創(chuàng)建一個包含以下詳細(xì)信息的card_details數(shù)據(jù)類型。
字段 | 字段名稱 | 數(shù)據(jù)類型 |
---|---|---|
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<int> ... );
注:用于用戶定義數(shù)據(jù)類型的名稱不應(yīng)與保留類型名稱一致。
使用DESCRIBE命令驗證是否已創(chuàng)建創(chuàng)建的類型。
CREATE TYPE tutorialspoint.card_details ( num int, pin int, name text, cvv int, phone set<int> );
ALTER TYPE命令用于更改現(xiàn)有數(shù)據(jù)類型。使用ALTER,您可以添加新字段或重命名現(xiàn)有字段。
使用以下語法向現(xiàn)有用戶定義的數(shù)據(jù)類型添加新字段。
ALTER TYPE typename ADD field_name field_type;
以下代碼向Card_details數(shù)據(jù)類型添加了一個新字段。這里我們添加一個名為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<int>, );
使用以下語法重命名現(xiàn)有的用戶定義數(shù)據(jù)類型。
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是用于刪除用戶定義的數(shù)據(jù)類型的命令。下面給出了一個刪除用戶定義數(shù)據(jù)類型的示例。
在刪除之前,使用DESCRIBE_TYPES命令驗證所有用戶定義的數(shù)據(jù)類型的列表,如下所示。
cqlsh:tutorialspoint> DESCRIBE TYPES; card_details card
從這兩種類型中,刪除名為card的類型,如下所示。
cqlsh:tutorialspoint> drop type card;
使用DESCRIBE命令驗證數(shù)據(jù)類型是否丟失。
cqlsh:tutorialspoint> describe types; card_details
更多建議: