SQLite: Sorgunun sonucunu CSV dosyası olarak nasıl kaydederim?


Yanıtlar:


249

Gönderen burada ve d5e5 yorumu:

Çıkışı csv moduna geçirmeniz ve dosya çıkışına geçmeniz gerekir.

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

4
bu dosya nereye kaydediliyor?
RayLoveless

34
Standart çıktıya yazdırılır, yani muhtemelen ekranınız. Çıktıyı bir dosyaya kaydetmek için: sqlite> .output test.csv Yazdırma sonuçlarını ekrana geri yüklemek için: sqlite> .output stdout
d5e5

1
Düğüm kitaplığı w / bunu nasıl bulabilirim işaretçiler?
kuanb

2
Belirli bir yol kullanmak istiyorsanız sqlite> .output C: /Users/jdoe/Documents/output.csv komutunu kullanın.
Dustin

Selam! Bunu ben yaptım. Her ne kadar benim sorgu mükemmel çalıştı, ancak dosya çıktı boş. Birisi nedenini biliyor mu?
Valeria Lobos Ossandón

145

Csv dosyanıza sütun adları eklemek için aşağıdakileri yapabilirsiniz:

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

Yaptığınız değişiklikleri doğrulamak için bu komutu çalıştırabilirsiniz:

sqlite> .show

Çıktı:

echo: off   
explain: off   
headers: on   
mode: csv   
nullvalue: ""  
output: stdout  
separator: "|"   
stats: off   
width: 22 18 

3
Sütun adlarını nasıl alacağınızı gösterdiğiniz için teşekkür ederiz! Bu cevabın daha yüksek olması gerekiyor.
Stan James

Sqlite3'ün önceki içeriği silmeden çıktıyı dosyanın sonuna eklediğini unutmayın.
kupgov

1
Ancak her .output filename.csvyürütme dosyayı oluşturur veya siler.
kupgov

25

Gdw2 ve d5e5'ten iyi yanıtlar. Bunu biraz daha basit hale getirmek için, tek bir komut dizisinde bir araya getirilen öneriler şunlardır:

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

24

Yukarıdaki cevaplara ek olarak .oncebenzer şekilde kullanabilirsiniz .output. Bu, yalnızca bir sonraki sorguyu belirtilen dosyaya verir;.output stdout .

Yani yukarıdaki örnekte

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

1

Alternatif olarak bunu bir satırda yapabilirsiniz (win10'da test edilmiştir)

sqlite3 -help
sqlite3 -header -csv db.sqlite 'select * from tbl1;' > test.csv

Bonus: cmdlet ve boru ile powershell kullanma (|).

get-content query.sql | sqlite3 -header -csv db.sqlite > test.csv

Burada query.sql, SQL sorgunuzu içeren bir dosyadır

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.