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.