Par défaut, lorsque vous vous connectez au shell de ligne de commande SQLite et exécutez une requête, le résultat est renvoyé sous la forme d'une liste séparée par des barres.
Vous avez peut-être remarqué que les résultats n'incluent pas les noms de colonne, ce qui peut rendre vos résultats confus si vous essayez de les lire, surtout si la requête a renvoyé de nombreuses colonnes.
Heureusement, il existe un moyen simple de formater la sortie afin qu'elle s'affiche sous la forme d'une colonne avec des en-têtes de colonne.
La sortie par défaut
À titre d'exemple, voici comment l'interface de ligne de commande SQLite affiche les résultats de la requête par défaut :
SELECT * FROM Products;
Résultat :
1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
Il n'y a donc pas d'en-têtes de colonne et il est affiché sous forme de liste séparée par des barres.
Ajouter des en-têtes de colonne
Pour ajouter les noms de colonne à chaque colonne, utilisez .headers on
.
.headers on
SELECT * FROM Products;
Résultat :
ProductId|ProductName|Price 1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
Vous pouvez désactiver les en-têtes en utilisant .headers off
.
Formater les résultats sous forme de colonne
Vous pouvez également utiliser la colonne .mode column
pour formater les résultats sous forme de colonne.
.mode column
SELECT * FROM Products;
Résultat :
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Widget Opener 89.7 3 Widgets - 6 P 374.2 4 Blue Widget 63.0
Si vous avez besoin de le remettre au format par défaut, vous pouvez utiliser .mode list
.
Modifier la largeur de colonne
Vous remarquerez peut-être que dans l'exemple précédent, l'un des noms de produit a été tronqué. C'est parce qu'il est plus large que la largeur de la colonne.
Par défaut, chaque colonne a une largeur comprise entre 1 et 10 caractères, selon le nom de l'en-tête de colonne et la largeur de la première colonne de données. Les données trop larges pour tenir dans une colonne sont tronquées.
Cependant, vous pouvez utiliser le .width
commande point pour définir les colonnes sur une largeur spécifique.
Voici comment corriger l'exemple précédent afin que le troisième produit ne soit pas tronqué.
.width 0 16 0
SELECT * FROM Products;
Résultat :
ProductId ProductName Price ---------- ---------------- ---------- 1 Widget Holder 139.5 2 Widget Opener 89.7 3 Widgets - 6 Pack 374.2 4 Blue Widget 63.0
Vous vous demandez peut-être pourquoi j'ai mis les première et troisième colonnes à zéro ?
Utiliser une valeur de 0
rend en fait la colonne auto-ajustable (jusqu'à un certain point). Spécifier 0
définit la colonne sur le plus grand de trois nombres ; 10, la largeur de l'en-tête et la largeur de la première ligne de données.
Dans mon cas, cela fonctionne bien pour les première et troisième colonnes, mais pas pour la deuxième colonne. Par conséquent, j'ai défini cette colonne sur 16
(qui correspond au nombre de caractères utilisés par le troisième produit).
Réinitialiser aux valeurs par défaut
Si vous avez besoin de réinitialiser brièvement la sortie pour utiliser la valeur par défaut de SQLite (c'est-à-dire une liste séparée par des tubes sans en-tête de colonne), vous pouvez simplement ouvrir une nouvelle fenêtre de terminal et exécuter vos commandes à partir de là. SQLite utilisera ses paramètres par défaut dans ce cas.
Ou si vous souhaitez réinitialiser la fenêtre de terminal actuelle pour utiliser les paramètres par défaut, vous pouvez toujours utiliser ce qui suit :
.headers off
.mode list
.separator "|"
Dans ce cas, j'ai ajouté le .separator
commande point, juste au cas où vous auriez précédemment changé le séparateur.
Au cas où vous vous poseriez la question, oui, vous pouvez utiliser .separator ", "
pour afficher les résultats sous forme de liste séparée par des virgules.
Conserver les paramètres de colonne
Comme mentionné, chaque fois que vous ouvrez une nouvelle fenêtre de terminal pour vous connecter à SQLite, les requêtes reviendront au format par défaut de SQLite (liste séparée par des tubes).
Pour vous éviter d'avoir à ressaisir les commandes ci-dessus chaque fois que vous vous connectez à SQLite, vous pouvez les entrer dans un .sqliterc
dossier.
Par exemple, ouvrez un fichier texte vide et saisissez ce qui suit :
.mode column
.headers on
Enregistrez le fichier sous .sqliterc
au répertoire personnel de l'utilisateur, et SQLite l'utilisera à chaque fois qu'il se connectera.
Par exemple, si le répertoire personnel de l'utilisateur est /Users/bart , alors vous le placeriez dans ce répertoire, de sorte qu'il se trouve dans /Users/bart/.sqliterc .
Il s'agit d'un fichier caché, vous pouvez donc recevoir diverses invites vous demandant de confirmer, etc., en fonction de votre système. Acceptez simplement les invites jusqu'à ce qu'elles soient enregistrées dans le répertoire personnel de l'utilisateur.