Lihatlah https://github.com/harelba/q , alat Python untuk memperlakukan teks sebagai database. Secara default menggunakan spasi untuk membatasi bidang, tetapi -d ,
parameter akan memungkinkan untuk memproses file CSV.
Atau Anda dapat mengimpor file CSV ke SQLite dan kemudian menjalankan perintah SQL untuk melawannya. Ini dapat dituliskan, dengan sedikit usaha.
Ada juga csvsql (bagian dari csvkit)!
Itu tidak hanya dapat menjalankan sql pada csv yang diberikan (mengubahnya menjadi sqlite di belakang layar), tetapi juga mengonversi dan menyisipkan ke dalam salah satu dari banyak database sql yang didukung!
Di sini Anda memiliki contoh perintah (juga di csvsql_CDs_join.sh):
csvsql --query 'SELECT CDTitle,Location,Artist FROM CDs JOIN Artists ON CDs.ArtistID=Artists.ArtistID JOIN Locations ON CDs.LocID = Locations.LocID' "[email protected]"
menunjukkan cara menggabungkan tiga tabel (tersedia di csv_inputs di csv_dbs_examples).
(memformat dengan csvlook juga merupakan bagian dari csvkit)
Masukan
$ csvlook csv_inputs/CDs.csv
| CDTitle | ArtistID | LocID |
| -------- | -------- | ----- |
| CDTitle1 | A1 | L1 |
| CDTitle2 | A1 | L2 |
| CDTitle3 | A2 | L1 |
| CDTitle4 | A2 | L2 |
$ csvlook csv_inputs/Artists.csv
| ArtistID | Artist |
| -------- | ------- |
| A1 | Artist1 |
| A2 | Artist2 |
$ csvlook csv_inputs/Locations.csv
| LocID | Location |
| ----- | --------- |
| L1 | Location1 |
| L2 | Location2 |
csvsql
$ csvsql --query 'SELECT CDTitle,Location,Artist FROM CDs JOIN Artists ON CDs.ArtistID=Artists.ArtistID JOIN Locations ON CDs.LocID = Locations.LocID' "[email protected]" | csvlook
Menghasilkan:
| CDTitle | Location | Artist |
| -------- | --------- | ------- |
| CDTitle1 | Location1 | Artist1 |
| CDTitle2 | Location2 | Artist1 |
| CDTitle3 | Location1 | Artist2 |
| CDTitle4 | Location2 | Artist2 |