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.