Se eu for mysql shell
e digitar, SELECT * FROM users
eu recebo -
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| USERID | NAME | EMAILID | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| 137 | X | b@cc.com | # | ADMIN | 166 | 110 |
| 138 | Kshitiz | ksharma@aaa.com | asdf | ADMIN | 167 | 111 |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
Oracle sqlplus
shows -
USERID NAME EMAILID PASSWORD USER_TYPE CONTACT_ID_FKUSERS COMPANY_ID_FKUSERS
---------- ----- ---------- ---------- ---------- ------------------ ------------------
137 X b@cc.com # ADMIN 166 110
137 X b@cc.com # ADMIN 166 110
Sqlite shell
shows -
137|X|b@cc.com|#|ADMIN|166|110
138|Kshitiz|ksharma@aaa.com|asdf|ADMIN|167|111
- Existe uma maneira de embelezar a saída
sqlite shell
? - Existe um shell alternativo melhor que a distribuição padrão? (Apenas clientes CLI)
Respostas:
Para saída "legível por humanos", você pode usar o
column
modo e ativar a saída do cabeçalho. Isso fornecerá algo semelhante àsqlplus
saída em seus exemplos:fonte
echo -e '.mode column\n.headers on\nselect * from sip_foo;\n' | sqlite3 database.sqlite | less -S
para obter uma linha por linha sem quebra de linha..width
comando para aumentar suas colunas. Caso contrário, seu conteúdo será truncado visualmente..separator ROW "\n"
, para que as linhas sejam separadas por quebras de linha. O meu não era, e a saída era ilegível.~/.sqliterc
arquivo se não quiser fazer isso manualmente sempre.Para aqueles que estão interessados em obter os mesmos resultados, exceto executando o sqlite na linha de comando. Eu descobri que o seguinte não funciona:
Em vez disso, você deve usar as opções -column e -header com o comando sqlite da seguinte maneira:
Usando:
fonte
echo -e ".headers on \n.mode column \n.width 10 20 500 \n select * from MyTable" | sqlite3 <dbfile>
- ou seja, envie os comandos para o stdin.".headers on\n.mode column\n
etc.mode csv
ou-csv
da CLITodas as respostas fornecem configurações que você pode digitar no console SQLite ou via CLI, mas ninguém menciona que essas configurações podem ser colocadas em um arquivo RC para evitar a necessidade de digitá-las o tempo todo. Salve isso como
~/.sqliterc
:Observe que também adicionei um espaço reservado para valores nulos, em vez da sequência vazia padrão.
fonte
Eu sempre uso
que imprime os resultados da consulta verticalmente, semelhante ao
\G
modificador do MySQL .fonte
Como ainda não posso comentar ... Além das ótimas respostas já fornecidas por Mat e mlissner, se, em qualquer caso, o conteúdo de uma coluna estiver truncado, depois de dar o formato correto ao shell do sqlite (usando
.mode column
e.headers on
como indicado acima ), também há a possibilidade de usar.explain
para que o conteúdo completo de uma coluna seja mostrado.A única desvantagem desse comando é que os cabeçalhos das colunas encolhem, não os lendo adequadamente e a saída pode ser bastante confusa (em um cenário visual), então você pode usar
.explain off
para retornar ao formato anterior e visualizá-lo com uma aparência mais "humana". legível "mais uma vez.Essa abordagem pode ser usada em conjunto com os comandos dos formatadores de saída e como uma solução temporária para exibir dados completos de um banco de dados / coluna, pois com o uso de
.width
você sempre é necessário fornecer o número preciso de caracteres para obter a saída completa de dados de uma coluna.Para obter mais informações sobre como alterar os formatos de saída, faça uma referência rápida à documentação padrão da CLI:
https://www.sqlite.org/cli.html
fonte
A minha parecia uma bagunça sem quebras de linha. @Boxuan comentar sobre
Corrigido meu problema com ele também
fonte
Você pode usar
.mode tabs
por conveniência.fonte