Si je vais à mysql Shell
et tapez SELECT * FROM users
Je reçois -
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| USERID | NAME | EMAILID | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| 137 | X | [email protected] | # | ADMIN | 166 | 110 |
| 138 | Kshitiz | [email protected] | asdf | ADMIN | 167 | 111 |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
Oracle sqlplus
montre -
USERID NAME EMAILID PASSWORD USER_TYPE CONTACT_ID_FKUSERS COMPANY_ID_FKUSERS
---------- ----- ---------- ---------- ---------- ------------------ ------------------
137 X [email protected] # ADMIN 166 110
137 X [email protected] # ADMIN 166 110
Sqlite Shell
montre -
137|X|[email protected]|#|ADMIN|166|110
138|Kshitiz|[email protected]|asdf|ADMIN|167|111
sqlite Shell
?Pour une sortie "lisible par l'homme", vous pouvez utiliser le mode column
et activer la sortie d'en-tête. Cela vous donnera quelque chose de similaire à la sortie sqlplus
dans vos exemples:
sqlite> select * from foo;
234|kshitiz|dba.se
sqlite> .mode column
sqlite> select * from foo;
234 kshitiz dba.se
sqlite> .headers on
sqlite> select * from foo;
bar baz baf
---------- ---------- ----------
234 kshitiz dba.se
Toutes les réponses fournissent des paramètres que vous pouvez taper sur la console SQLite ou via CLI, mais personne ne mentionne que ces paramètres peuvent être placés dans un fichier RC pour éviter d'avoir à les taper tout le temps. Enregistrez-le sous ~/.sqliterc
:
.mode column
.headers on
.separator ROW "\n"
.nullvalue NULL
Remarque J'ai également ajouté un espace réservé pour les valeurs nulles, au lieu de la chaîne vide par défaut.
Pour ceux qui souhaitent obtenir les mêmes résultats, à l'exception de l'exécution de sqlite à partir de la ligne de commande. J'ai trouvé que ce qui suit ne fonctionne pas:
$ sqlite3 <dbfile> ".headers on;.mode column;select * from MyTable"
Error: mode should be one of: ascii column csv html insert line list tabs tcl
À la place, vous devez utiliser les options -column et -header avec la commande sqlite comme suit:
$ sqlite3 -column -header <dbfile> "select * from MyTable"
En utilisant:
$ sqlite3 --version 3.8.11.1 2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f
J'utilise toujours
.mode line
qui affiche les résultats de la requête verticalement, semblable au modificateur \G
de MySQL.
Le mien ressemblait à un gâchis sans rupture de ligne. Commentaire de @Boxuan sur
Vous pouvez également ajouter la ligne .separator "\ n", afin que les lignes soient séparées par des sauts de ligne. La mienne ne l'était pas et la sortie était illisible. - Boxuan 11 mai à 15h08
Vous pouvez utiliser .mode tabs
pour plus de commodité.
sqlite> select * from user;
name age
Bob 18
ALi 19
Comme je ne peux pas encore commenter ... En plus des bonnes réponses déjà fournies par Mat et mlissner, si en tout cas le contenu d'une colonne est tronqué, après avoir donné le bon format au sqlite Shell (en utilisant .mode column
et .headers on
comme indiqué ci-dessus), il est également possible d'utiliser .explain
pour afficher l'intégralité du contenu d'une colonne.
Le seul inconvénient de cette commande est que les en-têtes des colonnes rétrécissent, donc ne les lisent pas correctement et la sortie peut être assez désordonnée (dans un scénario visuel), alors vous pouvez utiliser .explain off
pour revenir au format précédent et l'afficher à nouveau avec un format plus "lisible par l'homme".
Cette approche peut être utilisée conjointement avec les commandes de formateurs de sortie et comme solution temporaire pour afficher les données complètes d'une base de données/colonne, comme avec l'utilisation de .width
vous devez toujours donner le nombre précis de caractères afin d'obtenir la sortie complète des données d'une colonne.
Pour plus d'informations sur la modification des formats de sortie, une référence rapide à la documentation CLI par défaut: