Я новичок в SQLite. Есть ли способ экспортировать результаты запроса в файл CSV?
Я новичок в SQLite. Есть ли способ экспортировать результаты запроса в файл CSV?
Ответы:
От сюда и комментарий d5e5 в:
Вам придется переключить вывод в режим csv и переключиться на вывод файла.
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
Чтобы включить имена столбцов в ваш CSV-файл, вы можете сделать следующее:
sqlite> .headers on
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
Чтобы проверить внесенные вами изменения, вы можете запустить эту команду:
sqlite> .show
Вывод:
echo: off
explain: off
headers: on
mode: csv
nullvalue: ""
output: stdout
separator: "|"
stats: off
width: 22 18
.output filename.csv
выполнение создает или стирает файл.
В дополнение к вышеупомянутым ответам вы также можете использовать .once
аналогичным образом .output
. Это выводит только следующий запрос к указанному файлу, так что вам не нужно следовать .output stdout
.
Так в приведенном выше примере
.mode csv
.headers on
.once test.csv
select * from tbl1;
В качестве альтернативы вы можете сделать это в одну строку (протестировано в win10)
sqlite3 -help
sqlite3 -header -csv db.sqlite 'select * from tbl1;' > test.csv
Бонус: использование powershell с командлетом и pipe (|).
get-content query.sql | sqlite3 -header -csv db.sqlite > test.csv
где query.sql - файл, содержащий ваш SQL-запрос