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