ฉันใหม่กับ SQLite มีวิธีที่ฉันสามารถส่งออกผลลัพธ์ของแบบสอบถามไปยังไฟล์ CSV หรือไม่
ฉันใหม่กับ SQLite มีวิธีที่ฉันสามารถส่งออกผลลัพธ์ของแบบสอบถามไปยังไฟล์ CSV หรือไม่
คำตอบ:
จากที่นี่และความคิดเห็นของ d5e5:
คุณจะต้องสลับเอาท์พุทเป็นโหมด csv และเปลี่ยนเป็นเอาท์พุทไฟล์
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
หากต้องการรวมชื่อคอลัมน์ไว้ในไฟล์ 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
.output filename.csv
การประมวลผลแต่ละครั้งจะสร้างหรือลบไฟล์
คำตอบที่ดีจาก gdw2 และ d5e5 เพื่อให้ง่ายขึ้นเล็กน้อยนี่คือคำแนะนำที่ดึงมารวมกันในชุดคำสั่งเดียว:
sqlite> .mode csv
sqlite> .output test.csv
sqlite> select * from tbl1;
sqlite> .output stdout
นอกจากนี้ในการตอบข้างต้นคุณยังสามารถใช้ในทางที่คล้ายกับ.once
.output
ผลลัพธ์นี้เฉพาะแบบสอบถามถัดไปไปยังไฟล์ที่ระบุดังนั้นคุณไม่จำเป็นต้องติดตามด้วย.output stdout
ยังแฟ้มที่ระบุเพื่อให้คุณไม่ต้องทำตามด้วย
ดังนั้นในตัวอย่างข้างต้น
.mode csv
.headers on
.once test.csv
select * from tbl1;
หรือคุณสามารถทำได้ในหนึ่งบรรทัด (ทดสอบใน win10)
sqlite3 -help
sqlite3 -header -csv db.sqlite 'select * from tbl1;' > test.csv
โบนัส: การใช้ powershell ด้วย cmdlet และ pipe (|)
get-content query.sql | sqlite3 -header -csv db.sqlite > test.csv
โดย query.sql เป็นไฟล์ที่มีการสืบค้น SQL ของคุณ