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.