Jestem nowy w SQLite. Czy istnieje sposób na wyeksportowanie wyników zapytania do pliku CSV?
Jestem nowy w SQLite. Czy istnieje sposób na wyeksportowanie wyników zapytania do pliku CSV?
Odpowiedzi:
Od tutaj i komentarz d5e5 za:
Będziesz musiał przełączyć wyjście na tryb csv i przełączyć się na plik wyjściowy.
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
Aby dołączyć nazwy kolumn do pliku csv, możesz wykonać następujące czynności:
sqlite> .headers on
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
Aby zweryfikować zmiany, które wprowadziłeś, możesz uruchomić to polecenie:
sqlite> .show
Wynik:
echo: off
explain: off
headers: on
mode: csv
nullvalue: ""
output: stdout
separator: "|"
stats: off
width: 22 18
.output filename.csv
wykonanie tworzy lub usuwa plik.
Oprócz powyższych odpowiedzi możesz również użyć .once
w podobny sposób .output
. Spowoduje to wyświetlenie tylko następnego zapytania do określonego pliku, dzięki czemu nie musisz wykonywać .output stdout
.
Więc w powyższym przykładzie
.mode csv
.headers on
.once test.csv
select * from tbl1;
Alternatywnie możesz to zrobić w jednej linii (testowane w win10)
sqlite3 -help
sqlite3 -header -csv db.sqlite 'select * from tbl1;' > test.csv
Bonus: używanie PowerShell z poleceniami cmdlet i potokiem (|).
get-content query.sql | sqlite3 -header -csv db.sqlite > test.csv
gdzie zapytanie.sql jest plikiem zawierającym zapytanie SQL