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

> Permite consultar dados armazenados em um banco de dados SQLite.

# sqlite

Permite consultar dados armazenados em um banco de dados [SQLite](/pt-BR/reference/engines/database-engines/sqlite).

## Sintaxe

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

## Argumentos

* `db_path` — Caminho para um arquivo de banco de dados SQLite. [String](/pt-BR/reference/data-types/string).
* `table_name` — Nome de uma tabela no banco de dados SQLite ou uma consulta passada ao SQLite como está (consulte [Passando uma consulta em vez de um nome de tabela](#passing-a-query)). [String](/pt-BR/reference/data-types/string).

## Valor retornado

* Um objeto de tabela com as mesmas colunas da tabela `SQLite` original.

## Passando uma consulta em vez de um nome de tabela

Em vez de um nome de tabela, o segundo argumento pode ser uma consulta `SELECT` passada ao SQLite como está. A estrutura da tabela resultante é inferida a partir do resultado da consulta. A consulta pode ser escrita como uma subconsulta ou encapsulada na função `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'));
```

Essa tabela é somente leitura: não é permitido fazer `INSERT` nela. A mesma sintaxe também é aceita pelo motor de tabela [`SQLite`](/pt-BR/reference/engines/table-engines/integrations/sqlite).

<Note>
  A forma de subconsulta `(SELECT ...)` é analisada pelo ClickHouse e reserializada antes de ser enviada ao SQLite. Portanto, ela deve ser um SQL válido do ClickHouse. Para usar uma sintaxe específica do SQLite que o ClickHouse não analisa, use a forma `query('...')`, cujo texto é enviado ao SQLite literalmente.

  Qualquer `WHERE`, `LIMIT`, agregação etc. externo da consulta ClickHouse circundante **não** é aplicado à consulta fornecida — ele é aplicado no ClickHouse depois que o resultado completo da consulta é buscado. Para restringir os dados lidos do SQLite, coloque o filtro dentro da consulta fornecida. Com [`external_table_strict_query = 1`](/pt-BR/reference/settings/session-settings/external-table#external_table_strict_query), um filtro externo nas colunas da função de tabela é rejeitado com uma exceção, em vez de ser aplicado localmente, pois não pode ser aplicado à consulta fornecida. A verificação abrange o predicado `WHERE` de nível superior e cada conjunção de um `AND` de nível superior. Um `PREWHERE` nas colunas desta tabela não é um caso para essa configuração: este motor de tabela não oferece suporte a `PREWHERE`, e essa consulta é rejeitada com `ILLEGAL_PREWHERE` independentemente da configuração. A verificação é executada apenas onde um filtro poderia ser aplicado: quando esta tabela é a única tabela da consulta, em qualquer lado de um `INNER JOIN` ou no lado preservado de uma junção externa (o lado esquerdo de um `LEFT JOIN`, o lado direito de um `RIGHT JOIN`). No lado não preservado de um `LEFT`/`RIGHT JOIN` e em qualquer lado de um `FULL JOIN`, nada é aplicado e nada é verificado; portanto, um filtro nas colunas desta tabela é aplicado localmente após a junção mesmo no modo estrito. Onde a verificação é executada, um predicado que referencia outras tabelas unidas na consulta circundante não é aplicado e é excluído da verificação, independentemente de referenciar apenas o lado unido ou de misturá-lo com esta tabela em uma expressão que não seja `AND` (por exemplo, um `OR`); tal predicado mantém seu ponto usual de avaliação no ClickHouse (`WHERE` após a junção, `PREWHERE` antes dela) e não é rejeitado.
</Note>

## Exemplo

```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 │
└───────┴──────┘
```

## Relacionados

* [SQLite](/pt-BR/reference/engines/table-engines/integrations/sqlite) motor de tabela
* [Mecanismo de banco de dados SQLite](/pt-BR/reference/engines/database-engines/sqlite) — seção de suporte a tipos de dados
