sql >> Databáze >  >> RDS >> SQLite

Formátovat výsledky dotazu SQLite jako sloupce se záhlavími sloupců

Ve výchozím nastavení, když se připojíte k shellu příkazového řádku SQLite a spustíte dotaz, výsledek se vrátí jako seznam oddělený svislou čarou.

Možná jste si všimli, že výsledky neobsahují názvy sloupců, což může způsobit matoucí výsledky, pokud se je pokoušíte přečíst, zvláště pokud dotaz vrátil mnoho sloupců.

Naštěstí existuje snadný způsob, jak výstup naformátovat tak, aby se zobrazil jako sloupec se záhlavím sloupců.

Výchozí výstup

Zde je příklad, jak rozhraní příkazového řádku SQLite standardně zobrazuje výsledky dotazu:

SELECT * FROM Products;

Výsledek:

1|Widget Holder|139.5
2|Widget Opener|89.7
3|Widgets - 6 Pack|374.2
4|Blue Widget|63.0

Nejsou zde tedy záhlaví sloupců a zobrazuje se jako seznam oddělený svislou čarou.

Přidat záhlaví sloupců

Chcete-li přidat názvy sloupců do každého sloupce, použijte .headers on .

.headers on
SELECT * FROM Products;

Výsledek:

ProductId|ProductName|Price
1|Widget Holder|139.5
2|Widget Opener|89.7
3|Widgets - 6 Pack|374.2
4|Blue Widget|63.0

Záhlaví můžete zakázat pomocí .headers off .

Formátovat výsledky jako sloupec

Můžete také použít .mode column formátovat výsledky jako sloupec.

.mode column
SELECT * FROM Products;

Výsledek:

ProductId   ProductName    Price     
----------  -------------  ----------
1           Widget Holder  139.5     
2           Widget Opener  89.7      
3           Widgets - 6 P  374.2     
4           Blue Widget    63.0      

Pokud jej potřebujete vrátit do výchozího formátu, můžete použít .mode list .

Změnit šířku sloupce

Můžete si všimnout, že v předchozím příkladu byl jeden z názvů produktů zkrácen. Je to proto, že je širší než šířka sloupce.

Ve výchozím nastavení je každý sloupec široký 1 až 10 znaků v závislosti na názvu záhlaví sloupce a šířce prvního sloupce dat. Data, která jsou příliš široká a nevejdou se do sloupce, jsou zkrácena.

Můžete však použít .width tečka pro nastavení sloupců na určitou šířku.

Zde je návod, jak můžeme opravit předchozí příklad, aby třetí produkt nebyl zkrácen.

.width 0 16 0
SELECT * FROM Products;

Výsledek:

ProductId   ProductName       Price     
----------  ----------------  ----------
1           Widget Holder     139.5     
2           Widget Opener     89.7      
3           Widgets - 6 Pack  374.2     
4           Blue Widget       63.0      

Možná se ptáte, proč jsem nastavil první a třetí sloupec na nulu?

Pomocí hodnoty 0 ve skutečnosti způsobí, že se sloupec sám přizpůsobí (do určitého bodu). Zadání 0 nastaví sloupec na větší ze tří čísel; 10, šířku záhlaví a šířku prvního řádku dat.

V mém případě to funguje dobře pro první a třetí sloupec, ale ne pro druhý sloupec. Proto jsem tento sloupec nastavil na 16 (což je počet znaků, které třetí produkt používá).

Obnovit výchozí

Pokud potřebujete krátce resetovat výstup, aby používal výchozí SQLite (tj. seznam oddělený svislou čarou bez záhlaví sloupců), můžete jednoduše otevřít nové okno terminálu a spouštět příkazy odtud. SQLite v tomto případě použije své výchozí nastavení.

Nebo pokud chcete resetovat aktuální okno terminálu na výchozí nastavení, můžete vždy použít následující:

.headers off
.mode list
.separator "|"

V tomto případě jsem přidal .separator tečka, jen v případě, že jste dříve změnili oddělovač.

V případě, že vás to zajímá, ano, můžete použít .separator ", " pro výstup výsledků jako seznam oddělený čárkami.

Zachovat nastavení sloupců

Jak již bylo zmíněno, pokaždé, když otevřete nové okno terminálu pro připojení k SQLite, dotazy se vrátí do výchozího formátu SQLite (seznam oddělený potrubím).

Chcete-li se vyhnout nutnosti znovu zadávat výše uvedené příkazy pokaždé, když se připojíte k SQLite, můžete je zadat do .sqliterc soubor.

Otevřete například prázdný textový soubor a zadejte následující:

.mode column
.headers on

Uložte soubor jako .sqliterc do domovského adresáře uživatele a SQLite jej použije při každém připojení.

Pokud je například domovský adresář uživatele /Users/bart , pak byste jej umístili do tohoto adresáře tak, aby byl umístěn na adrese /Users/bart/.sqliterc .

Toto je skrytý soubor, takže v závislosti na vašem systému můžete obdržet různé výzvy k potvrzení atd. Stačí souhlasit s výzvami, dokud nebude uložen v domovském adresáři uživatele.


  1. Potřebuji předat názvy sloupců pomocí proměnné v příkazu select v Store Procedure, ale nemohu použít dynamický dotaz

  2. Funkce TANH() v Oracle

  3. Co je JDBC protějšek Postgres' \connect příkazu?

  4. Hierarchická SQL otázka