Small. Fast. Reliable.
Choose any three.
Виртуальная таблица CSV

1. Обзор

Виртуальная таблица CSV читает отформатированные по RFC 4180 разделенные запятыми значения и возвращает содержание, как будто это были строки и колонки таблицы SQL.

Виртуальная таблица CSV полезна для запросов, для которых нужна оптовая загрузка большого объема отделенного запятой содержания. Виртуальная таблица CSV также полезна как исходный файл шаблона для осуществления других виртуальных таблиц.

Виртуальная таблица CSV не встроена в объединение SQLite. Это доступно как отдельный исходный файл, который может быть собран в загружаемое расширение. Типичное использование виртуальной таблицы CSV из оболочки командной строки:

.load ./csv
CREATE VIRTUAL TABLE temp.t1 USING csv(filename='thefile.csv');
SELECT * FROM t1;

Первая строка скрипта выше заставляет оболочку командной строки читать и активировать загружаемое расширение во время выполнения для CSV. Для применения эквивалентный C API это sqlite3_load_extension(). Заметьте, что расширение файла (например: ".dll", ".so" или ".dylib") пропущено. Исключение расширения файла не требуется, но это помогает в создании кросс-платформенного скрипта. SQLite автоматически допишет соответствующее расширение.

Вторая строка составляет виртуальную таблицу, названную "t1", которая читает содержание файла, названного в аргументе. Число и названия колонок определяются автоматически, читая первую строку содержания. Другие опции CSV обеспечивают способность взять содержание CSV от последовательности, а не отдельного файла, и дать программисту больше контроля над числом и названиями колонок. Варианты детализированы ниже. Виртуальная таблица CSV обычно составляется как таблица TEMP так, чтобы она существовала только для текущего соединения с базой данных и не становилась постоянной частью схемы базы данных. Обратите внимание на то, что нет никакой команды "CREATE TEMP VIRTUAL TABLE" в SQLite. Вместо этого добавьте префикс схемы "temp." к названию виртуальной таблицы.

Третья строка примера показывает используемую виртуальную таблицу, чтобы прочитать все содержание файла CSV. Это, возможно, самое простое возможное применение виртуальной таблицы. Виртуальная таблица CSV может использоваться везде, где может использоваться обычная виртуальная таблица. Можно использовать виртуальную таблицу CSV в подзапросах, общих табличных выражениях или добавить WHERE, GROUP BY, HAVING, ORDER BY и LIMIT.

2. Параметры

Пример выше показал единственный параметр виртуальной таблицы CSV: filename='thefile.csv'. Но другие аргументы также возможны.

3. Имена столбцов

Имена столбцов виртуальной таблицы определяются, прежде всего, параметром schema=. Если schema= опущен, но header = true, значения, найденные в первой строке файла CSV, становятся именами столбцов. Если schema= опущен и header = false, то колонки называют "c0", "c1", "c2" и т.д.