SQLite: Как сохранить результат запроса в виде файла CSV?

113

Я новичок в SQLite. Есть ли способ экспортировать результаты запроса в файл CSV?

Теги:
csv

4 ответа

181
Лучший ответ

Из здесь и комментарий d5e5:

Вам нужно переключить вывод в режим csv и переключиться на выход файла.

sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
  • 3
    где этот файл сохраняется?
  • 31
    Он выводится на стандартный вывод, т. Е. Ваш экран, вероятно. Чтобы сохранить вывод в файл: sqlite> .output test.csv Чтобы восстановить результаты печати на экране: sqlite> .output stdout
Показать ещё 4 комментария
112

Чтобы включить имена столбцов в ваш файл 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 
  • 3
    Спасибо за показ, как получить имена столбцов! Этот ответ должен быть выше.
  • 0
    Обратите внимание, что sqlite3 добавляет вывод в конец файла без удаления предыдущего содержимого.
Показать ещё 1 комментарий
22

Хорошие ответы от gdw2 и d5e5. Для упрощения здесь приведены рекомендации, сгруппированные в одну команду:

sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
6

В дополнение к приведенным выше ответам вы также можете использовать .once аналогично .output. Это выводит только следующий запрос в указанный файл, так что вам не нужно следовать с помощью .output stdout.

Итак, в приведенном выше примере

.mode csv
.headers on
.once test.csv
select * from tbl1;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню