Podemos fazer cálculos quando realizamos buscas no banco de dados, simplesmente aplicando um dos operadores aritméticos a colunas. Dessa forma, mesmo não tendo armazenado o valor total (preço unitário multiplicado pela quantidade) em um item de pedido, é possível realizar este cálculo. Como exemplo, será verificado o preço de um determinado produto e aumentará em 5%. Veja abaixo como fica essa instrução SQL.
SELECT CODIGO, NONME, PRECO, PRECO * 1.05 FROM TABELA;
|
CODIGO |
NOME |
PRECO |
PRECO
* 1.05 |
|
3 |
Davi
Ferrer |
12 |
12,6 |
|
4 |
Roger
Federer |
13 |
13,65 |
|
5 |
Rafael
Nadal |
13,5 |
14,175 |
|
6 |
Nicolau
Almagro |
10,5 |
11,025 |
Os operadores aritméticos padrão para o SQL são relativamente limitados. Cada banco de dados, por sua vez, contém funções que minimizam essa limitação. Por exemplo: a função POWER faz parte das funções do Oracle e Sybase e permite calcular exponenciação.
Estes são os operadores utilizados no SQL:
|
Operador |
Ação |
|
+ |
Soma |
|
- |
Subtração |
|
* |
Multiplicação |
|
/ |
Divisão |
A precedência dos operadores é igual à da matemática, ou seja, multiplicação e divisão têm prioridade sobre soma e subtração. Se houver duas ou mais operações do mesmo grupo (multiplicação e divisão ou adição e subtração), a operação será realizada na ordem em que aparecer. Dentro do mesmo grupo não há prioridade. Para alterar a prioridade, devemos utilizar parênteses.
Alfanuméricos
O padrão SQL indica o uso de um operador para concatenar alfanuméricos e de algumas funções para manipulá-los.
Para concatenar cadeias de caracteres, utilizamos dois pipes (||). Dessa forma, se quisermos verificar o nome seguido do contato, utilizaremos o seguinte comando:
SELECT NOME || ‘ – ‘ || CONTATO FROM TABELA
O Resultado desta instrução abaixo:
Petrobrás – Jose Maria
Votorotin – Antonio Emilio de Moraes
Rede Globo – Galvão Bueno
CBF – Dunga
UPPER E LOWER
Quando realizamos buscas alfanuméricas no banco de dados, devemos notar que o conteúdo do campo será comparado, literalmente, com a cadeia de caracteres informada. Isso quer dizer que caso o que seja informado na busca seja composto por letras maiúsculas e o que está armazenado no banco de dados esteja com a primeira letra maiúscula e as demais minúsculas, não será retornada nenhuma linha. Veja o exemplo a seguir:
SELECT * FROM TABELA
WHERE NOME LIKE ‘RONALDO%’;
Esse comando não retorna nenhuma linha. Já utilizando a função UPPER no nome, teremos:
SELECT * FROM TABELA
WHERE UPPER
NOME LIKE ‘RONALDO%’;
|
CODIGO |
NOME |
|
2 |
Ronaldo Martins |
|
34 |
Ronaldo Pacheco |
Conforme podemos notar, a função fez com que todos os conteúdos da coluna NOME fossem convertidos para caracteres maiúsculos (UPPER) e depois comparados com RONALDO%. Isso é particularmente útil quando não sabemos exatamente como os usuários digitaram o conteúdo das colunas. O comando LOWER utilizado dessa forma produz o mesmo efeito, apenas transformando em minúsculos os caracteres a serem comparados
SUBSTRING
Esta função retorna uma parte de uma cadeia de caracteres. Sintaxe:
SUBSTRING(Cadeia_Origem FROM posição_Inicio for número_caracteres)
Ex.
SELECT
SUBSTRING (NOME FROM 1 FOR 3) RES, NOME
FROM TABELA
|
RES |
NOME |
|
Cri |
Cristiano Furtado |
|
Adr |
Adriana Sampaio |
|
Fab |
Fabricia Queiroz |
|
Mar |
Maria de Oliveira |
Fico por aqui, no próximo artigo estarei falando sobre manipulação de data, até lá.