Jika saya pergi ke mysql shell
dan ketik SELECT * FROM users
saya dapatkan -
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| USERID | NAME | EMAILID | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| 137 | X | b@cc.com | # | ADMIN | 166 | 110 |
| 138 | Kshitiz | ksharma@aaa.com | asdf | ADMIN | 167 | 111 |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
Oracle sqlplus
menunjukkan -
USERID NAME EMAILID PASSWORD USER_TYPE CONTACT_ID_FKUSERS COMPANY_ID_FKUSERS
---------- ----- ---------- ---------- ---------- ------------------ ------------------
137 X b@cc.com # ADMIN 166 110
137 X b@cc.com # ADMIN 166 110
Sqlite shell
menunjukkan -
137|X|b@cc.com|#|ADMIN|166|110
138|Kshitiz|ksharma@aaa.com|asdf|ADMIN|167|111
- Apakah ada cara untuk mempercantik hasil dari
sqlite shell
? - Apakah ada shell alternatif yang lebih baik daripada distribusi default? (Khusus klien CLI)
Jawaban:
Untuk output "dapat dibaca manusia", Anda dapat menggunakan
column
mode, dan aktifkan output header. Itu akan memberi Anda sesuatu yang mirip dengansqlplus
output dalam contoh Anda:sumber
echo -e '.mode column\n.headers on\nselect * from sip_foo;\n' | sqlite3 database.sqlite | less -S
untuk mendapatkan satu baris per baris tanpa bungkus kata..width
perintah untuk membuat kolom Anda lebih luas. Jika tidak, konten Anda akan terpotong secara visual..separator ROW "\n"
, sehingga baris dipisahkan oleh jeda baris. Milik saya tidak, dan hasilnya tidak dapat dibaca.~/.sqliterc
file Anda jika Anda tidak ingin melakukannya secara manual setiap saat.Bagi mereka yang tertarik untuk mendapatkan hasil yang sama, kecuali menjalankan sqlite dari baris perintah. Saya menemukan bahwa yang berikut ini tidak berfungsi:
Sebagai gantinya, Anda harus menggunakan opsi -column dan -header dengan perintah sqlite sebagai berikut:
Menggunakan:
sumber
echo -e ".headers on \n.mode column \n.width 10 20 500 \n select * from MyTable" | sqlite3 <dbfile>
- yaitu, mengirim perintah ke stdin.".headers on\n.mode column\n
dll.mode csv
atau-csv
dari CLISemua jawaban memberikan pengaturan yang dapat Anda ketik di konsol SQLite atau melalui CLI, tetapi tidak ada yang menyebutkan bahwa pengaturan ini dapat dimasukkan ke dalam file RC untuk menghindari keharusan mengetiknya sepanjang waktu. Simpan ini sebagai
~/.sqliterc
:Catatan Saya juga menambahkan pengganti untuk nilai-nilai nol, alih-alih string kosong default.
sumber
Saya selalu menggunakan
yang mencetak hasil kueri secara vertikal, mirip dengan
\G
pengubah MySQL .sumber
Karena saya belum bisa berkomentar ... Selain jawaban-jawaban hebat yang sudah disediakan oleh Mat dan mlissner, jika dalam hal apa pun isi kolom terpotong, setelah memberikan format yang tepat ke shell sqlite (menggunakan
.mode column
dan.headers on
seperti yang dinyatakan di atas ), ada juga kemungkinan untuk digunakan.explain
sehingga konten lengkap kolom ditampilkan.Satu-satunya downside ke perintah ini adalah bahwa header kolom menyusut, sehingga tidak membacanya dengan benar dan hasilnya bisa sangat berantakan (dalam skenario visual), maka Anda dapat menggunakan
.explain off
untuk kembali ke format sebelumnya dan melihatnya dengan lebih "manusia" format yang dapat dibaca "sekali lagi.Pendekatan ini dapat digunakan bersama dengan perintah formatters output, dan sebagai solusi sementara untuk melihat data lengkap dari database / kolom, karena dengan penggunaan
.width
Anda selalu harus memberikan jumlah karakter yang tepat untuk mendapatkan output penuh dari data kolom.Untuk info lebih lanjut tentang mengubah format output, referensi cepat ke dokumentasi CLI default:
https://www.sqlite.org/cli.html
sumber
Milik saya tampak seperti berantakan tanpa putus garis. @ Boxuan mengomentari
Memperbaiki masalah saya dengannya juga
sumber
Anda dapat menggunakannya
.mode tabs
untuk kenyamanan.sumber