Cassandra-CQL 사용자 정의 데이터 유형

CQL은 사용자 정의 데이터 유형을 만들고 사용하는 기능을 제공합니다. 여러 필드를 처리하는 데이터 유형을 만들 수 있습니다. 이 장에서는 사용자 정의 데이터 유형을 생성, 변경 및 삭제하는 방법에 대해 설명합니다.

사용자 정의 데이터 유형 생성

명령 CREATE TYPE사용자 정의 데이터 유형을 만드는 데 사용됩니다. 구문은 다음과 같습니다.

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

다음은 사용자 정의 데이터 유형을 생성하는 예입니다. 이 예에서 우리는card_details 다음 세부 사항을 포함하는 데이터 유형.

분야 명 데이터 형식
신용 카드 번호 num 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