Cassandra - ประเภทข้อมูลที่กำหนดโดยผู้ใช้ CQL

CQL ให้ความสะดวกในการสร้างและใช้ชนิดข้อมูลที่ผู้ใช้กำหนดเอง คุณสามารถสร้างชนิดข้อมูลเพื่อจัดการหลายเขตข้อมูล บทนี้อธิบายวิธีการสร้างแก้ไขและลบชนิดข้อมูลที่ผู้ใช้กำหนดเอง

การสร้างชนิดข้อมูลที่ผู้ใช้กำหนด

คำสั่ง CREATE TYPEใช้เพื่อสร้างชนิดข้อมูลที่ผู้ใช้กำหนดเอง ไวยากรณ์มีดังนี้ -

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

ตัวอย่าง

ด้านล่างเป็นตัวอย่างสำหรับการสร้างประเภทข้อมูลที่ผู้ใช้กำหนดเอง ในตัวอย่างนี้เรากำลังสร้างไฟล์card_details data type containing the following 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<int>
... );

Note − The name used for user-defined data type should not coincide with reserved type names.

Verification

Use the DESCRIBE command to verify whether the type created has been created or not.

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

Altering a User-defined Data Type

ALTER TYPE − command is used to alter an existing data type. Using ALTER, you can add a new field or rename an existing field.

Adding a Field to a Type

Use the following syntax to add a new field to an existing user-defined data type.

ALTER TYPE typename
ADD field_name field_type;

The following code adds a new field to the Card_details data type. Here we are adding a new field called email.

cqlsh:tutorialspoint> ALTER TYPE card_details ADD email text;

Verification

Use the DESCRIBE command to verify whether the new field is added or not.

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

Renaming a Field in a Type

Use the following syntax to rename an existing user-defined data type.

ALTER TYPE typename
RENAME existing_name TO new_name;

The following code changes the name of the field in a type. Here we are renaming the field email to mail.

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

Verification

Use the DESCRIBE command to verify whether the type name changed or not.

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

Deleting a User-defined Data Type

DROP TYPE is the command used to delete a user-defined data type. Given below is an example to delete a user-defined data type.

Example

Before deleting, verify the list of all user-defined data types using DESCRIBE_TYPES command as shown below.

cqlsh:tutorialspoint> DESCRIBE TYPES;
card_details card

From the two types, delete the type named card as shown below.

cqlsh:tutorialspoint> drop type card;

Use the DESCRIBE command to verify whether the data type dropped or not.

cqlsh:tutorialspoint> describe types;

card_details