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

# ネイティブプロトコルのカラム型

> ネイティブプロトコルのカラム型

一般的なリファレンスについては、[Data Types](/ja/reference/data-types) を参照してください。

<Tip>
  数値型のエンコーディングは、AMD64 や ARM64 などのリトルエンディアン CPU のメモリレイアウトと一致しているため、非常に効率よくエンコードおよびデコードできます。
</Tip>

| 型                                                              | エンコーディング                                                                                                                 |
| -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| **整数** ([Int/UInt](/ja/reference/data-types/int-uint))         | リトルエンディアンの 8、16、32、64、128、または 256 ビット                                                                                    |
| **浮動小数点数** ([Float32/Float64](/ja/reference/data-types/float)) | IEEE 754 のバイナリ表現                                                                                                         |
| [String](/ja/reference/data-types/string)                      | 文字列の配列。各要素は `(len, value)`                                                                                               |
| [FixedString(N)](/ja/reference/data-types/fixedstring)         | N バイトのシーケンスの配列                                                                                                           |
| [IPv4](/ja/reference/data-types/ipv4)                          | `UInt32` の別名で、UInt32 として表現されます                                                                                           |
| [IPv6](/ja/reference/data-types/ipv6)                          | `FixedString(16)` の別名で、バイナリとして表現されます                                                                                     |
| [Tuple](/ja/reference/data-types/tuple)                        | 連続してエンコードされたカラムの配列。例: `Tuple(String, UInt8)` = 2 つの連続したカラム                                                               |
| [Map](/ja/reference/data-types/map)                            | `Map(K, V)` = 3 つのカラム: `Offsets ColUInt64, Keys K, Values V`。Keys/Values の行数 = 最後の Offsets の値                            |
| [Array](/ja/reference/data-types/array)                        | `Array(T)` = 2 つのカラム: `Offsets ColUInt64, Data T`。Data の行数 = 最後の Offsets の値                                              |
| [Nullable](/ja/reference/data-types/nullable)                  | `Nullable(T)` = 2 つのカラム: `Nulls ColUInt8, Values T`。行数は同じです。Nulls はマスクです: 1=null、0=value                                 |
| [UUID](/ja/reference/data-types/uuid)                          | `FixedString(16)` の別名で、バイナリとして表現されます                                                                                     |
| [Enum](/ja/reference/data-types/enum)                          | `Int8` または `Int16` の別名で、各整数は String 値に対応付けられます                                                                           |
| [LowCardinality](/ja/reference/data-types/lowcardinality)      | `LowCardinality(T)` = 2 つのカラム: `Index T, Keys K`。ここで K は UInt8/16/32/64 です。Index には一意な値が含まれ、Keys には Index 内の位置を示す値が含まれます |
| [Bool](/ja/reference/data-types/boolean)                       | `UInt8` の別名: 0=false、1=true                                                                                              |

**例: Nullable のエンコーディング**

```text theme={null}
[null, "", "hello", null, "world"] をエンコードするには:
  Values: ["", "", "hello", "", "world"] (len: 5)
  Nulls:  [ 1,  0,       0,  1,       0] (len: 5)
```

**例: LowCardinality エンコーディング**

```text theme={null}
To encode ["Eko", "Eko", "Amadela", "Amadela", "Amadela", "Amadela"]:
  Index: ["Eko", "Amadela"] (String)
  Keys:  [0, 0, 1, 1, 1, 1] (UInt8)
```
