

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 사용자 정의 유형(UDTs)
<a name="cql.ddl.type"></a>

*UDT* - Amazon Keyspaces에서 단일 열을 정의하는 데 사용할 수 있는 필드 및 데이터 유형의 그룹입니다. UDTs에 유효한 데이터 형식은 모두 동일한 키스페이스에서 이미 생성한 컬렉션 및 기타 UDTs를 포함하여 지원되는 Cassandra 데이터 형식입니다. 지원되는 Cassandra 데이터 형식에 대한 자세한 내용은 섹션을 참조하세요[Cassandra 데이터 유형 지원](cassandra-apis.md#cassandra-data-type).

```
user_defined_type::= udt_name
udt_name::= [ keyspace_name '.' ] identifier
```

**Topics**
+ [CREATE TYPE](#cql.ddl.type.create)
+ [DROP TYPE](#cql.ddl.type.drop)

## CREATE TYPE
<a name="cql.ddl.type.create"></a>

`CREATE TYPE` 문을 사용하여 새 유형을 생성합니다.

 **구문**

```
create_type_statement ::=  CREATE TYPE [ IF NOT EXISTS ] udt_name
    '('field_definition ( ',' field_definition)* ')'
            field_definition::= identifier cql_type
```

위치:
+ `IF NOT EXISTS` `CREATE TYPE`는 유형이 이미 있는 경우가 실패하지 않도록 합니다. (선택 사항)
+ `udt_name`는 형식의 UDT의 정규화된 이름입니다. 예: `my_keyspace.my_type`. `USE` 문으로 현재 키스페이스를 정의하는 경우 키스페이스 이름을 지정할 필요가 없습니다.
+ `field_definition`는 이름과 유형으로 구성됩니다.

다음 표에는 허용되는 UDT 이름의 예가 나와 있습니다. 첫 번째 열은 유형을 생성할 때 이름을 입력하는 방법을 보여주고, 두 번째 열은 Amazon Keyspaces가 내부적으로 이름의 형식을 지정하는 방법을 보여줍니다. Amazon Keyspaces는와 같은 작업에 형식이 지정된 이름을 요구합니다`GetType`.


| 입력한 이름 | 형식이 지정된 이름 | Note | 
| --- | --- | --- | 
|  MY\$1UDT  | my\$1udt | 큰따옴표가 없으면 Amazon Keyspaces는 모든 대문자를 소문자로 변환합니다. | 
|  "MY\$1UDT"  | MY\$1UDT | 큰따옴표를 사용하면 Amazon Keyspaces는 대문자를 존중하고 형식이 지정된 이름에서 큰따옴표를 제거합니다. | 
|  "1234"  | 1234 | 큰따옴표를 사용하면 이름이 숫자로 시작할 수 있으며 Amazon Keyspaces는 형식이 지정된 이름에서 큰따옴표를 제거합니다. | 
|  "Special\$1Ch@r@cters<>\$1\$1"  | Special\$1Ch@r@cters<>\$1\$1 | 큰따옴표를 사용하면 이름에 특수 문자가 포함될 수 있으며 Amazon Keyspaces는 형식이 지정된 이름에서 큰따옴표를 제거합니다. | 
|  "nested""""""quotes"  | nested"""quotes | Amazon Keyspaces는 형식이 지정된 이름에서 외부 큰따옴표와 이스케이프 큰따옴표를 제거합니다. | 

**예시**

```
CREATE TYPE my_keyspace.phone (
    country_code int,
    number text
);
```

중첩된 UDTs 동결된 경우 UDT를 중첩할 수 있습니다. 유형의 기본값 및 할당량에 대한 자세한 내용은 섹션을 참조하세요[Amazon Keyspaces UDT 할당량 및 기본값](quotas.md#udt-table).

```
CREATE TYPE my_keyspace.user (
    first_name text,
    last_name text,
    phones FROZEN<phone>
);
```

UDTs[User-defined types (UDTs) in Amazon Keyspaces](udts.md).

## DROP TYPE
<a name="cql.ddl.type.drop"></a>

`DROP TYPE` 문을 사용하여 UDT를 삭제합니다. 다른 유형 또는 테이블에서 사용하지 않는 유형만 삭제할 수 있습니다.

 **구문**

```
drop_type_statement ::=  DROP TYPE [ IF EXISTS ] udt_name
```

위치:
+ `IF EXISTS` `DROP TYPE`는 유형이 없는 경우가 실패하지 않도록 합니다. (선택 사항)
+ `udt_name`는 형식의 UDT의 정규화된 이름입니다. 예: `my_keyspace.my_type`. `USE` 문으로 현재 키스페이스를 정의하는 경우 키스페이스 이름을 지정할 필요가 없습니다.

**예제**

```
DROP TYPE udt_name;
```