Виртуальная таблица это объект, который представляет интерфейс таблицы SQL, но который не сохранен в файле базы данных, по крайней мере не непосредственно. Виртуальный механизм таблицы это особенность SQLite, который позволяет SQLite получать доступ и управлять ресурсами кроме битов в файле базы данных, используя сильный язык SQL-запроса.
Таблица ниже приводит несколько виртуальных внедрений, доступных для SQLite. Разработчики могут развернуть эти виртуальные таблицы в своих собственных приложениях или использовать внедрения, показанные ниже как шаблоны для написания собственных виртуальных таблиц.
Список ниже не исчерпывающий. Другое виртуальное внедрение существует в исходном дереве SQLite и в другом месте. Список ниже пытается охватить наиболее интересные внедрения виртуальных таблиц.
Имя | Описание |
---|---|
approximate_match | Демонстрация того, как использовать виртуальную таблицу, чтобы осуществить приблизительное соответствие последовательности. |
bytecode | Табличная функция, которая показывает bytecode подготовленного запроса. |
carray | Табличная функция, которая позволяет множество языка C целых чисел, double или string, чтобы использовать в качестве таблицы в запросе. |
closure | Вычислите переходное закрытие набора. |
completion | Предлагает завершения для частично введенных слов во время интерактивного ввода SQL. Используется CLI, чтобы помочь осуществить tab-завершение. |
csv | Виртуальная таблица, которая представляет comma-separated-value или файл CSV (RFC 4180) как таблицу read-only, чтобы это могло использоваться в качестве части большего запроса. |
dbstat | Предоставляет информацию о цели и использовании каждой страницы в файле базы данных. Используется в утилите sqlite3_analyzer. |
files_of_checkin | Предоставляет информацию обо всех файлах в единственной регистрации в Fossil version control system. Эта виртуальная таблица не часть проекта SQLite, но включена, потому что это обеспечивает пример того, как использовать виртуальные таблицы и потому что это используется, чтобы помочь управлению версиями SQLite. |
fsdir | A Табличная функция возвращает одну строку для каждого файла в отобранной файловой иерархии. Используется CLI для реализации команды .archive. |
FTS3 | Высокоэффективный полнотекстовый индекс поиска. |
FTS5 | Высокоэффективный полнотекстовый индекс поиска. |
generate_series | Табличная функция возвращает последовательность целых чисел, смоделированных после табличной функции с тем же самым именем в PostgreSQL. |
json_each | A Табличная функция для разложения последовательности JSON. |
json_tree | A Табличная функция для разложения последовательности JSON. |
OsQuery | Сотни виртуальных таблиц, которые издают различные аспекты компьютера, такие как таблица процессов, списки пользователей, активные сетевые соединения и т. д. OsQuery это отдельный проект, начатый Facebook, размещен на GitHub и предназначен для анализа безопасности и обнаружения проникновения, OsQuery не часть проекта SQLite, но включен в этот список, потому что это демонстрирует, как язык SQL и виртуальный механизм таблиц SQLite могут быть усилены, чтобы предоставить изящные решения важных реальных проблем. |
pragma | Встроенные табличные функции, которые возвращают результаты PRAGMA для использования в рамках обычных SQL-запросов. |
RTree | Внедрение пространственного индекса Guttmann R*Tree. |
spellfix1 | Виртуальная таблица, которая осуществляет движок исправления орфографических ошибок. |
sqlite_btreeinfo | Эта экспериментальная табличная функция предоставляет информацию об единственном B-tree в файле базы данных, такую как глубина, оцененное число страниц, количество записей и т. д. |
sqlite_dbpage | Хранение ключа/значения для сырого содержания файла базы данных. Ключ это номер страницы, значение это двоичное содержание страницы. |
sqlite_memstat | Обеспечивает доступ SQL к sqlite3_status64() и sqlite3_db_status(). |
sqlite_stmt | Табличная функция, содержащая одну строку для каждого подготовленного запроса, связанного с открытым соединением с базой данных . |
swarmvtab | Экспериментальный модуль, обеспечивающий по требованию доступ только для чтения к многократному распространению таблиц через многократные базы данных через единственную виртуальную абстракцию таблицы. |
tables_used | Табличная функция, которая показывает таблицы и индексы, к которым получает доступ подготовленный запрос. |
tclvar | Представляет глобальные переменные TCL как таблицу SQL. Используется в качестве части набора тестов SQLite. |
templatevtab | Виртуальное внедрение шаблона таблицы, полезное как отправная точка для разработчиков, которые хотят написать их собственные виртуальные таблицы. |
unionvtab | Экспериментальный модуль, обеспечивающий по требованию доступ только для чтения к многократному распространению таблиц через многократные базы данных через единственную виртуальную абстракцию таблицы. |
vfsstat | Табличная функция, которая, в сочетании с VFS shim предоставляет информацию о количестве системных вызовов, выполненных SQLite. |
vtablog | Виртуальная таблица, которая печатает диагностическую информацию на stdout, когда ключевые методы вызваны. Предназначено для интерактивного анализа и отладки виртуальных интерфейсов. |
wholenumber | Виртуальная таблица возвращает все целые числа между 1 и 4294967295. |
zipfile | Представляет ZIP-архив как таблицу SQL. Работает для чтения и записи. Применяется в CLI, чтобы осуществить способность читать и писать архивы ZIP. |