Cassandra - Kiểu dữ liệu do người dùng xác định trong CQL
CQL cung cấp phương tiện tạo và sử dụng các kiểu dữ liệu do người dùng xác định. Bạn có thể tạo một kiểu dữ liệu để xử lý nhiều trường. Chương này giải thích cách tạo, thay đổi và xóa kiểu dữ liệu do người dùng xác định.
Tạo kiểu dữ liệu do người dùng xác định
Lệnh CREATE TYPEđược sử dụng để tạo kiểu dữ liệu do người dùng xác định. Cú pháp của nó như sau:
CREATE TYPE <keyspace name>. <data typename>
( variable1, variable2).
Thí dụ
Dưới đây là một ví dụ để tạo kiểu dữ liệu do người dùng xác định. Trong ví dụ này, chúng tôi đang tạocard_details kiểu dữ liệu chứa các chi tiết sau.
Cánh đồng | Tên trường | Loại dữ liệu |
---|---|---|
thẻ tín dụng số | num | int |
mã pin thẻ tín dụng | ghim | int |
tên trên thẻ tín dụng | Tên | bản văn |
cvv | cvv | int |
Chi tiết liên hệ của chủ thẻ | điện thoại | bộ |
cqlsh:tutorialspoint> CREATE TYPE card_details (
... num int,
... pin int,
... name text,
... cvv int,
... phone set<int>
... );
Note - Tên dùng cho kiểu dữ liệu do người dùng định nghĩa không được trùng với tên kiểu dành riêng.
xác minh
Sử dụng DESCRIBE lệnh để xác minh xem kiểu được tạo đã được tạo hay chưa.
CREATE TYPE tutorialspoint.card_details (
num int,
pin int,
name text,
cvv int,
phone set<int>
);
Thay đổi loại dữ liệu do người dùng xác định
ALTER TYPE- lệnh được sử dụng để thay đổi kiểu dữ liệu hiện có. Sử dụng ALTER, bạn có thể thêm trường mới hoặc đổi tên trường hiện có.
Thêm một trường vào một loại
Sử dụng cú pháp sau để thêm trường mới vào kiểu dữ liệu do người dùng xác định hiện có.
ALTER TYPE typename
ADD field_name field_type;
Đoạn mã sau thêm một trường mới vào Card_detailsloại dữ liệu. Ở đây chúng tôi đang thêm một trường mới có tên là email.
cqlsh:tutorialspoint> ALTER TYPE card_details ADD email text;
xác minh
Sử dụng DESCRIBE lệnh để xác minh xem trường mới có được thêm vào hay không.
cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (
num int,
pin int,
name text,
cvv int,
phone set<int>,
);
Đổi tên một trường trong một loại
Sử dụng cú pháp sau để đổi tên kiểu dữ liệu hiện có do người dùng xác định.
ALTER TYPE typename
RENAME existing_name TO new_name;
Đoạn mã sau thay đổi tên của trường trong một kiểu. Ở đây chúng tôi đang đổi tên trường email thành thư.
cqlsh:tutorialspoint> ALTER TYPE card_details RENAME email TO mail;
xác minh
Sử dụng DESCRIBE lệnh để xác minh xem tên kiểu đã thay đổi hay chưa.
cqlsh:tutorialspoint> describe type card_details;
CREATE TYPE tutorialspoint.card_details (
num int,
pin int,
name text,
cvv int,
phone set<int>,
mail text
);
Xóa loại dữ liệu do người dùng xác định
DROP TYPElà lệnh dùng để xóa kiểu dữ liệu do người dùng định nghĩa. Dưới đây là một ví dụ để xóa kiểu dữ liệu do người dùng xác định.
Thí dụ
Trước khi xóa, hãy xác minh danh sách tất cả các loại dữ liệu do người dùng xác định bằng cách sử dụng DESCRIBE_TYPES lệnh như hình dưới đây.
cqlsh:tutorialspoint> DESCRIBE TYPES;
card_details card
Từ hai loại, xóa loại có tên card như hình bên dưới.
cqlsh:tutorialspoint> drop type card;
Sử dụng DESCRIBE lệnh để xác minh xem kiểu dữ liệu có bị giảm hay không.
cqlsh:tutorialspoint> describe types;
card_details