Cassandra - Типы данных, определяемые пользователем CQL
CQL предоставляет возможность создания и использования пользовательских типов данных. Вы можете создать тип данных для обработки нескольких полей. В этой главе объясняется, как создавать, изменять и удалять пользовательский тип данных.
Создание определяемого пользователем типа данных
Команда CREATE TYPEиспользуется для создания определяемого пользователем типа данных. Его синтаксис следующий -
CREATE TYPE <keyspace name>. <data typename>
( variable1, variable2).
пример
Ниже приводится пример создания пользовательского типа данных. В этом примере мы создаемcard_details тип данных, содержащий следующие сведения.
Поле | Имя поля | Тип данных |
---|---|---|
кредитная карта нет | число | int |
пин-код кредитной карты | штырь | int |
Имя на кредитной карте | имя | текст |
cvv | cvv | int |
Контактные данные держателя карты | Телефон | набор |
cqlsh:tutorialspoint> CREATE TYPE card_details (
... num int,
... pin int,
... name text,
... cvv int,
... phone set<int>
... );
Note - Имя, используемое для пользовательского типа данных, не должно совпадать с зарезервированными именами типов.
Проверка
Использовать DESCRIBE команда, чтобы проверить, был ли создан созданный тип или нет.
CREATE TYPE tutorialspoint.card_details (
num int,
pin int,
name text,
cvv int,
phone set<int>
);
Изменение определяемого пользователем типа данных
ALTER TYPE- команда используется для изменения существующего типа данных. Используя ALTER, вы можете добавить новое поле или переименовать существующее.
Добавление поля к типу
Используйте следующий синтаксис, чтобы добавить новое поле к существующему пользовательскому типу данных.
ALTER TYPE typename
ADD field_name field_type;
Следующий код добавляет новое поле в Card_detailsтип данных. Здесь мы добавляем новое поле под названием электронная почта.
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>,
);
Переименование поля в типе
Используйте следующий синтаксис для переименования существующего пользовательского типа данных.
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<int>,
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