> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/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 つを連続して出力します。
文字をエスケープするための、それ以外のルールはありません。

* Date 型および date-time は二重引用符で囲まれます。
* 数値は引用符なしで出力されます。
* 値は区切り文字で区切られ、デフォルトは `,` です。区切り文字は設定 [format\_csv\_delimiter](/docs/ja/reference/settings/formats#format_csv_delimiter) で定義されます。
* 行は Unix のラインフィード (LF) で区切られます。
* Array は CSV で次のようにシリアライズされます。
  * まず、Array は TabSeparated フォーマットと同様に文字列にシリアライズされます
  * 生成された文字列は、二重引用符で囲んで CSV に出力されます。
* CSV フォーマットの Tuple は個別のカラムとしてシリアライズされます (つまり、Tuple 内のネストは失われます) 。

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

<Note>
  デフォルトの区切り文字は `,` です
  詳しくは、設定 [format\_csv\_delimiter](/docs/ja/reference/settings/formats#format_csv_delimiter) を参照してください。
</Note>

パース時には、すべての値を引用符ありでも引用符なしでもパースできます。二重引用符と単一引用符の両方をサポートしています。

行は引用符なしで記述することもできます。この場合、区切り文字または改行文字 (CR または LF) までをパースします。
ただし、RFC には準拠していませんが、引用符なしの行をパースする場合、先頭および末尾のスペースとタブは無視されます。
改行文字としては、Unix (LF) 、Windows (CR LF) 、および Mac OS Classic (CR LF) の各タイプをサポートしています。

`NULL` は、設定 [format\_csv\_null\_representation](/docs/ja/reference/settings/formats#format_csv_null_representation) に従ってフォーマットされます (デフォルト値は `\N` です) 。

入力データでは、`ENUM` の値は名前または id として表現できます。
まず、入力値を `ENUM` 名に一致させようとします。
一致しなかった場合、入力値が数値であれば、その数値を `ENUM` id に一致させようとします。
入力データに `ENUM` id しか含まれていない場合は、`ENUM` のパースを最適化するために、設定 [input\_format\_csv\_enum\_as\_number](/docs/ja/reference/settings/formats#input_format_csv_enum_as_number) を有効にすることを推奨します。

<div id="example-usage">
  ## 使用例
</div>

<div id="format-settings">
  ## フォーマット設定
</div>

| 設定                                                                                                                                                    | 説明                                                                                         | デフォルト   | 注記                                                                                                                                                      |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [format\_csv\_delimiter](/docs/ja/reference/settings/formats#format_csv_delimiter)                                                                         | CSVデータで区切り文字として扱う文字を指定します。                                                                 | `,`     |                                                                                                                                                         |
| [format\_csv\_allow\_single\_quotes](/docs/ja/reference/settings/formats#format_csv_allow_single_quotes)                                                   | シングルクォートで囲まれた文字列を許可します。                                                                    | `true`  |                                                                                                                                                         |
| [format\_csv\_allow\_double\_quotes](/docs/ja/reference/settings/formats#format_csv_allow_double_quotes)                                                   | ダブルクォートで囲まれた文字列を許可します。                                                                     | `true`  |                                                                                                                                                         |
| [format\_csv\_null\_representation](/docs/ja/reference/settings/formats#format_tsv_null_representation)                                                    | CSVフォーマットでのカスタムNULL表現です。                                                                   | `\N`    |                                                                                                                                                         |
| [input\_format\_csv\_empty\_as\_default](/docs/ja/reference/settings/formats#input_format_csv_empty_as_default)                                            | CSV入力の空のフィールドをデフォルト値として扱います。                                                               | `true`  | 複雑なデフォルト式を使う場合は、[input\_format\_defaults\_for\_omitted\_fields](/docs/ja/reference/settings/formats#input_format_defaults_for_omitted_fields) も有効にする必要があります。 |
| [input\_format\_csv\_missing\_nullable\_as\_empty\_string](/docs/ja/reference/settings/formats#input_format_csv_missing_nullable_as_empty_string)          | `input_format_csv_empty_as_default` に関係なく、`Nullable(String)` の欠損値を NULL ではなく空文字列として読み取ります。 | `false` |                                                                                                                                                         |
| [input\_format\_csv\_enum\_as\_number](/docs/ja/reference/settings/formats#input_format_csv_enum_as_number)                                                | CSVフォーマットで挿入されるenum値を、enumのインデックスとして扱います。                                                  | `false` |                                                                                                                                                         |
| [input\_format\_csv\_use\_best\_effort\_in\_schema\_inference](/docs/ja/reference/settings/formats#input_format_csv_use_best_effort_in_schema_inference)   | CSVフォーマットのスキーマ推論で、いくつかの調整やヒューリスティクスを使用します。無効にすると、すべてのフィールドはStringとして推論されます。                | `true`  |                                                                                                                                                         |
| [input\_format\_csv\_arrays\_as\_nested\_csv](/docs/ja/reference/settings/formats#input_format_csv_arrays_as_nested_csv)                                   | CSVからArrayを読み取る際、要素がネストされたCSVとしてシリアライズされたうえで文字列に格納されているものとみなします。                           | `false` |                                                                                                                                                         |
| [output\_format\_csv\_crlf\_end\_of\_line](/docs/ja/reference/settings/formats#output_format_csv_crlf_end_of_line)                                         | `true` に設定すると、CSV出力フォーマットの行末は `\n` ではなく `\r\n` になります。                                      | `false` |                                                                                                                                                         |
| [input\_format\_csv\_skip\_first\_lines](/docs/ja/reference/settings/formats#input_format_csv_skip_first_lines)                                            | データ先頭の指定した行数をスキップします。                                                                      | `0`     |                                                                                                                                                         |
| [input\_format\_csv\_detect\_header](/docs/ja/reference/settings/formats#input_format_csv_detect_header)                                                   | CSVフォーマットで、名前と型を含むヘッダーを自動検出します。                                                            | `true`  |                                                                                                                                                         |
| [input\_format\_csv\_skip\_trailing\_empty\_lines](/docs/ja/reference/settings/formats#input_format_csv_skip_trailing_empty_lines)                         | データ末尾の空行をスキップします。                                                                          | `false` |                                                                                                                                                         |
| [input\_format\_csv\_trim\_whitespaces](/docs/ja/reference/settings/formats#input_format_csv_trim_whitespaces)                                             | クォートされていないCSV文字列内のスペースやタブを削除します。                                                           | `true`  |                                                                                                                                                         |
| [input\_format\_csv\_allow\_whitespace\_or\_tab\_as\_delimiter](/docs/ja/reference/settings/formats#input_format_csv_allow_whitespace_or_tab_as_delimiter) | CSV文字列で、フィールドの区切り文字として空白またはタブを使用できるようにします。                                                 | `false` |                                                                                                                                                         |
| [input\_format\_csv\_allow\_variable\_number\_of\_columns](/docs/ja/reference/settings/formats#input_format_csv_allow_variable_number_of_columns)          | CSVフォーマットで可変数のカラムを許可し、余分なカラムは無視し、不足しているカラムにはデフォルト値を使用します。                                  | `false` |                                                                                                                                                         |
| [input\_format\_csv\_use\_default\_on\_bad\_values](/docs/ja/reference/settings/formats#input_format_csv_use_default_on_bad_values)                        | 不正な値によりCSVフィールドのデシリアライゼーションに失敗した場合、カラムにデフォルト値を設定できるようにします。                                 | `false` |                                                                                                                                                         |
| [input\_format\_csv\_try\_infer\_numbers\_from\_strings](/docs/ja/reference/settings/formats#input_format_csv_try_infer_numbers_from_strings)              | スキーマ推論時に、文字列フィールドから数値を推論することを試みます。                                                         | `false` |                                                                                                                                                         |
