> ## 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.

> このエンジンでは、SQLite へのデータのインポートとエクスポートが可能で、 ClickHouse から SQLite のテーブルに対して直接クエリを実行することもできます。

# SQLite テーブルエンジン

export const CloudNotSupportedBadge = () => {
  return <div className="cloudNotSupportedBadge">
            <div className="cloudNotSupportedIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path strokeWidth="1.5" d="M6.33366 12.6666L12.3739 12.6667C13.6593 12.6667 14.7073 11.6187 14.7073 10.3334C14.7073 9.04804 13.6593 8.00003 12.3739 8.00003C12.3739 8.00003 12.3337 7.66659 12.0003 7.33325M10.667 5.33322C8.00033 2.33325 4.45395 4.78537 4.14195 6.68203C2.55728 6.7627 1.29395 8.06203 1.29395 9.6667C1.29395 11.3234 2.66699 12.6666 4.00033 12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path strokeWidth="1.5" d="M2.66699 14L12.0003 4.66663" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>

        </div>
            ClickHouse Cloud では利用できません
        </div>;
};

<CloudNotSupportedBadge />

このエンジンでは、SQLite との間でデータをインポートおよびエクスポートできるほか、ClickHouse から SQLite のテーブルに対して直接クエリを実行できます。

<div id="creating-a-table">
  ## テーブルの作成
</div>

```sql theme={null}
    CREATE TABLE [IF NOT EXISTS] [db.]table_name
    (
        name1 [type1],
        name2 [type2], ...
    ) ENGINE = SQLite('db_path', 'table')
```

**エンジンパラメータ**

* `db_path` — データベースを含む SQLite ファイルへのパス。
* `table` — SQLite データベース内のテーブル名、またはそのまま SQLite に渡されるクエリ ([テーブル名の代わりにクエリを渡す](#passing-a-query) を参照) 。

<div id="passing-a-query">
  ## テーブル名の代わりにクエリを渡す
</div>

テーブル名の代わりに、`table` 引数には、そのまま SQLite に渡される `SELECT` クエリを指定できます。テーブルの構造はクエリ結果から推論されます。クエリは、サブクエリとして記述することも、`query` 関数でラップすることもできます。

```sql theme={null}
CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', (SELECT col1, col2 FROM table1 WHERE col2 > 1));
CREATE TABLE sqlite_table ENGINE = SQLite('sqlite.db', query('SELECT col1, col2 FROM table1 WHERE col2 > 1'));
```

このようなテーブルは読み取り専用で、これに対する `INSERT` は許可されていません。同じ構文は、[`sqlite`](/docs/ja/reference/functions/table-functions/sqlite) テーブル関数でもサポートされています。

<Note>
  サブクエリ形式 `(SELECT ...)` は ClickHouse によって解析され、SQLite に送信される前に再シリアライズされます。そのため、有効な ClickHouse SQL である必要があります。ClickHouse が解析しない SQLite 固有の構文を渡すには、`query('...')` 形式を使用してください。この形式では、テキストがそのまま SQLite に送信されます。

  周囲の ClickHouse クエリにある外側の `WHERE`、`LIMIT`、集約などは、渡したクエリには **プッシュダウンされず**、完全なクエリ結果を取得した後に ClickHouse で適用されます。SQLite から読み取るデータを制限するには、渡すクエリの中にフィルターを含めてください。[`external_table_strict_query = 1`](/docs/ja/reference/settings/session-settings#external_table_strict_query) を指定すると、プッシュダウンできない外側のフィルターはローカルで適用される代わりに、例外を返して拒否されます。
</Note>

<div id="data-types-support">
  ## サポートされるデータ型
</div>

テーブル定義で ClickHouse のカラム型を明示的に指定すると、SQLite の TEXT カラムから以下の ClickHouse 型をパースできます。

* [Date](/docs/ja/reference/data-types/date), [Date32](/docs/ja/reference/data-types/date32)
* [DateTime](/docs/ja/reference/data-types/datetime), [DateTime64](/docs/ja/reference/data-types/datetime64)
* [UUID](/docs/ja/reference/data-types/uuid)
* [Enum8, Enum16](/docs/ja/reference/data-types/enum)
* [Decimal32, Decimal64, Decimal128, Decimal256](/docs/ja/reference/data-types/decimal)
* [FixedString](/docs/ja/reference/data-types/fixedstring)
* すべての整数型 ([UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64](/docs/ja/reference/data-types/int-uint))
* [Float32, Float64](/docs/ja/reference/data-types/float)

デフォルトの型マッピングについては、[SQLite データベースエンジン](/docs/ja/reference/engines/database-engines/sqlite#data_types-support) を参照してください。

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

SQLite のテーブルを作成するクエリを示します。

```sql theme={null}
SHOW CREATE TABLE sqlite_db.table2;
```

```text theme={null}
CREATE TABLE SQLite.table2
(
    `col1` Nullable(Int32),
    `col2` Nullable(String)
)
ENGINE = SQLite('sqlite.db','table2');
```

テーブルのデータを返します：

```sql theme={null}
SELECT * FROM sqlite_db.table2 ORDER BY col1;
```

```text theme={null}
┌─col1─┬─col2──┐
│    1 │ text1 │
│    2 │ text2 │
│    3 │ text3 │
└──────┴───────┘
```

**関連項目**

* [SQLite](/docs/ja/reference/engines/database-engines/sqlite) エンジン
* [sqlite](/docs/ja/reference/functions/table-functions/sqlite) テーブル関数
