sql >> Databasteknik >  >> RDS >> SQLite

Formatera SQLite-frågeresultat som kolumner med kolumnrubriker

Som standard, när du ansluter till SQLites kommandoradsskal och kör en fråga, returneras resultatet som en rörseparerad lista.

Du kanske har märkt att resultaten inte inkluderar kolumnnamnen, vilket kan göra dina resultat förvirrande om du försöker läsa dem, särskilt om frågan returnerade många kolumner.

Lyckligtvis finns det ett enkelt sätt att formatera utdata så att det visas som en kolumn med kolumnrubriker.

Standardutgången

Som ett exempel, här är hur SQLites kommandoradsgränssnitt matar ut frågeresultat 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å det finns inga kolumnrubriker och den visas som en rörseparerad lista.

Lägg till kolumnrubriker

För att lägga till kolumnnamnen till varje kolumn använd .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 inaktivera rubriker genom att använda .headers off .

Formatera resultat som en kolumn

Du kan också använda .mode column för att formatera resultaten som en kolumn.

.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      

Om du behöver återställa det till standardformatet kan du använda .mode list .

Ändra kolumnbredd

Du kanske märker att i det föregående exemplet har ett av produktnamnen trunkerats. Det beror på att den är bredare än kolumnens bredd.

Som standard är varje kolumn mellan 1 och 10 tecken bred, beroende på kolumnrubrikens namn och bredden på den första kolumnen med data. Data som är för bred för att få plats i en kolumn trunkeras.

Du kan dock använda .width dot-kommando för att ställa in kolumnerna till en specifik bredd.

Så här kan vi fixa det föregående exemplet så att den tredje produkten inte trunkeras.

.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 kanske undrar varför jag ställer in den första och tredje kolumnen till noll?

Använder värdet 0 gör faktiskt kolumnen självjusterande (till en viss punkt). Anger 0 ställer in kolumnen till det största av tre siffror; 10, bredden på rubriken och bredden på den första dataraden.

I mitt fall fungerar detta bra för den första och tredje kolumnen, men inte för den andra kolumnen. Därför satte jag den kolumnen till 16 (vilket är hur många tecken den tredje produkten använder).

Återställ till standard

Om du en kort stund behöver återställa utdata för att använda SQLite-standarden (dvs. en rörseparerad lista utan kolumnrubriker), kan du helt enkelt öppna ett nytt terminalfönster och köra dina kommandon därifrån. SQLite kommer att använda sina standardinställningar i det här fallet.

Eller om du vill återställa det aktuella terminalfönstret för att använda standardinställningarna, kan du alltid bara använda följande:

.headers off
.mode list
.separator "|"

I det här fallet lade jag till .separator dot-kommando, ifall du tidigare hade ändrat avgränsaren.

Om du undrar, ja, du kan använda .separator ", " för att mata ut resultaten som en kommaseparerad lista.

Behåll kolumninställningarna

Som nämnts, varje gång du öppnar ett nytt terminalfönster för att ansluta till SQLite, kommer frågor att återgå till SQLites standardformat (rörseparerad lista).

För att rädda dig själv från att behöva skriva in ovanstående kommandon igen varje gång du ansluter till SQLite, kan du skriva in dem i en .sqliterc fil.

Öppna till exempel en tom textfil och skriv in följande:

.mode column
.headers on

Spara filen som .sqliterc till användarens hemkatalog, och SQLite kommer att använda den varje gång den ansluter.

Till exempel om användarens hemkatalog är /Users/bart , då skulle du placera den i den katalogen, så att den finns på /Users/bart/.sqliterc .

Detta är en dold fil, så du kan få olika uppmaningar som ber dig bekräfta, etc. beroende på ditt system. Håll bara med om uppmaningarna tills det sparas i användarens hemkatalog.


  1. SQL Server 2016 Temporal Table Query Plan Beteende

  2. SQL Server-fråga för att hitta alla behörigheter/åtkomster för alla användare i en databas

  3. Visa data från databasen med basadapter och listview

  4. Hur får jag en rå, kompilerad SQL-fråga från ett SQLAlchemy-uttryck?