sql >> Database >  >> RDS >> SQLite

SQLite-queryresultaten opmaken als kolommen met kolomkoppen

Wanneer u verbinding maakt met de SQLite-opdrachtregelshell en een query uitvoert, wordt het resultaat standaard geretourneerd als een door buizen gescheiden lijst.

Het is u misschien opgevallen dat de resultaten geen kolomnamen bevatten, wat uw resultaten verwarrend kan maken als u ze probeert te lezen, vooral als de zoekopdracht veel kolommen heeft opgeleverd.

Gelukkig is er een gemakkelijke manier om de uitvoer op te maken, zodat deze wordt weergegeven als een kolom met kolomkoppen.

De standaarduitvoer

Als voorbeeld ziet u hoe de SQLite-opdrachtregelinterface standaard queryresultaten uitvoert:

SELECT * FROM Products;

Resultaat:

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

Er zijn dus geen kolomkoppen en het wordt weergegeven als een door buizen gescheiden lijst.

Kolomkoppen toevoegen

Om de kolomnamen aan elke kolom toe te voegen, gebruikt u .headers on .

.headers on
SELECT * FROM Products;

Resultaat:

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

U kunt headers uitschakelen door .headers off te gebruiken .

Resultaten opmaken als een kolom

U kunt ook de .mode column . gebruiken om de resultaten op te maken als een kolom.

.mode column
SELECT * FROM Products;

Resultaat:

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

Als u het naar de standaardindeling moet terugzetten, kunt u .mode list . gebruiken .

Kolombreedte wijzigen

Het is u misschien opgevallen dat in het vorige voorbeeld een van de productnamen is afgekapt. Dit komt omdat het breder is dan de breedte van de kolom.

Standaard is elke kolom tussen 1 en 10 tekens breed, afhankelijk van de naam van de kolomkop en de breedte van de eerste kolom met gegevens. Gegevens die te breed zijn om in een kolom te passen, worden afgekapt.

U kunt echter de .width . gebruiken dot-opdracht om de kolommen op een specifieke breedte in te stellen.

Hier is hoe we het vorige voorbeeld kunnen corrigeren, zodat het derde product niet wordt afgekapt.

.width 0 16 0
SELECT * FROM Products;

Resultaat:

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

Je vraagt ​​je misschien af ​​waarom ik de eerste en derde kolom op nul heb gezet?

Met een waarde van 0 maakt de kolom eigenlijk zelfaanpassend (tot op een bepaald punt). 0 opgeven stelt de kolom in op de grootste van drie getallen; 10, de breedte van de koptekst en de breedte van de eerste rij met gegevens.

In mijn geval werkt dit prima voor de eerste en derde kolom, maar niet voor de tweede kolom. Daarom heb ik die kolom ingesteld op 16 (dat is hoeveel tekens het derde product gebruikt).

Terugzetten naar de standaard

Als u de uitvoer kort moet resetten om de SQLite-standaard te gebruiken (d.w.z. een door buizen gescheiden lijst zonder kolomkoppen), kunt u eenvoudig een nieuw terminalvenster openen en uw opdrachten vanaf daar uitvoeren. SQLite gebruikt in dit geval de standaardinstellingen.

Of als u het huidige terminalvenster opnieuw wilt instellen om de standaardinstellingen te gebruiken, kunt u altijd het volgende gebruiken:

.headers off
.mode list
.separator "|"

In dit geval heb ik de .separator . toegevoegd dot-opdracht, voor het geval u eerder het scheidingsteken had gewijzigd.

In het geval dat je je afvraagt, ja, je kunt .separator ", " . gebruiken om de resultaten uit te voeren als een door komma's gescheiden lijst.

Behoud de kolominstellingen

Zoals eerder vermeld, zullen elke keer dat u een nieuw terminalvenster opent om verbinding te maken met SQLite, de query's terugkeren naar de standaardindeling van SQLite (door leidingen gescheiden lijst).

Om te voorkomen dat u de bovenstaande commando's telkens opnieuw moet invoeren wanneer u verbinding maakt met SQLite, kunt u ze invoeren in een .sqliterc het dossier.

Open bijvoorbeeld een leeg tekstbestand en voer het volgende in:

.mode column
.headers on

Sla het bestand op als .sqliterc naar de homedirectory van de gebruiker, en SQLite zal het elke keer gebruiken dat het verbinding maakt.

Als de homedirectory van de gebruiker bijvoorbeeld /Users/bart . is , dan zou je het in die map plaatsen, zodat het zich bevindt op /Users/bart/.sqliterc .

Dit is een verborgen bestand, dus u kunt verschillende prompts krijgen om te bevestigen, enz., afhankelijk van uw systeem. Ga gewoon akkoord met de prompts totdat het is opgeslagen in de homedirectory van de gebruiker.


  1. Parameter gebruiken met LIKE in Sql Server Compact Edition

  2. Opmerkingen ophalen uit een PostgreSQL DB

  3. Best practice meertalige website

  4. Hoe u alle beperkingen van CHECK en externe sleutels in een database in SQL Server inschakelt (T-SQL-voorbeelden)