TOP

Lição SQL 6. Campos calculados (calculados)

Por que você deve usar campos calculados? Via de regra, as informações do banco de dados são apresentadas na forma de fragmentos separados, pois é mais fácil estruturar os dados e operar sobre eles. No entanto, muitas vezes precisaremos usar não dados individuais, mas informações já combinadas e processadas. Por exemplo, muitas vezes é necessário combinar o nome e o sobrenome dos clientes, combinar elementos de endereço que estão em diferentes colunas da tabela, processar texto e palavras, letras e símbolos individuais, resumir o custo total da compra , para exibir estatísticas sobre as informações que estão no banco de dados. Os dados geralmente são armazenados em "blocos" separados, o que requer processamento adicional por parte do programa cliente. Porém, é possível receber informações já processadas utilizando um SGBD. É neste caso que os campos de cálculo ajudam. Eles são criados automaticamente quando a consulta é executada e possuem aparência e propriedades de colunas comuns que já estão presentes na tabela. A única diferença é que não existem campos calculados fisicamente, portanto eles não ocupam espaço adicional no banco de dados, mas existem temporariamente na “memória aleatória” do SGBD. A vantagem de realizar operações no lado do SGBD é a velocidade de processamento dos dados.


1. Realizando operações matemáticas

Uma maneira de usar campos calculados é realizar operações matemáticas nos dados selecionados. Vamos dar um exemplo de como isso acontece, usando nossa tabela Sumproduct novamente. Suponha que você precise calcular o preço médio de compra de cada produto. Para fazer isso, você precisa redistribuir a coluna Valor para Quantity (quantidade):

Run SQLSELECT DISTINCT Product, Amount/Quantity 
FROM Sumproduct

Como você pode ver, o SGBD selecionou todos os nomes de produtos e exibiu seu custo médio em uma coluna separada que foi criada durante a execução da consulta. Você também pode notar que usamos um operador adicional DISTINCT, que precisamos para exibir nomes de produtos exclusivos (sem ele teríamos registros duplicados).

2. Usando pseudônimos

No exemplo anterior calculamos o preço médio de compra de cada produto e exibimos o valor na coluna de cálculo. Porém, no futuro, será inconveniente nos referirmos a este campo, pois seu nome não é informativo para nós (o SGBD deu o nome do campo - Expr1001). No entanto, podemos nomear o campo de forma independente, especificando antecipadamente seu nome na consulta, ou seja, fornecendo um alias. Vamos reescrever o exemplo anterior e especificar um alias para o campo calculado:

Run SQLSELECT DISTINCT Product, Amount/Quantity AS AvgPrice 
FROM Sumproduct

Vemos que nosso campo de cálculo recebeu seu próprio nome AvgPrice. Para isso, utilizamos o operador AS, após o qual especificamos o nome que precisávamos. Deve-se observar que apenas operações matemáticas básicas são suportadas em SQL: adição (+), subtração (-), multiplicação (*), divisão (/). Você também pode usar colchetes para alterar a sequência de operações.

Os aliases são frequentemente usados não apenas para nomear campos de cálculo, mas também para renomear campos ativos. Isto pode ser necessário se o campo ativo tiver um nome longo ou se o nome não for suficientemente informativo.

3. Conexão de campos (concatenação)

Além das operações matemáticas, também podemos combinar texto e exibi-lo em um campo separado. Vamos considerar como você pode colar (concatenar) texto. Para conectar texto de diferentes colunas em MS Access, o operador mais (+) é usado, por exemplo:

Run SQLSELECT Month + ' ' + Product AS NewField, Quantity  
FROM Sumproduct

Neste exemplo, combinamos os valores em duas colunas e enviamos o resultado para um novo campo NewField.

O operador de adição (+) não é suportado no dialeto MySQL para conectar (concatenar) texto de múltiplas colunas. Neste caso, use a função CONCAT().