Som standard, når du opretter forbindelse til SQLite-kommandolinjeskallen og kører en forespørgsel, returneres resultatet som en rørsepareret liste.
Du har måske bemærket, at resultaterne ikke inkluderer kolonnenavnene, hvilket kan gøre dine resultater forvirrende, hvis du forsøger at læse dem, især hvis forespørgslen returnerede mange kolonner.
Heldigvis er der en nem måde at formatere outputtet på, så det vises som en kolonne med kolonneoverskrifter.
Standardoutput
Som et eksempel, her er, hvordan SQLite-kommandolinjegrænsefladen udsender forespørgselsresultater som standard:
SELECT * FROM Products;
Resultat:
1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
Så der er ikke kolonneoverskrifter, og den vises som en rørsepareret liste.
Tilføj kolonneoverskrifter
For at tilføje kolonnenavnene til hver kolonne, brug .headers on
.
.headers on
SELECT * FROM Products;
Resultat:
ProductId|ProductName|Price 1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
Du kan deaktivere headers ved at bruge .headers off
.
Formatér resultater som en kolonne
Du kan også bruge .mode column
for at formatere resultaterne som en kolonne.
.mode column
SELECT * FROM Products;
Resultat:
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Widget Opener 89.7 3 Widgets - 6 P 374.2 4 Blue Widget 63.0
Hvis du har brug for at returnere det til standardformatet, kan du bruge .mode list
.
Skift kolonnebredde
Du vil måske bemærke, at i det foregående eksempel er et af produktnavnene blevet afkortet. Dette skyldes, at den er bredere end kolonnens bredde.
Som standard er hver kolonne mellem 1 og 10 tegn bred, afhængigt af kolonneoverskriftens navn og bredden af den første kolonne med data. Data, der er for brede til at passe ind i en kolonne, afkortes.
Du kan dog bruge .width
dot-kommando til at indstille kolonnerne til en bestemt bredde.
Sådan kan vi rette det forrige eksempel, så det tredje produkt ikke afkortes.
.width 0 16 0
SELECT * FROM Products;
Resultat:
ProductId ProductName Price ---------- ---------------- ---------- 1 Widget Holder 139.5 2 Widget Opener 89.7 3 Widgets - 6 Pack 374.2 4 Blue Widget 63.0
Du undrer dig måske over, hvorfor jeg satte den første og tredje kolonne til nul?
Brug af værdien 0
gør faktisk kolonnen selvjusterende (til et vist punkt). Angivelse af 0
indstiller kolonnen til det største af tre tal; 10, bredden af overskriften og bredden af den første række data.
I mit tilfælde fungerer dette fint for den første og tredje kolonne, men ikke for den anden kolonne. Derfor satte jeg den kolonne til 16
(hvilket er hvor mange tegn det tredje produkt bruger).
Nulstil til standard
Hvis du kortvarigt skal nulstille outputtet for at bruge SQLite-standarden (dvs. en rørsepareret liste uden kolonneoverskrifter), kan du blot åbne et nyt terminalvindue og køre dine kommandoer derfra. SQLite vil bruge sine standardindstillinger i dette tilfælde.
Eller hvis du vil nulstille det aktuelle terminalvindue til at bruge standardindstillingerne, kan du altid bare bruge følgende:
.headers off
.mode list
.separator "|"
I dette tilfælde tilføjede jeg .separator
dot-kommando, bare hvis du tidligere har ændret separatoren.
Hvis du undrer dig, ja, du kan bruge .separator ", "
for at udskrive resultaterne som en kommasepareret liste.
Bevar kolonneindstillingerne
Som nævnt, hver gang du åbner et nyt terminalvindue for at oprette forbindelse til SQLite, vil forespørgsler vende tilbage til SQLites standardformat (rørsepareret liste).
For at spare dig selv for at skulle genindtaste ovenstående kommandoer hver gang du opretter forbindelse til SQLite, kan du indtaste dem i en .sqliterc
fil.
Åbn for eksempel en tom tekstfil og indtast følgende:
.mode column
.headers on
Gem filen som .sqliterc
til brugerens hjemmemappe, og SQLite vil bruge det, hver gang det opretter forbindelse.
For eksempel, hvis brugerens hjemmemappe er /Users/bart , så ville du placere den i den mappe, så den er placeret på /Users/bart/.sqliterc .
Dette er en skjult fil, så du kan få forskellige prompter, der beder dig om at bekræfte, osv. afhængigt af dit system. Du skal bare acceptere anvisningerne, indtil den er gemt i brugerens hjemmemappe.