

# 데이터 유형에 대한 고려 사항
<a name="data-types-considerations"></a>

## 크기 제한
<a name="data-types-considerations-size"></a>

크기 제한이 지정되지 않은 데이터 유형의 경우 한 행의 모든 데이터에 대한 실제 제한은 32MB라는 점에 유의하세요. 자세한 설명은 [Amazon Athena의 SQL 쿼리에 대한 고려 사항 및 제한 사항](other-notable-limitations.md)에서 [Row or column size limitation](other-notable-limitations.md#sql-limitations-rowsize) 섹션을 참조하세요.

## CHAR 및 VARCHAR
<a name="data-types-considerations-char"></a>

`CHAR(n)` 값에는 항상 `n`개의 문자가 포함됩니다. 예를 들어, 'abc'를 `CHAR(7)`로 변환하면 4개의 후행 공백이 추가됩니다.

`CHAR` 값 비교에는 선행 공백과 후행 공백이 포함됩니다.

`CHAR` 또는 `VARCHAR`에 대해 길이가 지정되면 읽을 때 문자열이 지정된 길이만큼 잘립니다. 기본 데이터 문자열이 더 긴 경우 기본 데이터 문자열은 변경되지 않습니다.

`CHAR` 또는 `VARCHAR`에서 작은따옴표를 이스케이프하려면 추가로 작은 따옴표를 사용합니다.

문자열이 아닌 데이터 유형을 DML 쿼리의 문자열로 변환하려면 `VARCHAR` 데이터 유형으로 캐스팅합니다.

`substr` 함수를 사용하여 `CHAR` 데이터 유형에서 지정된 길이의 하위 문자열을 반환하려면 먼저 `CHAR` 값을 `VARCHAR`로 캐스팅해야 합니다. 다음 예제에서 `col1`은 `CHAR` 데이터 유형을 사용합니다.

```
substr(CAST(col1 AS VARCHAR), 1, 4)
```

## DECIMAL
<a name="data-types-considerations-decimal"></a>

특정 10진수 값이 있는 행을 선택하는 경우와 같이 `DECIMAL` 쿼리에서 10진수 값을 리터럴로 지정하려면 다음 예제와 같이 `SELECT` 유형을 지정하고 쿼리에서 10진수 값을 작은따옴표로 묶인 리터럴로 나열합니다.

```
SELECT * FROM my_table
WHERE decimal_value = DECIMAL '0.12'
```

```
SELECT DECIMAL '44.6' + DECIMAL '77.2'
```