FUNÇÕES SQL
As funções são um recurso avançado do SQL e podem ser usadas para realizar:
– Executar cálculos usando dados;
– Modificar itens de dados individuais;
– Manipular saída para grupos de linhas;
– Formatar datas e números para exibição;
– Converter tipos de dados de coluna;
As funções SQL podem aceitar argumentos e sempre retornar um valor;
Há dois tipos de funções:
– Funções de uma única linha;
– Funções de várias linhas;
FUNÇÕES DE UMA ÚNICA LINHA
Essas funções operam somente linhas únicas e retornam um resultado por linha. Há dois tipos diferentes de funções de uma única linha.
– Caractere;
– Número;
– Data;
– Conversão;
Essas funções manipulam grupos de linha a fim de obter um resultado por grupo de linhas.
– Manipulam itens de dados;
– Aceitam argumentos e retornam um valor;
– Agem em cada linha retornada;
– Retornam um resultado por linha;
– Podem modificar o tipo de dados;
– Podem ser aninhadas;
Um argumento pode ser:
– Constante fornecida pelo usuário;
– Valor variável;
– Nome da coluna;
– Expressão;
Os recursos de funções de uma única linha:
– Atuam em cada linha retornada na consulta;
– Retornam um resultado por linha;
– Podem retornar um valor de dados de um tipo diferente do mencionado;
– Podem esperar um ou mais argumentos;
– Podem ser usados em cláusulas SELECT, WHERE e ORDER BY; podem ser aninhados;
– Funções de caractere: aceitam entrada de caractere e podem retornar valores de número e caractere;
– Funções numéricas: aceitam entrada numérica e reotrnam valores numéricos;
– Funções de data: operam sobre valores do tipo de dados data (todas as funções de data retornam data, exceto a função MONTHS_BETWEEN, que retorna um número)
– Funções de conversão: Convertem um valor de tipo de dados para outro;
– Funções gerais:
- Função NVL;
- Função DECODE;
FUNÇÕES DE CARACTERE
Podem ser divididas em duas características:
–Funções de conversão de maiúscula e minúscula;
- LOWER, UPPER e INITCAP
–Funções de manipulação de caractere;
- CONCAT, SUBSTR, LENGTH, INSTR, LPAD, TRIM
FUNÇÕES DE CONVERSÃO DE MAIÚSCULAS / MINÚSCULAS
– LOWER: Converte string de caracteres com letras maiúsculas e minúsculas ou só maiúsculas para letras minúsculas;
– UPPER: Converte string de caracteres com letras maiúculas e minúsculas ou só minúsculas para letras maiúsculas;
– INITCAP: Converte a primeira letra de cada palavra para maiúscula e mantém as outras letras em minúsculas;
SQL> SELECT UPPER(NMDEPTO)
2 FROM DEPTO;
SQL> SELECT LOWER(NMDEPTO)
2 FROM DEPTO;
SQL> SELECT INITCAP(NMDEPTO)
2 FROM DEPTO;
SQL> SELECT UPPER(NMDEPTO)
2 FROM DEPTO
3 WHERE UPPER(NMDEPTO) LIKE '%A%';
FUNÇÕES DE MANIPULAÇÃO DE CARACTERE
– CONCAT, SUBSTR, LENGTH, INSTR, LPAD e TRIM são as seis funções de manipulação de caractere;
– CONCAT: Une valores de junção (Voce está limitado a usar dois parâmetros com CONCAT);
– SUBSTR: Extrai uma string de determinado tamanho;
– LENGTH: Exibe o tamanho de uma string como um valor numérico;
– INSTR: Localiza a posição numérica do caractere nomeado;
– LPAD: Preenche o valor do caractere justificado à direita;
– RPAD: Preenche o valor de caractere justificado à esquerda;
– TRIM: Organiza cabeçalho ou caracteres de fim de linha (ou os dois) a partir de uma string de caractere;
SQL> SELECT CONCAT(NRMATRIC, NMFUNC),
2 LENGTH(NMFUNC),
3 INSTR(NMFUNC,’A’)
4 FROM FUNCIONARIO
5 WHERE SUBSTR(NMDEPTO,1,2) = 'JO';
FUNÇÕES NUMÉRICAS
ROUND: Arredonda valor para determinado decimal;
- ROUND(45.926,2) –> 45.93
TRUNC: Trunca valor para determinado decimal;
- ROUND(45.926,2) –> 45.92
MOD: Retorna o restante da divisão;
- MOD(1600,300) –> 100
USANDO A FUNÇÃO ROUND
SQL> SELECT ROUND(45.923,2),
2 ROUND(45.923,0),
3 ROUND(45.923,-1)
4 FROM DUAL;
USANDO A FUNÇÃO TRUNC
SQL> SELECT TRUNC(45.923,2),
2 TRUNC(45.923),
3 TRUNC(45.923,-1)
4 FROM DUAL;
USANDO A FUNÇÃO MOD
SQL> SELECT MOD(VRSALARIO,2)
2 FROM CARGO;
TRABALHANDO COM DATAS
O Oracle armazena datas em um formato numérico interno: século, ano, mês, dia, horas, minutos, Segundo;
O formato de data default é DD-MON-YY;
SYSDATE é uma função de retorno de data e hora;
DUAL é uma tabela fictícia usada para visualizar SYSDATE;
EXIBINDO A DATA ATUAL
SQL> SELECT SYSDATE
2 FROM DUAL;
ARITMÉTICA COM DATAS
Adicionar ou subtrair um número de, ou para, uma data para um valor de data resultante;
Subtrair duas datas a fim de localizer o número de dias entre estras datas;
Adicionar horas por uma data dividindo o número de horas por 24;
ARITMÉTICA COM DATAS
USANDO OPERADORES ARITMÉTICOS COM DATAS
SQL> SELECT NMFUNC,
2 (SYSDATE – DTADM) / 7 SEMANA
3 FROM FUNCIONARIO;
FUNÇÕES COM DATAS
FUNÇÕES COM DATAS
MONTHS_BETWEEN('01-SEP-95','11-JAN-94')
--> 19.6774194
ADD_MONTHS('11-JAN-96',6)
--> ’11-JUL-94’
NEXT_DAY('01-SEP-95','FRIDAY')
--> '08-SEP-95'
LAST_DAY('01-SEP-95')
--> '30-SEP-95'
ROUND('25-JUL-95','MONTH')
--> 01-AUG-95
ROUND('25-JUL-95','YEAR')
--> 01-JAN-96
TRUNC('25-JUL-95','MONTH')
--> 01-JUL-95
TRUNC('25-JUL-95','YEAR')
--> 01-JAN-95