You are on page 1of 4

UCB - Universidade Católica de Brasília

PRG - Pró Reitoria de Graduação


Roteiro da Aula
3Funções SQL
3 Tipos de Funções
SQL - Básico
3Funções Caractere
3 Funções Numéricas
3Funções de Data
Laboratório de Banco de Dados
3Aninhando Funções
Aula 04 3Funções de Grupo

Por Fernando Goulart ©

Funções SQL Tipos de função SQL


– As funções são recursos avançados do SQL e podem ser • De uma única linha
usadas para realizar:
– Operam somente linhas únicas e retornam um resultado por
• Executar cálculos usando dados linha
• Modificar itens de dados individuais • Caractere
• Manipular saídas para grupos de linhas • Número
• Formatar datas e números para exibição • Data
• Converter tipos de dados de coluna • Conversão
– Funções podem aceitar argumentos e sempre retornam um
• Várias linhas
valor.
– Manipulam um grupo de linhas a fim de obter um resultado
– As funções apresentados nesta aula são específicas do
por grupo de linhas
SGBD Oracle mas existem correspondentes no SQL
padrão.
Por Fernando Goulart © Por Fernando Goulart ©

Funções de uma única linha Funções Caractere


• Sintaxe: Função Objetivo
LOWER (coluna) Converte para minúsculas
function_name (coluna| expressão, [arg1, arg2 ...]) UPPER (coluna) Converte para maiúsculas
INITCAP (coluna) Primeira maiúscula e o resto minúscua
CONCAT (coluna1, coluna2) Concatena coluna1 com coluna2,
• Funções Caractere: semelhante ao ||
SUBSTR (coluna,m[,n]) Retorna Caracteres apartir de m, n posições
– Função de Conversão de Maiúsculas e Minúsculas LENGTH (coluna) Retorna o tamanho da coluna
INSTR(coluna) Retorna a posição numérica do caractere
• LOWER, UPPER, INITCAP
LPAD(coluna, n, ‘string’) Preenche o valor de caracter justificado a
– Funções de Manipulação de Caractere direita a uma largura n
TRIM (anterior | posterior | Retira caracteres especificados da string
• CONCAT, SUBSTR, LENGTH, INSTR, LPAD, TRIM ambos, trim_caracter FROM
trim_source)

Por Fernando Goulart © Por Fernando Goulart ©

1
Funções Caractere Funções Caractere
• Exemplos : • Resultado : • Exercícios:
UPPER(‘blake’) BLAKE – Utilizar cada uma das funções abaixo nas cláusulas, SELECT,
LOWER (‘String’) string WHERE ou ORDER BY da tabela scoot.emp

INITCAP(‘Curso SQL’) Curso Sql • UPPER()


