Os campos calculados são uma ferramenta importante no gerenciamento de dados para manipular e apresentar dados de forma mais eficaz. Esta ferramenta permite que os usuários realizem cálculos diretamente em consultas SQL, obtendo os resultados desejados sem alterar os dados da tabela. Ao usar campos calculados, os usuários podem economizar tempo e recursos e aumentar a eficiência no processamento de dados.
Os campos calculados são colunas que não existem fisicamente em uma tabela de banco de dados, mas são criadas dinamicamente quando uma consulta é executada. Isso permite que os usuários executem operações matemáticas ou manipulações de cadeia de caracteres em dados existentes, gerando novos valores a partir de colunas existentes.
Por exemplo, podemos usar um campo calculado para calcular o preço total de vários itens multiplicando o número de itens pelo preço por item e exibindo os resultados em uma única consulta.
Os dados armazenados na tabela são informações estáticas que só são alteradas se houver uma atualização manual. Por outro lado, os resultados do cálculo dos campos calculados são dinâmicos e podem ser alterados sempre que uma consulta é executada. Isso significa que os campos calculados podem fornecer o valor mais recente com base nas condições atuais sem alterar os dados originais da tabela.
Por exemplo, se tivermos colunas para preço e quantidade, podemos usar campos calculados para calcular o preço total diretamente ao consultar, em vez de armazenar o preço total como colunas separadas na tabela.
Vantagens de usar campos calculados
Melhore a eficiência da captura de dados.
Os campos calculados permitem que os usuários recuperem dados processados diretamente do banco de dados sem a necessidade de processamento adicional no lado do cliente. Isso acelera a resposta do aplicativo e reduz a carga da rede, pois apenas os dados necessários são enviados.
A eficiência do processamento de dados no servidor
Os sistemas de gerenciamento de banco de dados (DBMS) são projetados para processar dados de forma rápida e eficiente. Com os campos calculados, todos os cálculos são realizados no servidor, o que geralmente é mais rápido do que se fosse feito no cliente. Ele também reduz o uso de recursos do cliente, como CPU e memória, melhorando assim o desempenho geral do aplicativo.
Reduza os requisitos de processamento no cliente.
Com campos calculados, grande parte do processamento que normalmente seria feito por um aplicativo cliente pode ser movido para o servidor de banco de dados. Isso significa que o aplicativo não precisa realizar cálculos ou alterar o formato dos dados após recuperá-los do banco de dados, o que economiza tempo e reduz a complexidade do código.
Simplifique as consultas para relatórios ou necessidades específicas.
Os campos calculados permitem que os usuários simplifiquem consultas complexas para serem mais fáceis de entender e gerenciar. Por exemplo, em vez de pegar várias colunas separadas e realizar cálculos no aplicativo, o usuário pode criar uma única consulta com um campo calculado que fornece o resultado final desejado. Isso não apenas melhora a legibilidade das consultas, mas também facilita a criação de relatórios ou a análise de dados.
Como criar campos calculados em SQL
Os campos calculados são criados adicionando uma fórmula ou função no comando SELECT. Essa fórmula pode ser mesclagem de texto, cálculo de números ou outro processamento de dados. As colunas de resultado desse cálculo não são armazenadas na tabela, mas são criadas automaticamente quando a consulta é executada.
Mesclagem de strings com concat()
Um uso comum de Campos Calculados é combinar cadeias de caracteres de várias colunas em uma. A função Concat() em SQL é usada para combinar duas ou mais strings em uma única string.
A função Concat() nos permite combinar os valores de várias colunas. Além disso, podemos usar aliases com palavras-chave dos EUA para nomear as colunas calculadas para torná-las mais acessíveis e compreensíveis.
Exemplos de código
Aqui está um exemplo de consulta SQL que usa Concat() para combinar o nome do fornecedor e o país do fornecedor em uma única nova coluna chamada vend_title:
SELECT Concat(vend_name, ' (', vend_country, ')') AS vend_title
FROM vendors
ORDER BY vend_name;Análise de amostra de código
Concat(): Neste exemplo, a função Concat() combina três elementos:
- O nome do fornecedor na coluna vend_name.
- Strings na forma de espaços e colchetes de abertura ‘ (‘.
- Nome do país na coluna vend_country.
- Colchetes de tampa ‘)’.
Alias: Usando o AS vend_title, damos um nome ao resultado combinado, para que o resultado possa ser referenciado como vend_title no aplicativo cliente.
Output: O resultado dessa consulta resultará em uma nova coluna contendo a combinação de nome do fornecedor e país no formato desejado, como:
+----------------------+
| vend_title |
+----------------------+
| ACME (USA) |
| Anvils R Us (USA) |
| Furball Inc. (USA) |
| Jet Set (England) |
| Jouets Et Ours (France) |
| LT Supplies (USA) |
+----------------------+Removendo espaços com a função Trim()
No gerenciamento de dados, muitas vezes encontramos problemas de espaçamento indesejados em torno de valores de cadeia de caracteres. Para resolver esse problema, o SQL oferece várias funções de corte, ou seja, RTrim(), LTrim() e Trim(). Essas funções são muito úteis para limpar os dados antes de prosseguir com o processo adicional.
Funções RTrim(), LTrim() e Trim()
- RTrim(): Remove todos os espaços no lado direito da string.
- LTrim(): Remove todos os espaços no lado esquerdo da string.
- Trim(): Remove todos os espaços em ambos os lados da string.
Essas três funções ajudam a garantir que os dados recuperados do banco de dados estejam limpos e prontos para uso, especialmente ao executar junções ou cálculos de cadeia de caracteres.
Casos de uso para limpeza de dados
Aqui está um exemplo de consulta SQL que usa a função RTrim() para remover espaços indesejados antes de combinar nomes de fornecedores e países de fornecedores:
SELECT Concat(RTrim(vend_name), '(', RTrim(vend_country), ') AS vend_title
FROM vendors
ORDER BY vend_name;Análise de amostra de código
Concat(RTrim(vend_name), ‘(‘, RTrim(vend_country), ‘)’): Nesta consulta, usamos RTrim() nos campos vend_name e vend_country para garantir que não haja espaços extras no final do nome do fornecedor ou do país. Isso é essencial para manter um formato de saída limpo e profissional.
Alias: Usando o AS vend_title, damos um nome a esse resultado combinado, facilitando a referência no aplicativo cliente.
Output: O resultado dessa consulta resultará em uma nova coluna chamada vend_title que contém uma combinação de nome do fornecedor e país sem espaços adicionais, como:
+----------------------+
| vend_title |
+----------------------+
| ACME (USA) |
| Anvils R Us (USA) |
| Furball Inc. (USA) |
| Jet Set (England) |
| Jouets Et Ours (France) |
| LT Supplies (USA) |
+----------------------+Executar cálculos matemáticos com campos calculados
Em SQL, podemos realizar vários cálculos matemáticos usando operadores básicos. Aqui estão os operadores usados com mais frequência:
- +: Soma
- –: Redução
- \*: Multiplicação
- /: Distribuição
Esses operadores nos permitem realizar diferentes tipos de cálculos sobre os dados recuperados da tabela. Também podemos usar parênteses para definir a ordem das operações no cálculo.
Exemplo de código de cálculo
Aqui está um exemplo de uma consulta SQL que executa um cálculo matemático para calcular o preço total de um item em um pedido:
SELECT prod_id, quantity, item_price, quantity * item_price AS expanded_price
FROM orderitems
WHERE order_num = 20005;Análise de amostra de código
prod_id, quantity, item_price: Essas colunas são retiradas da tabela de itens do pedido, que contém informações sobre o produto, a quantidade solicitada e o preço por unidade.
quantity * item_price AS expanded_price: Aqui, fazemos o cálculo multiplicando a quantidade por item_price (preço por unidade). O resultado desse cálculo é denominado alias expanded_price, que aparecerá como uma nova coluna nos resultados da consulta.
WHERE order_num = 20005: Esta condição garante que apenas os itens da ordem com o número 20005 sejam separados.
Saída
O resultado dessa consulta gerará uma tabela com as seguintes informações:
+---------+----------+------------+---------------+
| prod_id | quantity | item_price | expanded_price|
+---------+----------+------------+---------------+
| ANV01 | 10 | 5.99 | 59.90 |
| ANV02 | 3 | 9.99 | 29.97 |
| TNT2 | 5 | 10.00 | 50.00 |
| FB | 1 | 10.00 | 10.00 |
+---------+----------+------------+---------------+Nessa saída, a coluna expanded_price mostra o preço total de cada item com base na quantidade solicitada.

