Como formatar verticalmente as saídas das queries no MySQL

Quando a saída das suas consultas MySQL aparenta estar muito longa (ou larga), é sempre possível reorganizar as informações verticalmente, o que torna a lista mais extensa por um lado — e mais legível por outro.
logo do mysql sobre tela exibindo resultados de uma query
O principal motivo para usar esta formatação é evitar uma apresentação muito “bagunçada” dos seus dados na tela.
* Pessoalmente, esta formatação me lembra as listagens do dBase III, quando comecei a brincar com bancos de dados 😉
Algumas queries têm resultados tão extensos que ocupam mais de uma linha, na listagem. Isto pode tornar a leitura e a compreensão dos dados mais difícil.

select * from clientesEstaduais;

exemplo de exibição de uma query consulta MySQL
A proposta deste post é reorganizar a saída em um outro formato.
Isto pode ser feito adicionando o parâmetro \G ao comando de consulta. Veja:

SELECT * FROM clientesEstaduais\G;
*************************** 1. row ***************************
         id: 9999
nomecliente: Alea N. Valenzuela
     estado: M
     cidade: Cork
*************************** 2. row ***************************
         id: 10006
nomecliente: Wyatt E. Merritt
     estado: Akwa Ibom
     cidade: Uyo
*************************** 3. row ***************************
         id: 10013
nomecliente: Brenda X. Jefferson
     estado: Provence-Alpes-Côte d'Azur
     cidade: Toulon
*************************** 4. row ***************************
         id: 10020
nomecliente: Dolan Y. Joyner
     estado: CE
     cidade: Maranguape
*************************** 5. row ***************************
         id: 10027
nomecliente: Richard D. Bass
     estado: Karnataka
     cidade: Bijapur

...

Experimente isto com suas próprias queries.

Como executar a query direto da linha de comando

Usuários Linux podem fazer o mesmo direto da linha de comando do seu sistema. Abra um terminal e experimente:

mysql -u root -p -e "SELECT * FROM clientesEstaduais WHERE id>10670\G" tutorial

No comando, acima, fazemos o login como root e executamos a query SELECT * FROM clientesEstaduais WHERE id>10670\G contra o banco de dados tutorial. O meu resultado ficou assim:

Enter password: 
*************************** 1. row ***************************
         id: 10671
nomecliente: Remedios J. Owen
     estado: Alajuela
     cidade: Alajuela
*************************** 2. row ***************************
         id: 10678
nomecliente: Hope U. Houston
     estado: ABR
     cidade: San Giovanni Lipioni
*************************** 3. row ***************************
         id: 10685
nomecliente: Graiden F. Donaldson
     estado: Namen
     cidade: Ligny
*************************** 4. row ***************************
         id: 10692
nomecliente: Petra M. Dejesus
     estado: L
     cidade: Dublin

Se você tiver interesse em compreender melhor como fazer consultas ao banco de dados MySQL direto da linha de comando, leia este artigo.

Como listar resultados das tabelas com linhas numeradas no MySQL

Veja como numerar cada linha do resultado de uma query no MySQL. A solução pode ser implementada com uma saída pós processada ou com o uso de uma variável SQL.
mysql numbered lines tables
Neste texto, vou mostrar 2 maneiras bem objetivas e práticas para obter os resultados de uma query (ou consulta) MySQL em linhas numeradas, dentro de uma tabela.

Como obter uma relação numerada de itens de uma tabela via linha de comando

Na linha de comando do Linux ou Unix, você pode combinar a execução de código MySQL com o comando cat -n, conforme é possível observar no exemplo abaixo:

mysql -u root -p -N -e "SELECT nome, credito FROM minhaTabela" tutorial | cat -n
Enter password: 
     1	Geoffrey Rojas	9.33
     2	Brenda N. Reynolds	9.03
     3	Unity Peterson	9.19
     4	Gay Warren	9.11
     5	Hedda E. Kaufman	9.71
     6	Audrey X. Silva	9.21
     7	Myra J. Wright	9.49
     8	Wilma Bird	9.45
     9	Thaddeus P. Shaw	9.06

Com este método, não é preciso entrar no MySQL para conseguir realizar a tarefa.
Vamos dissecar o comando?

  1. mysql -u root -p— início clássico para entrar no cliente MySQL, como root. Como a senha não é fornecida na linha de comando, ela será pedida a seguir.
  2. -N— faz com que a saída do comando não exiba os nomes das colunas.
  3. -e— executa o comando, que segue entre aspas e sai do cliente MySQL. Opcionalmente, você pode usar a variante --execute.
  4. "SELECT nome, credito FROM minhaTabela"query ou consulta a ser executada.
  5. tutorial— banco de dados a ser inquirido.
  6. | cat -n— direciona a saída ao comando cat. A opção -n especifica que cada linha deverá ser contada e numerada.

Neste caso, portanto, quem numera as linhas não é o MySQL, mas o utilitário cat.
Em listas muito grandes, este método permite usar o comando grep, para filtrar os resultados.
Se você tem interesse em saber mais sobre como executar queries MySQL da linha de comando do Linux/Unix, leia este artigo.

Use uma variável SQL para obter uma lista numerada

Uma alternativa inteligente, para solucionar o problema é usar uma variável auto incrementável para listar as linhas numeradas.
Esta solução, ao contrário da anterior, pede que você execute os comandos de dentro do cliente MySQL.
Veja o exemplo:

SET @n = 0;
Query OK, 0 rows affected (0.00 sec)

SELECT @n := @n+1 AS ordem, nome, credito, debito FROM minhaTabela;
+-------+-----------------------+---------+--------+
| ordem | nome                  | credito | debito |
+-------+-----------------------+---------+--------+
|     1 | Lani Z. Lawrence      | 4.70    | 2.01   |
|     2 | Geoffrey Rojas        | 9.33    | 6.09   |
|     3 | Holly Mcknight        | 3.79    | 9.84   |
|     4 | Emerson F. Tate       | 6.09    | 8.57   |
|     5 | Alyssa A. Goodman     | 3.29    | 4.73   |
|     6 | Kibo H. Cruz          | 8.52    | 6.41   |
|     7 | May Hoffman           | 5.51    | 2.40   |
|     8 | Heidi F. Lawson       | 8.37    | 1.42   |
|     9 | Isaac U. Herring      | 6.85    | 1.93   |
|    10 | Amanda Roberson       | 5.97    | 9.47   |
|    11 | Oren M. Tanner        | 4.05    | 9.96   |
|    12 | Wyatt Becker          | 2.81    | 2.81   |
+-------+-----------------------+---------+--------+
12 rows in set (0.00 sec)

Dissecando o comando:

  1. SET @n = 0; — define a variável @n com o valor 0.
  2. SELECT @n := @n+1 AS ordem, nome, credito, debito FROM minhaTabela; — a segunda linha de comando é a responsável pela confecção e exibição da lista.

Se você gostaria de entender melhor o uso de variáveis no MySQL, leia este tutorial.