Como nomear as colunas das tabelas no MySQL – Elias Praciano
Categories
Banco de dados Programação Tutoriais

Como nomear as colunas das tabelas no MySQL

Como formatar a exibição dos nomes das colunas ou campos de dados no MySQL, para melhorar a apresentação das informações.

A nomenclatura dos campos ou das colunas das tabelas nem sempre são legíveis ou facilmente entendíveis. Como raramente é necessário mostrar uma tabela nua e crua, sem filtragem ou formatação a um usuário, não existe a preocupação de usar nomes “apresentáveis” ou que sejam autoexplicativos a qualquer um que a acesse.
captura de tela mysql describe tabela
A escolha dos nomes dos campos de uma tabela, em um banco de dados, obedece a outros critérios e regras.
Normalmente, o desenvolvedor usa nomes que façam sentido para si.
Há momentos, contudo, em que é necessário fazer um relatório ou mostrar resultados direto do cliente MySQL. Para estes casos, é possível usar a declaração SELECT para renomear os cabeçalhos ou os nomes dos campos de uma tabela.
Veja o exemplo de tabela, abaixo:

DESCRIBE ClientesCidades;
+---------------+-----------------------+------+-----+---------+----------------+
| Field         | Type                  | Null | Key | Default | Extra          |
+---------------+-----------------------+------+-----+---------+----------------+
| id            | mediumint(8) unsigned | NO   | PRI | NULL    | auto_increment |
| NomeCliente   | varchar(255)          | YES  |     | NULL    |                |
| IdadeCliente  | mediumint(9)          | YES  |     | NULL    |                |
| CidadeCliente | varchar(255)          | YES  |     | NULL    |                |
| CredCliente   | mediumint(9)          | YES  |     | NULL    |                |
+---------------+-----------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

No exemplo, acima, os nomes não estão “tão ruins”, assim. Dá para entender, sem muito esforço, o que cada um significa e que informações será possível encontrar em cada campo desta tabela.
Se fôssemos exibir o conteúdo desta tabela, teríamos algo parecido com isto (em destaque, os nomes das colunas):

SELECT * FROM ClientesCidades WHERE id<5;
+----+-----------------+--------------+---------------+-------------+
| id | NomeCliente     | IdadeCliente | CidadeCliente | CredCliente |
+----+-----------------+--------------+---------------+-------------+
|  1 | Dara Chase      |           40 | Buti          |          21 |
|  2 | Hanae Kane      |           26 | Whitehorse    |          28 |
|  3 | Jaden Moon      |           29 | Bertiolo      |          17 |
|  4 | Cathleen Harvey |           39 | Exeter        |          12 |
+----+-----------------+--------------+---------------+-------------+
4 rows in set (0.00 sec)

Se você gerar uma coluna de uma alteração no seu resultado, esta expressão será usada como nome da coluna. Isto pode gerar nomes ainda maiores e, em certos casos, “esquisitos”:

SELECT id*10, NomeCliente, IdadeCliente+30, CredCliente*10 FROM ClientesCidades WHERE id<5;

Abaixo, os nomes das colunas (em destaque) refletem as operações realizados nos dados:

 +-------+-----------------+-----------------+----------------+
| id*10 | NomeCliente     | IdadeCliente+30 | CredCliente*10 |
+-------+-----------------+-----------------+----------------+
|    10 | Dara Chase      |              70 |            210 |
|    20 | Hanae Kane      |              56 |            280 |
|    30 | Jaden Moon      |              59 |            170 |
|    40 | Cathleen Harvey |              69 |            120 |
+-------+-----------------+-----------------+----------------+
4 rows in set (0.00 sec)

Você pode melhorar esta apresentação com o recurso de aliases do MySQL para obter nomes diferenciados nas colunas da tabela.
Em uma apresentação, pode ser desejável usar nomes de campos mais significativos para a sua audiência. Veja este exemplo:

SELECT id AS 'Ordem', NomeCliente AS 'Cliente', IdadeCliente AS 'Idade', CidadeCliente AS 'Localidade', CredCliente AS 'Crédito disponível' FROM ClientesCidades WHERE id<5;

Em destaque (novamente), os novos nomes das colunas:

+-------+-----------------+-------+------------+----------------------+
| Ordem | Cliente         | Idade | Localidade | Crédito disponível   |
+-------+-----------------+-------+------------+----------------------+
|     1 | Dara Chase      |    40 | Buti       |                   21 |
|     2 | Hanae Kane      |    26 | Whitehorse |                   28 |
|     3 | Jaden Moon      |    29 | Bertiolo   |                   17 |
|     4 | Cathleen Harvey |    39 | Exeter     |                   12 |
+-------+-----------------+-------+------------+----------------------+
4 rows in set (0.00 sec)

Vamos melhorar mais a apresentação da tabela?
No próximo exemplo, irei aumentar em 3% o crédito de cada cliente:

SELECT NomeCliente AS 'Cliente', CredCliente AS 'Crédito', CredCliente*0.03 AS 'Juros',CredCliente+CredCliente*0.03 AS 'Crédito corrigido' FROM ClientesCidades WHERE id<5;

O resultado mostra uma coluna com o valor do crédito inicial, o valor dos juros (3%) e a soma do crédito ao valor dos juros:

+-----------------+----------+-------+--------------------+
| Cliente         | Crédito  | Juros | Crédito corrigido  |
+-----------------+----------+-------+--------------------+
| Dara Chase      |       21 |  0.63 |              21.63 |
| Hanae Kane      |       28 |  0.84 |              28.84 |
| Jaden Moon      |       17 |  0.51 |              17.51 |
| Cathleen Harvey |       12 |  0.36 |              12.36 |
+-----------------+----------+-------+--------------------+
4 rows in set (0.00 sec)

Desta maneira, nenhuma conta foi exibida nos resultados. Nenhum sinal de porcentagem foi mostrado.
A saída da query, ficou limpa e fácil de entender.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.