![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Виртуальная таблица CSV читает отформатированные по
RFC 4180
разделенные запятыми значения и возвращает содержание, как будто это были
строки и колонки таблицы SQL. Виртуальная таблица CSV полезна для запросов, для которых нужна оптовая
загрузка большого объема отделенного запятой содержания.
Виртуальная таблица CSV также полезна как исходный файл шаблона для
осуществления других виртуальных таблиц. Виртуальная таблица CSV не встроена в объединение SQLite. Это доступно как
отдельный исходный файл, который может быть собран в
загружаемое расширение.
Типичное использование виртуальной таблицы CSV из
оболочки командной строки: Первая строка скрипта выше заставляет оболочку
командной строки читать и активировать загружаемое расширение во время
выполнения для 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.
Пример выше показал единственный параметр виртуальной таблицы CSV:
filename='thefile.csv'. Но другие аргументы также возможны. filename=FILENAME filename= определяет внешний файл, из которого прочитано
содержание CSV. У каждой таблицы CSV должен быть параметр
filename= или data=, но не оба вместе.
data=TEXT Параметр data= определяет, что TEXT это
буквальное содержание файла CSV. schema=SCHEMA schema= указывает CREATE TABLE,
который CSV передает sqlite3_declare_vtab()
, чтобы определить названия колонок в виртуальной таблице. columns=N columns=N определяет количество колонок в файле CSV.
Если входные данные содержат больше колонок, чем это, то избыточные колонки
проигнорированы. Если входные данные содержат меньше колонок, то
дополнительные столбцы заполнены NULL. Если параметр columns=N
опущен, первая строка файла CSV прочитана, чтобы
определить количество колонок. header=BOOLEAN Если header = true, тогда первую строку файла CSV будут
рассматривать как заголовок, а не как данные. Вторая строка CSV
становится первой строкой содержания. Если schema= опущен, то первая
строка CSV определяет названия колонок. Имена столбцов виртуальной таблицы определяются, прежде всего, параметром
schema=. Если schema= опущен, но header = true,
значения, найденные в первой строке файла CSV, становятся именами столбцов.
Если schema= опущен и header = false,
то колонки называют "c0", "c1", "c2" и т.д.
Choose any three.
1. Обзор
.load ./csv
CREATE VIRTUAL TABLE temp.t1 USING csv(filename='thefile.csv');
SELECT * FROM t1;
2. Параметры
он же header3. Имена столбцов