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

> Позволяет выполнять запросы к данным, хранящимся в базе данных SQLite [SQLite](/reference/engines/database-engines/sqlite).

# sqlite

Позволяет выполнять запросы к данным, хранящимся в базе данных [SQLite](/ru/reference/engines/database-engines/sqlite).

## Синтаксис

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

## Аргументы

* `db_path` — Путь к файлу базы данных SQLite. [String](/ru/reference/data-types/string).
* `table_name` — Имя таблицы в базе данных SQLite или запрос, передаваемый в SQLite как есть (см. [Передача запроса вместо имени таблицы](#passing-a-query)). [String](/ru/reference/data-types/string).

## Возвращаемое значение

* Объект таблица с теми же столбцами, что и в исходной таблице `SQLite`.

## Передача запроса вместо имени таблицы

Вместо имени таблицы вторым аргументом можно указать `SELECT`-запрос, который передаётся в SQLite как есть. Структура результирующей таблицы автоматически определяется по результату запроса. Запрос можно записать либо как подзапрос, либо обернуть в функцию `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'));
```

Такая таблица доступна только для чтения: операция `INSERT` для неё недопустима. Тот же синтаксис поддерживается и движком таблицы [`SQLite`](/ru/reference/engines/table-engines/integrations/sqlite).

<Note>
  Форма подзапроса `(SELECT ...)` разбирается ClickHouse и повторно сериализуется перед отправкой в SQLite. Поэтому она должна быть корректным ClickHouse SQL. Чтобы передать синтаксис, специфичный для SQLite, который ClickHouse не разбирает, используйте форму `query('...')`, текст которой отправляется в SQLite дословно.

  Любые внешние `WHERE`, `LIMIT`, агрегация и т. п. из окружающего запроса к ClickHouse **не** переносятся в переданный запрос — они применяются в ClickHouse после получения полного результата запроса. Чтобы ограничить данные, считываемые из SQLite, поместите фильтр внутрь переданного запроса. При [`external_table_strict_query = 1`](/ru/reference/settings/session-settings/external-table#external_table_strict_query) внешний фильтр по столбцам табличной функции отклоняется с исключением вместо локального применения, поскольку его нельзя перенести в переданный запрос. Проверка охватывает предикат верхнего уровня `WHERE` и каждую конъюнкцию верхнего уровня `AND`. `PREWHERE` по столбцам этой таблицы не относится к данному параметру: этот движок таблицы не поддерживает `PREWHERE`, и такой запрос отклоняется с `ILLEGAL_PREWHERE` независимо от параметра. Проверка выполняется только там, где фильтр вообще может быть перенесён: когда эта таблица является единственной таблицей запроса, находится с любой стороны `INNER JOIN` или на сохраняющей стороне внешнего JOIN (левой стороне `LEFT JOIN`, правой стороне `RIGHT JOIN`). На несохраняющей стороне `LEFT`/`RIGHT JOIN` и с любой стороны `FULL JOIN` ничего не переносится и не проверяется, поэтому фильтр по столбцам этой таблицы применяется локально после JOIN даже в строгом режиме. Там, где выполняется проверка, предикат, ссылающийся на другие таблицы, присоединённые в окружающем запросе, не переносится и исключается из проверки независимо от того, ссылается ли он только на присоединённую сторону или смешивает её с этой таблицей в одном выражении, отличном от `AND` (например, `OR`); такой предикат сохраняет обычную точку вычисления в ClickHouse (`WHERE` после JOIN, `PREWHERE` перед ним) и не отклоняется.
</Note>

## Пример

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

## См. также

* [SQLite](/ru/reference/engines/table-engines/integrations/sqlite) — движок таблицы
* [Движок базы данных SQLite](/ru/reference/engines/database-engines/sqlite) — раздел о поддержке типов данных
