Wenn ich gehe mysql shell
und tippe, SELECT * FROM users
bekomme ich -
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| 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
zeigt an -
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
zeigt an -
137|X|b@cc.com|#|ADMIN|166|110
138|Kshitiz|ksharma@aaa.com|asdf|ADMIN|167|111
- Gibt es eine Möglichkeit, die Ausgabe von zu verschönern
sqlite shell
? - Gibt es eine alternative Shell, die besser ist als die Standardverteilung? (Nur CLI-Clients)
Antworten:
Für eine "lesbare" Ausgabe können Sie den
column
Modus verwenden und die Header-Ausgabe aktivieren. Dadurch erhalten Sie eine ähnlichesqlplus
Ausgabe wie in Ihren Beispielen:quelle
echo -e '.mode column\n.headers on\nselect * from sip_foo;\n' | sqlite3 database.sqlite | less -S
eine Zeile pro Zeile ohne Zeilenumbruch erstellen musste ..width
Befehl verwenden müssen, um die Spalten breiter zu machen. Andernfalls wird Ihr Inhalt visuell abgeschnitten..separator ROW "\n"
, damit die Zeilen durch Zeilenumbrüche getrennt werden. Meins war nicht, und die Ausgabe war nicht lesbar.~/.sqliterc
Datei hinzufügen, wenn Sie dies nicht jedes Mal manuell tun möchten.Für diejenigen, die die gleichen Ergebnisse erzielen möchten, mit Ausnahme von SQLite über die Befehlszeile. Ich habe festgestellt, dass Folgendes nicht funktioniert:
Stattdessen müssen Sie die Optionen -column und -header mit dem Befehl sqlite wie folgt verwenden:
Verwenden von:
quelle
echo -e ".headers on \n.mode column \n.width 10 20 500 \n select * from MyTable" | sqlite3 <dbfile>
- Senden Sie die Befehle an die Standardeingabe.".headers on\n.mode column\n
etcAlle Antworten enthalten Einstellungen, die Sie an der SQLite-Konsole oder über die CLI eingeben können. Es wird jedoch nicht erwähnt, dass diese Einstellungen in eine RC-Datei eingefügt werden können, damit Sie sie nicht ständig eingeben müssen. Speichern Sie dies als
~/.sqliterc
:Hinweis: Anstelle der leeren Standardzeichenfolge habe ich auch einen Platzhalter für Nullwerte hinzugefügt.
quelle
Ich benutze immer
Hiermit werden Abfrageergebnisse vertikal ausgegeben, ähnlich wie mit dem
\G
Modifikator von MySQL .quelle
Wie ich noch nicht kommentieren kann ... Zusätzlich zu den großartigen Antworten, die Mat und mlissner bereits gegeben haben, wird der Inhalt einer Spalte auf jeden Fall abgeschnitten, nachdem der SQLite-Shell das richtige Format gegeben wurde (unter Verwendung von
.mode column
und.headers on
wie oben angegeben) ) gibt es auch die Möglichkeit,.explain
damit der volle Inhalt einer Spalte angezeigt wird.Der einzige Nachteil dieses Befehls ist, dass die Spaltenüberschriften kleiner werden und daher nicht richtig gelesen werden und die Ausgabe (in einem visuellen Szenario) ziemlich chaotisch sein kann. Dann können Sie
.explain off
zum vorherigen Format zurückkehren und es mit einem "menschlicheren" Benutzer anzeigen wieder lesbar "formatieren.Dieser Ansatz kann in Verbindung mit Ausgabeformatiererbefehlen und als vorübergehende Lösung zum Anzeigen der vollständigen Daten einer Datenbank / Spalte verwendet werden, da bei der Verwendung von
.width
immer die genaue Anzahl von Zeichen angegeben werden muss, um die vollständige Ausgabe von zu erhalten die Daten einer Spalte.Weitere Informationen zum Ändern von Ausgabeformaten finden Sie in der Standard-CLI-Dokumentation:
https://www.sqlite.org/cli.html
quelle
Meins sah aus wie ein Chaos ohne Zeilenumbrüche. @ Boxuan Kommentar zu
Mein Problem wurde ebenfalls behoben
quelle
Sie können
.mode tabs
für die Bequemlichkeit verwenden.quelle