Melhorando a saída do SQLite com o .width

Quando usamos o SQLite pela linha de comando, por padrão os valores de uma coluna não são alinhadas. Exemplo:

sqlite> select distinct org_type, role from interviews order by org_type;
gov|Developer
international|External consultant
private|Developer
private|Executive manager
private|Development manager
private|External consultant
private|Infrastructure manager
private|Designer
private|Infrastructure engineer
private|Enabler team member
private non profit|Developer

Para que as saídas saiam alinhadas é conveniente utilizar o modo column. Além disso, a saída fica melhor ativando os cabeçalhos. Veja como fica:


sqlite> .mode column
sqlite> .headers on
sqlite> select distinct org_type, role from interviews order by org_type;
org_type    role      
----------  ----------
gov         Developer 
internatio  External c
private     Developer 
private     Executive 
private     Developmen
private     External c
private     Infrastruc
private     Designer  
private     Infrastruc
private     Enabler te
private no  Developer 

Agora as saídas ficaram alinhadas e com uma linha de cabeçalho com os títulos das colunas. Ah, e esses comandos mode e headers só precisam ser dados uma vez. Depois disso, as saídas de todos os comandos SQL serão formatados desse jeito.

Mas ainda assim não ficou tão bom… dá pra ver que os valores são truncados (i.e., cortados)… o SQLite decide o tamanho do truncamento em função do tamanho do valor da primeira linha ou do título, caso o valor da primeira linha seja menor que do título. Mas há uma forma de contornar isso. É com o comando width.

Com o comando width dá pra determinar o tamanho (em caracteres) de cada coluna. Assim, é possível resolver nosso problema:

sqlite> .width 20 30
sqlite> select distinct org_type, role from interviews order by org_type;
org_type              role                          
--------------------  ------------------------------
gov                   Developer                     
international         External consultant           
private               Developer                     
private               Executive manager             
private               Development manager           
private               External consultant           
private               Infrastructure manager        
private               Designer                      
private               Infrastructure engineer       
private               Enabler team member           
private non profit    Developer     

O comando width no exemplo especificou que a primeira coluna deve ser formatada com 20 caracteres, enquanto que a segunda coluna deve ser formatada com 30 caracteres. Aí a saída ficou boa!

Ainda é um tanto específico e manual, mas quebra o galho 🙂

Deixe um comentário