SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Formatar resultados de consulta SQLite como colunas com cabeçalhos de coluna


Por padrão, quando você se conecta ao shell de linha de comando do SQLite e executa uma consulta, o resultado é retornado como uma lista separada por pipe.

Você deve ter notado que os resultados não incluem os nomes das colunas, o que pode tornar seus resultados confusos se você estiver tentando lê-los, especialmente se a consulta retornou muitas colunas.

Felizmente, há uma maneira fácil de formatar a saída para que ela seja exibida como uma coluna com cabeçalhos de coluna.

A saída padrão


Como exemplo, veja como a interface de linha de comando do SQLite gera resultados de consulta por padrão:
SELECT * FROM Products;

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

Portanto, não há cabeçalhos de coluna e é exibido como uma lista separada por pipe.

Adicionar cabeçalhos de coluna


Para adicionar os nomes das colunas a cada coluna use .headers on .
.headers on
SELECT * FROM Products;

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

Você pode desabilitar os cabeçalhos usando .headers off .

Formatar resultados como uma coluna


Você também pode usar a .mode column para formatar os resultados como uma coluna.
.mode column
SELECT * FROM Products;

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

Se você precisar retorná-lo ao formato padrão, você pode usar .mode list .

Alterar largura da coluna


Você pode notar que no exemplo anterior, um dos nomes de produto foi truncado. Isso ocorre porque é mais largo que a largura da coluna.

Por padrão, cada coluna tem entre 1 e 10 caracteres de largura, dependendo do nome do cabeçalho da coluna e da largura da primeira coluna de dados. Os dados muito largos para caber em uma coluna são truncados.

No entanto, você pode usar o .width comando dot para definir as colunas para uma largura específica.

Veja como podemos corrigir o exemplo anterior para que o terceiro produto não seja truncado.
.width 0 16 0
SELECT * FROM Products;

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

Você pode estar se perguntando por que defini a primeira e a terceira colunas como zero?

Usando um valor de 0 realmente torna a coluna auto-ajustável (até certo ponto). Especificando 0 define a coluna para o maior de três números; 10, a largura do cabeçalho e a largura da primeira linha de dados.

No meu caso, isso funciona bem para a primeira e terceira colunas, mas não para a segunda coluna. Portanto, defino essa coluna para 16 (que é quantos caracteres o terceiro produto usa).

Redefinir para o padrão


Se você precisar redefinir brevemente a saída para usar o padrão SQLite (ou seja, uma lista separada por pipes sem cabeçalhos de coluna), basta abrir uma nova janela de terminal e executar seus comandos a partir daí. O SQLite usará suas configurações padrão neste caso.

Ou se você quiser redefinir a janela do terminal atual para usar as configurações padrão, você sempre pode usar o seguinte:
.headers off
.mode list
.separator "|"

Neste caso, adicionei o .separator comando dot, apenas no caso de você ter alterado anteriormente o separador.

Caso você esteja se perguntando, sim, você pode usar .separator ", " para gerar os resultados como uma lista separada por vírgulas.

Persistir nas configurações da coluna


Como mencionado, toda vez que você abrir uma nova janela de terminal para se conectar ao SQLite, as consultas serão revertidas para o formato padrão do SQLite (lista separada por pipe).

Para evitar ter que digitar novamente os comandos acima toda vez que você se conectar ao SQLite, você pode digitá-los em um .sqliterc Arquivo.

Por exemplo, abra um arquivo de texto em branco e digite o seguinte:
.mode column
.headers on

Salve o arquivo como .sqliterc para o diretório inicial do usuário e o SQLite o usará toda vez que se conectar.

Por exemplo, se o diretório inicial do usuário for /Users/bart , então você o colocaria dentro desse diretório, para que ficasse localizado em /Users/bart/.sqlliterc .

Este é um arquivo oculto, então você pode receber vários prompts pedindo para confirmar, etc., dependendo do seu sistema. Apenas concorde com os prompts até que seja salvo no diretório inicial do usuário.