Список виртуальных таблиц
Содержание
1. Введение
Виртуальная таблица — это объект, предоставляющий интерфейс SQL-таблицы, но не хранящийся в файле базы данных, по крайней мере напрямую. Механизм виртуальных таблиц — это функция SQLite, которая позволяет SQLite получать доступ к ресурсам, отличным от битов в файле базы данных, и обрабатывать их с помощью мощного языка запросов SQL.
В таблице ниже перечислены некоторые реализации виртуальных таблиц, доступные для SQLite. Разработчики могут использовать эти виртуальные таблицы в своих приложениях или взять приведённые ниже реализации за основу для создания собственных виртуальных таблиц.
Приведённый ниже список не является исчерпывающим. Другие реализации виртуальных таблиц существуют в дереве исходного кода SQLite и за его пределами. В этом списке представлены наиболее интересные реализации виртуальных таблиц.
2. Виртуальные таблицы
| Имя | Описание |
|---|---|
| bytecode | Табличная функция, отображающая байт-коды подготовленной инструкции. |
| carray | Табличная функция, позволяющая использовать массив языка C, содержащий целые числа, числа с плавающей точкой, строки или двоичные данные, в качестве таблицы в запросе. |
| closure | Вычисляет транзитивное замыкание множества. |
| completion | Предлагает варианты завершения частично введённых слов при интерактивном вводе SQL. Используется CLI для реализации автодополнения по клавише Tab. |
| csv | Виртуальная таблица, представляющая файл со значениями, разделёнными запятыми (CSV) (RFC 4180) в виде таблицы только для чтения, чтобы использовать его в составе более крупного запроса. |
| dbstat | Предоставляет сведения о назначении и использовании каждой страницы в файле базы данных. Используется при реализации служебной программы sqlite3_analyzer. |
| files_of_checkin | Предоставляет сведения обо всех файлах в одной фиксации в системе контроля версий Fossil. Эта виртуальная таблица не входит в проект SQLite, но включена в список, поскольку служит примером использования виртуальных таблиц и помогает контролировать версии исходного кода SQLite. |
| fsdir | Табличная функция, возвращающая по одной строке для каждого файла в выбранной иерархии файлов на компьютере. Используется CLI для реализации команды .archive. |
| FTS3 | Высокопроизводительный индекс полнотекстового поиска. |
| FTS5 | Ещё более производительный индекс полнотекстового поиска |
| generate_series | Табличная функция, возвращающая последовательность целых чисел; создана по образцу одноимённой табличной функции PostgreSQL. |
| json_each | Табличная функция для разложения строки JSON. |
| json_tree | Табличная функция для разложения строки JSON. |
| OsQuery | Сотни виртуальных таблиц, публикующих различные сведения о компьютере, например таблицу процессов, списки пользователей, активные сетевые подключения и так далее. OsQuery — отдельный проект, созданный Facebook и размещённый на GitHub; он предназначен для анализа безопасности и обнаружения вторжений. OsQuery не входит в проект SQLite, но включён в этот список, поскольку демонстрирует, как язык SQL и механизм виртуальных таблиц SQLite можно использовать для создания элегантных решений важных практических задач. |
| pragma | Встроенные табличные функции, возвращающие результаты инструкций PRAGMA для использования в обычных SQL-запросах. |
| RTree | Реализация идеи пространственного индекса R*Tree Гуттмана. |
| spellfix1 | Виртуальная таблица, реализующая механизм исправления орфографии. |
| sqlite_btreeinfo | Эта экспериментальная табличная функция предоставляет сведения об одном B-дереве в файле базы данных, например о его глубине, предполагаемом количестве страниц и записей и так далее. |
| sqlite_dbpage | Хранилище ключей и значений для необработанного содержимого файла базы данных. Ключ — это номер страницы, а значение — двоичное содержимое страницы. |
| sqlite_memstat | Предоставляет SQL-доступ к интерфейсам sqlite3_status64() и sqlite3_db_status(). |
| sqlite_stmt | Табличная функция, содержащая по одной строке для каждой подготовленной инструкции, связанной с открытым подключением к базе данных. |
| swarmvtab | Экспериментальный модуль, предоставляющий по требованию доступ только для чтения к нескольким таблицам, расположенным в нескольких базах данных, через единую абстракцию виртуальной таблицы. |
| tables_used | Табличная функция, показывающая таблицы и индексы, к которым обращается подготовленная инструкция. |
| tclvar | Представляет глобальные переменные интерпретатора TCL в виде SQL-таблицы. Используется в составе набора тестов SQLite. |
| templatevtab | Шаблонная реализация виртуальной таблицы, полезная в качестве отправной точки для разработчиков, желающих создать собственные виртуальные таблицы |
| unionvtab | Экспериментальный модуль, предоставляющий по требованию доступ только для чтения к нескольким таблицам, расположенным в нескольких базах данных, через единую абстракцию виртуальной таблицы. |
| vfsstat | Табличная функция, которая в сочетании с поставляемой вместе с ней прослойкой VFS предоставляет сведения о количестве системных вызовов, выполненных SQLite. |
| vtablog | Виртуальная таблица, выводящая диагностическую информацию в stdout при вызове её ключевых методов. Предназначена для интерактивного анализа и отладки интерфейсов виртуальных таблиц. |
| wholenumber | Виртуальная таблица, возвращающая все целые числа от 1 до 4294967295. |
| zipfile | Представляет ZIP-архив в виде SQL-таблицы. Поддерживает как чтение, так и запись. Используется CLI для реализации возможности чтения и записи ZIP-архивов. |
Эта страница в последний раз обновлялась 2025-11-13 07:12:58Z
SQLite is in the Public Domain.
https://sqlite.org/vtablist.html