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 | b@cc.com | # | ADMIN | 166 | 110 |
| 138 | Kshitiz | ksharma@aaa.com | asdf | ADMIN | 167 | 111 |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
Oracle sqlplus
montre -
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
montre -
137|X|b@cc.com|#|ADMIN|166|110
138|Kshitiz|ksharma@aaa.com|asdf|ADMIN|167|111
- Existe-t-il un moyen d’embellir le résultat
sqlite shell
? - Existe-t-il un shell alternatif meilleur que la distribution par défaut? (Clients CLI uniquement)
Réponses:
Pour une sortie "lisible par l'homme", vous pouvez utiliser le
column
mode et activer la sortie d'en-tête. Cela vous donnera quelque chose de similaire à lasqlplus
sortie dans vos exemples:la source
echo -e '.mode column\n.headers on\nselect * from sip_foo;\n' | sqlite3 database.sqlite | less -S
pour obtenir une ligne par ligne sans retour à la ligne..width
commande pour élargir vos colonnes. Sinon, votre contenu sera tronqué visuellement..separator ROW "\n"
pour que les lignes soient séparées par des sauts de ligne. Le mien n'était pas, et la sortie était illisible.~/.sqliterc
fichier si vous ne voulez pas le faire manuellement à chaque fois.Toutes les réponses fournissent des paramètres que vous pouvez taper sur la console SQLite ou via la CLI, mais personne ne mentionne que ces paramètres peuvent être placés dans un fichier RC pour éviter d'avoir à les saisir tout le temps. Enregistrez ceci sous
~/.sqliterc
:Remarque J'ai également ajouté un espace réservé pour les valeurs null au lieu de la chaîne vide par défaut.
la source
Pour ceux qui sont intéressés à 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:
A la place, vous devez utiliser les options -column and -header avec la commande sqlite comme suit:
En utilisant:
la source
echo -e ".headers on \n.mode column \n.width 10 20 500 \n select * from MyTable" | sqlite3 <dbfile>
- c.-à-d., Envoyez les commandes au stdin.".headers on\n.mode column\n
etc..mode csv
ou-csv
de la CLIJ'utilise toujours
qui affiche les résultats de la requête verticalement, comme le
\G
modificateur de MySQL .la source
Comme je ne peux pas encore commenter ... En plus des bonnes réponses déjà fournies par Mat et mlissner, si dans tous les cas le contenu d'une colonne est tronqué, après avoir donné le bon format au shell sqlite (avec
.mode column
et.headers on
comme indiqué ci-dessus ), il est également possible d’utiliser.explain
le contenu complet d’une colonne.Le seul inconvénient de cette commande est que les en-têtes de colonnes sont rétrécis. Par conséquent, si vous ne les lisez pas correctement et que le résultat risque d’être relativement désordonné (dans un scénario visuel), vous pouvez alors utiliser
.explain off
le retour au format précédent et l’afficher avec un affichage plus "humain". lisible "format une fois de plus.Cette approche peut être utilisée conjointement avec les commandes de formatage en sortie, et comme solution temporaire pour afficher les données complètes d'une base de données / colonne, car
.width
vous devez toujours indiquer le nombre exact de caractères pour obtenir le résultat complet. les données d'une colonne.Pour plus d'informations sur la modification des formats de sortie, reportez-vous à la documentation CLI par défaut:
https://www.sqlite.org/cli.html
la source
Le mien ressemblait à un foutu pas de lignes. @Boxuan commente
Correction de mon problème avec elle aussi
la source
Vous pouvez utiliser
.mode tabs
pour plus de commodité.la source