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.csvwykonanie tworzy lub usuwa plik.
Oprócz powyższych odpowiedzi możesz również użyć .oncew 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