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

> Permet d’exécuter des requêtes sur des données stockées dans une base de données SQLite.

# sqlite

Permet d’exécuter des requêtes sur des données stockées dans une base de données [SQLite](/docs/fr/reference/engines/database-engines/sqlite).

<div id="syntax">
  ## Syntaxe
</div>

```sql theme={null}
sqlite('db_path', 'table_name')
```

<div id="arguments">
  ## Arguments
</div>

* `db_path` — Chemin d’accès à un fichier contenant une base de données SQLite. [String](/docs/fr/reference/data-types/string).
* `table_name` — Nom d’une table de la base de données SQLite, ou d’une requête transmise à SQLite telle quelle (voir [Transmettre une requête au lieu d’un nom de table](#passing-a-query)). [String](/docs/fr/reference/data-types/string).

<div id="returned_value">
  ## Valeur renvoyée
</div>

* Un objet de table avec les mêmes colonnes que la table `SQLite` d’origine.

<div id="passing-a-query">
  ## Passer une requête au lieu d’un nom de table
</div>

Au lieu d’un nom de table, le deuxième argument peut être une requête `SELECT` transmise telle quelle à SQLite. La structure de la table obtenue est déduite du résultat de la requête. La requête peut être écrite soit sous forme de sous-requête, soit encapsulée dans la fonction `query` :

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

Une telle table est en lecture seule : `INSERT` n’y est pas autorisé. La même syntaxe est prise en charge par le moteur de table [`SQLite`](/docs/fr/reference/engines/table-engines/integrations/sqlite).

<Note>
  La forme de sous-requête `(SELECT ...)` est analysée par ClickHouse, puis re-sérialisée avant d’être envoyée à SQLite. Elle doit donc être valide en ClickHouse SQL. Pour transmettre une syntaxe propre à SQLite que ClickHouse n’analyse pas, utilisez la forme `query('...')`, dont le texte est envoyé tel quel à SQLite.

  Les clauses externes `WHERE`, `LIMIT`, les agrégations, etc., de la requête ClickHouse englobante ne sont **pas** répercutées dans la requête transmise — elles sont appliquées dans ClickHouse après la récupération du résultat complet de la requête. Pour limiter les données lues depuis SQLite, placez le filtre dans la requête transmise. Avec [`external_table_strict_query = 1`](/docs/fr/reference/settings/session-settings#external_table_strict_query), un filtre externe qui ne peut pas être répercuté provoque une exception au lieu d’être appliqué localement.
</Note>

<div id="example">
  ## Exemple
</div>

```sql title="Query" theme={null}
SELECT * FROM sqlite('sqlite.db', 'table1') ORDER BY col2;
```

```text title="Response" theme={null}
┌─col1──┬─col2─┐
│ line1 │    1 │
│ line2 │    2 │
│ line3 │    3 │
└───────┴──────┘
```

<div id="related">
  ## Voir aussi
</div>

* [SQLite](/docs/fr/reference/engines/table-engines/integrations/sqlite) moteur de table
* [SQLite database engine](/docs/fr/reference/engines/database-engines/sqlite) — section consacrée à la prise en charge des types de données
