sql >> Database teknologi >  >> RDS >> SQLite

Formater SQLite-forespørgselsresultater som kolonner med kolonneoverskrifter

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.


  1. Opret en hjemmeside med MySQL

  2. Ændring af SYS-adgangskode i RAC

  3. Nummerseriegenerator-udfordringsløsninger – Del 4

  4. PostgreSQL Opret skema