CONCAT(‘Boa’, ‘Noite’) BoaNoite • CONCAT()
SUBSTR(‘String’,1,3) Str • SUBSTR()
LENGTH(‘String’) 6 • LENGTH()
INSTR(‘String’ , r) 3 • INSTR()
LPAD(sal, 10, ‘*’) ****** 5000
TRIM(‘S’, FROM, (SSMITH’) MITH

Por Fernando Goulart © Por Fernando Goulart ©

Funções Numéricas Funções Numéricas


• Sintaxe: • Mais Exemplos:
Função Objetivo
SQL> SELECT ROUND(45.923 , 2) , ROUND(45.923 , 0),
ROUND (coluna, n) Arredonda com n casas decimais
TRUNC (coluna,n) Trunca para n casas decimais 2 ROUND(45.923, -1)
MOD(m , n) Resto da divisão de m por n 3 FROM DUAL;

• Exemplos: • Avaliar os resultados:


Função Resultado ROUND(45.923 , 2) ROUND(45.923 , 0) ROUND(45.923, -1)
ROUND (45.926 , 2) 45.93 ------------------------- ------------------------- -------------------------
TRUNC (45.926 , 2) 45.92 45.92 46 50
MOD(1600, 300) 100

Por Fernando Goulart © Por Fernando Goulart ©

Funções Numérica Trabalhando com Datas


• Exercícios: • O Oracle armazena datas em um formato
– Utilizar os mesmos parâmetros do exemplo anterior numérico interno: século, ano, mês, dia, horas,
com a função TRUNC minutos, segundos.
– Usando a função MOD calcule o resto da proporção • O formato default é DD-MON-YY
entre o salário do funcionário e sua comissão de • SYSDATE é uma função de retorno de data e
todos funcionários cujo cargo é igual a
‘SALESMAN’ hora
– Utilize pelo menos uma vez as funções numéricas • DUAL é uma tabela fictícia usada para
nas cláusulas SELECT, WHERE e ORDER BY da visualizar SYSDATE
tabelas scott .emp

Por Fernando Goulart © Por Fernando Goulart ©

2
Trabalhando com Datas Trabalhando com Datas
• Mostrando a data atual: • Funções de Data:
Função Descrição
SQL> SELECT SYSDATE FROM DUAL; MONTHS_BETWEEN Numero de messes entre duas datas
ADD_MONTHS Adiciona messes a uma data
NEXT_DAY Dia seguinte a data
• Aritmética com Datas LAST_DAY Último dia do mês
ROUND Data de arredondamento
Operação Resultado Descrição TRUNC Data truncada
data+número data Adiciona dias na data
data - número data Subtrai dias na data
data - data número em dias Subtrai data de data
data + número/24 data Adiciona horas para data

Por Fernando Goulart © Por Fernando Goulart ©

Funções de Data Funções de Data


• Exemplos : • Resultados:
• Exercícios:
– Utilize pelo menos uma vez as funções de data nas
MONTHS_BETWEEN(‘01-SEP-95’,’11-JAN-94’) 19.6774194
cláusulas SELECT, WHERE e ORDER BY da
ADD_MONTHS(‘11-JAN-94’,6) ‘11-JUL-94’ tabelas scott .emp
NEXT_DAY (‘01-SEP-95’, ‘FRIDAY’) ‘08-SEP-95’
• MONTHS_BETWEEN
LAST_DAY (‘01-SEP-95’) ‘30-SEP-95’
• ADD_MONTHS
ROUND (‘25-JUL-95’, ‘MONTH’) ‘01-AUG-95’
• NEXT_DAY
ROUND (‘25-JUL-95’, ‘YEAR’) ‘01-JAN-95’
• LAST_DAY
TRUNC (‘25-JUL-95’, ‘MONTH’) ‘01-JUL-95’
• ROUND
TRUNC (‘25-JUL-95’, ‘YEAR’) ‘01-JAN-95’ • TRUNC

Por Fernando Goulart © Por Fernando Goulart ©

Funções de Conversão Funções de Conversão


• Conversão Implícita
– VARCHAR2 ou CHAR para NUMBER
– VARCHAR2 ou CHAR para date TO_NUMBER TO_DATE

• Conversão Explícita
– TO_CHAR
– TO_DATE NUMBER CHARACTER DATE

– TOP_NUMBER

TO_CHAR TO_CHAR

Por Fernando Goulart © Por Fernando Goulart ©

3
Funções de Conversão Funções de Conversão
• Sintaxe • Usando TO_CHAR
– TO_CHAR (número/data, [fmt], [nlsparams]) SELECT empno , ename, TO_CHAR(hiredate , ‘MM/YY’)
– TO_DATE (caractere, [fmt], [nlsparams ]) FROM scott .emp;

– TO_NUMBER (número, [fmt], [nlsparams]) • Formatos válidos (Exemplos)


• fmt - Formato modelo YYYY Ano completo em número
• nlsparams - Parametros (Caracter decimal, separador, moeda...) YEAR Ano por extenso
• Existem outras funções disponíveis (consultar o MM Mês em dois dígitos
manual do Oracle) MONTH Mês por extenso
DY Três letras da semana
DAY Nome completo do dia

Por Fernando Goulart © Por Fernando Goulart ©

Funções de Conversão Funções de Conversão


• Usando TO_CHAR • Usando TO_NUMBER
SELECT empno , ename, TO_CHAR(sal, ‘$99,999’) SELECT empno, ename, TO_CHAR(sal, ‘$99,999’)
FROM scott .emp; FROM scott.emp;

• Formatos válidos (Exemplos) • Usando TO_DATE


9 Representa um número
SELECT ename hiredate
0 Força o display com 0 FROM scott.emp
$ Coloca o sinal de $ WHERE hiredate = TO_DATE(‘February 22, 1981’,’Month dd, yyyy’);
L Moeda local
. Imprime ponto decimal
, Imprime indicador de milhar

Por Fernando Goulart © Por Fernando Goulart ©

Outras Funções
• Usando NVL
– Converte um valor nulo para real
– Pode ser utilizado com data, caractere e números
– Exemplos
• NVL(comm,0)
• NVL(hiredate, ‘01-JAN-97’)
• NVL(job,’Sem cargo ainda !!!’)

Por Fernando Goulart ©

You might also like