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á.