ฉันใหม่กับ 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 ของคุณ