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

> El motor permite importar y exportar datos en SQLite y admite consultas a tablas de SQLite directamente desde ClickHouse.

# Motor de tabla de 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>
            No es compatible con ClickHouse Cloud
        </div>;
};

<CloudNotSupportedBadge />

El motor permite importar y exportar datos a SQLite y admite consultas directas a tablas de SQLite desde ClickHouse.

<div id="creating-a-table">
  ## Crear una tabla
</div>

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

**Parámetros del motor**

* `db_path` — Ruta del archivo SQLite que contiene una base de datos.
* `table` — Nombre de una tabla en la base de datos SQLite, o una consulta que se pasa a SQLite tal cual (consulte [Pasar una consulta en lugar de un nombre de tabla](#passing-a-query)).

<div id="passing-a-query">
  ## Pasar una consulta en lugar del nombre de una tabla
</div>

En lugar del nombre de una tabla, el argumento `table` puede ser una consulta `SELECT` que se pasa a SQLite tal cual. La estructura de la tabla se infiere del resultado de la consulta. La consulta puede escribirse como una subconsulta o envolverse en la función `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'));
```

Dicha tabla es de solo lectura: no se permite hacer `INSERT` en ella. La misma sintaxis también es compatible con la función de tabla [`sqlite`](/docs/es/reference/functions/table-functions/sqlite).

<Note>
  La forma de subconsulta `(SELECT ...)` es analizada por ClickHouse y se vuelve a serializar antes de enviarse a SQLite. Por lo tanto, debe ser ClickHouse SQL válido. Para pasar sintaxis específica de SQLite que ClickHouse no analiza, use la forma `query('...')`, cuyo texto se envía literalmente a SQLite.

  Cualquier `WHERE`, `LIMIT`, agregación, etc. externo de la consulta de ClickHouse circundante **no** se hace pushdown en la consulta pasada; se aplica en ClickHouse después de recuperar el resultado completo de la consulta. Para restringir los datos leídos desde SQLite, coloque el filtro dentro de la consulta pasada. Con [`external_table_strict_query = 1`](/docs/es/reference/settings/session-settings#external_table_strict_query), un filtro externo para el que no se puede hacer pushdown se rechaza con una excepción en lugar de aplicarse localmente.
</Note>

<div id="data-types-support">
  ## Compatibilidad con tipos de datos
</div>

Cuando se especifican explícitamente los tipos de columna de ClickHouse en la definición de la tabla, los siguientes tipos de ClickHouse se pueden interpretar a partir de columnas TEXT de SQLite:

* [Date](/docs/es/reference/data-types/date), [Date32](/docs/es/reference/data-types/date32)
* [DateTime](/docs/es/reference/data-types/datetime), [DateTime64](/docs/es/reference/data-types/datetime64)
* [UUID](/docs/es/reference/data-types/uuid)
* [Enum8, Enum16](/docs/es/reference/data-types/enum)
* [Decimal32, Decimal64, Decimal128, Decimal256](/docs/es/reference/data-types/decimal)
* [FixedString](/docs/es/reference/data-types/fixedstring)
* Todos los tipos enteros ([UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64](/docs/es/reference/data-types/int-uint))
* [Float32, Float64](/docs/es/reference/data-types/float)

Consulte [motor de base de datos SQLite](/docs/es/reference/engines/database-engines/sqlite#data_types-support) para ver la correspondencia de tipos predeterminada.

<div id="usage-example">
  ## Ejemplo de uso
</div>

Muestra una consulta para crear la tabla en 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');
```

Devuelve los datos de la tabla:

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

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

**Véase también**

* [SQLite](/docs/es/reference/engines/database-engines/sqlite) motor
* [sqlite](/docs/es/reference/functions/table-functions/sqlite) función de tabla
