> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> CSV 형식 문서

# CSV

<div id="description">
  ## 설명
</div>

쉼표로 구분된 값 포맷([RFC](https://tools.ietf.org/html/rfc4180))입니다.
포맷할 때 각 행은 큰따옴표로 묶입니다. 문자열 안의 큰따옴표는 큰따옴표 2개가 연속된 형태로 출력됩니다.
문자 이스케이프에 대한 다른 규칙은 없습니다.

* 날짜 및 날짜-시간 값은 큰따옴표로 묶입니다.
* 숫자는 따옴표 없이 출력됩니다.
* 값은 구분 기호 문자로 구분되며, 기본값은 `,`입니다. 구분 기호 문자는 설정 [format\_csv\_delimiter](/ko/reference/settings/formats/format-csv#format_csv_delimiter)에서 정의됩니다.
* 행은 Unix 줄바꿈 문자(LF)를 사용해 구분됩니다.
* 배열은 CSV에서 다음과 같이 직렬화됩니다.
  * 먼저 배열은 TabSeparated 포맷에서와 같이 문자열로 직렬화됩니다.
  * 이렇게 생성된 문자열은 큰따옴표로 묶여 CSV에 출력됩니다.
* CSV 형식에서 튜플은 별도의 컬럼으로 직렬화됩니다(즉, 튜플 내부의 중첩 구조는 사라집니다).

```bash theme={null}
$ clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FORMAT CSV" < data.csv
```

<Note>
  기본적으로 구분자는 `,`입니다.
  자세한 내용은 [format\_csv\_delimiter](/ko/reference/settings/formats/format-csv#format_csv_delimiter) 설정을 참조하십시오.
</Note>

파싱 시 모든 값은 따옴표가 있거나 없는 형태로 모두 파싱할 수 있습니다. 큰따옴표와 작은따옴표를 모두 지원합니다.

행도 따옴표 없이 구성할 수 있습니다. 이 경우 구분 기호 문자 또는 줄바꿈 문자(CR 또는 LF)가 나올 때까지 파싱됩니다.
하지만 RFC와 달리, 따옴표 없이 행을 파싱할 때는 앞뒤의 공백과 탭이 무시됩니다.
줄바꿈은 Unix(LF), Windows(CR LF), Mac OS Classic(CR LF) 타입을 지원합니다.

`NULL`은 [format\_csv\_null\_representation](/ko/reference/settings/formats/format-csv#format_csv_null_representation) 설정에 따라 포맷됩니다(기본값은 `\N`입니다).

입력 데이터에서 `ENUM` 값은 이름 또는 id로 표현할 수 있습니다.
먼저 입력 값을 `ENUM` 이름과 일치시키려고 시도합니다.
일치하지 않고 입력 값이 숫자이면, 이 숫자를 `ENUM` id와 일치시키려고 시도합니다.
입력 데이터에 `ENUM` id만 포함되어 있다면 `ENUM` 파싱을 최적화하기 위해 [input\_format\_csv\_enum\_as\_number](/ko/reference/settings/formats/input-format#input_format_csv_enum_as_number) 설정을 활성화하는 것이 좋습니다.

<div id="example-usage">
  ## 예시 사용
</div>

<div id="format-settings">
  ## 포맷 설정
</div>

| 설정                                                                                                                                                                 | 설명                                                                                           | 기본값     | 참고                                                                                                                                                               |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [format\_csv\_delimiter](/ko/reference/settings/formats/format-csv#format_csv_delimiter)                                                                           | CSV 데이터에서 구분 기호로 사용할 문자를 지정합니다.                                                              | `,`     |                                                                                                                                                                  |
| [format\_csv\_allow\_single\_quotes](/ko/reference/settings/formats/format-csv#format_csv_allow_single_quotes)                                                     | 작은따옴표로 둘러싼 문자열을 허용합니다.                                                                       | `true`  |                                                                                                                                                                  |
| [format\_csv\_allow\_double\_quotes](/ko/reference/settings/formats/format-csv#format_csv_allow_double_quotes)                                                     | 큰따옴표로 둘러싼 문자열을 허용합니다.                                                                        | `true`  |                                                                                                                                                                  |
| [format\_csv\_null\_representation](/ko/reference/settings/formats/format-csv#format_csv_null_representation)                                                      | CSV 형식에서 사용할 사용자 지정 NULL 표현입니다.                                                              | `\N`    |                                                                                                                                                                  |
| [input\_format\_csv\_empty\_as\_default](/ko/reference/settings/formats/input-format#input_format_csv_empty_as_default)                                            | CSV 입력의 빈 필드를 기본값으로 처리합니다.                                                                   | `true`  | 복잡한 기본 표현식의 경우 [input\_format\_defaults\_for\_omitted\_fields](/ko/reference/settings/formats/input-format#input_format_defaults_for_omitted_fields)도 활성화해야 합니다. |
| [input\_format\_csv\_missing\_nullable\_as\_empty\_string](/ko/reference/settings/formats/input-format#input_format_csv_missing_nullable_as_empty_string)          | `input_format_csv_empty_as_default` 설정과 관계없이 `Nullable(String)`의 누락된 값을 NULL 대신 빈 문자열로 읽습니다. | `false` |                                                                                                                                                                  |
| [input\_format\_csv\_enum\_as\_number](/ko/reference/settings/formats/input-format#input_format_csv_enum_as_number)                                                | CSV 형식에 삽입된 enum 값을 enum 인덱스로 처리합니다.                                                         | `false` |                                                                                                                                                                  |
| [input\_format\_csv\_use\_best\_effort\_in\_schema\_inference](/ko/reference/settings/formats/input-format#input_format_csv_use_best_effort_in_schema_inference)   | CSV 형식에서 스키마 추론을 위해 일부 보정과 휴리스틱을 사용합니다. 비활성화하면 모든 필드를 String 타입으로 추론합니다.                     | `true`  |                                                                                                                                                                  |
| [input\_format\_csv\_arrays\_as\_nested\_csv](/ko/reference/settings/formats/input-format#input_format_csv_arrays_as_nested_csv)                                   | CSV에서 배열을 읽을 때 원소가 중첩된 CSV로 직렬화된 후 문자열에 저장되어 있다고 가정합니다.                                      | `false` |                                                                                                                                                                  |
| [output\_format\_csv\_crlf\_end\_of\_line](/ko/reference/settings/formats/output-format#output_format_csv_crlf_end_of_line)                                        | `true`로 설정하면 CSV 출력 형식의 줄 끝에 `\n` 대신 `\r\n`을 사용합니다.                                          | `false` |                                                                                                                                                                  |
| [input\_format\_csv\_skip\_first\_lines](/ko/reference/settings/formats/input-format#input_format_csv_skip_first_lines)                                            | 데이터 시작 부분에서 지정한 줄 수만큼 건너뜁니다.                                                                 | `0`     |                                                                                                                                                                  |
| [input\_format\_csv\_detect\_header](/ko/reference/settings/formats/input-format#input_format_csv_detect_header)                                                   | CSV 형식에서 이름과 타입이 포함된 헤더를 자동으로 감지합니다.                                                         | `true`  |                                                                                                                                                                  |
| [input\_format\_csv\_skip\_trailing\_empty\_lines](/ko/reference/settings/formats/input-format#input_format_csv_skip_trailing_empty_lines)                         | 데이터 끝에 있는 trailing empty lines를 건너뜁니다.                                                       | `false` |                                                                                                                                                                  |
| [input\_format\_csv\_trim\_whitespaces](/ko/reference/settings/formats/input-format#input_format_csv_trim_whitespaces)                                             | 따옴표로 감싸지지 않은 CSV 문자열의 공백과 탭을 제거합니다.                                                          | `true`  |                                                                                                                                                                  |
| [input\_format\_csv\_allow\_whitespace\_or\_tab\_as\_delimiter](/ko/reference/settings/formats/input-format#input_format_csv_allow_whitespace_or_tab_as_delimiter) | CSV 문자열에서 공백 또는 탭을 필드 구분 기호로 사용할 수 있도록 허용합니다.                                                | `false` |                                                                                                                                                                  |
| [input\_format\_csv\_allow\_variable\_number\_of\_columns](/ko/reference/settings/formats/input-format#input_format_csv_allow_variable_number_of_columns)          | CSV 형식에서 가변적인 수의 컬럼을 허용하고, 추가 컬럼은 무시하며 누락된 컬럼에는 기본값을 사용합니다.                                  | `false` |                                                                                                                                                                  |
| [input\_format\_csv\_use\_default\_on\_bad\_values](/ko/reference/settings/formats/input-format#input_format_csv_use_default_on_bad_values)                        | 잘못된 값 때문에 CSV 필드 역직렬화에 실패한 경우 해당 컬럼에 기본값을 설정할 수 있도록 허용합니다.                                   | `false` |                                                                                                                                                                  |
| [input\_format\_csv\_try\_infer\_numbers\_from\_strings](/ko/reference/settings/formats/input-format#input_format_csv_try_infer_numbers_from_strings)              | 스키마 추론 중 문자열 필드에서 숫자를 추론해 보도록 합니다.                                                           | `false` |                                                                                                                                                                  |
