Escolar Documentos
Profissional Documentos
Cultura Documentos
Depois
Depois de de completar
completar esta
esta lição,
lição, você
você poderá
poderá
fazer
fazer oo seguinte
seguinte::
•• Descrever
Descrever vários
vários tipos
tipos de
de funções
funções
disponíveis
disponíveis no
no SQL
SQL
•• Usar
Usar funções
funções de
de data,
data, número
número ee caractere
caractere
nas
nas instruções
instruções SELECT
SELECT
•• Descrever
Descrever oo uso
uso das
das funções
funções de de conversão
conversão
Entrada Saída
Função
arg n
Funções
Funções de Funções de
Uma Única Linha Várias Linhas
function_name
function_name (coluna|expressão,
(coluna|expressão, [arg1,
[arg1, arg2,...])
arg2,...])
Caractere
Geral Número
Funções de
Uma Única Linha
Conversão Data
LOWER CONCAT
UPPER SUBSTR
INITCAP LENGTH
INSTR
LPAD
TRIM
Converter
Converter maiúsculas
maiúsculas em
em minúsculas
minúsculas para
para
strings
strings de
de caractere
caractere
Função Resultado
LOWER('SQL Course') sql course
UPPER('SQL Course') SQL COURSE
INITCAP('SQL Course') Sql Course
EMPNO
EMPNO ENAME
ENAME DEPTNO
DEPTNO
---------
--------- ----------
---------- ---------
---------
7698
7698 BLAKE
BLAKE 30
30
•• MOD:
MOD: Retorna
Retorna oo restante
restante da
da divisão
divisão
MOD(1600,
MOD(1600, 300)
300) 100
100
•• O
O Oracle
Oracle armazena
armazena datas
datas em
em um
um formato
formato
numérico
numérico interno:
interno: século,
século, ano,
ano, mês,
mês, dia,
dia,
horas,
horas, minutos,
minutos, segundos.
segundos.
•• O
O formato
formato de
de data
data default
default éé DD-MON-YY.
DD-MON-YY.
•• SYSDATE
SYSDATE éé uma
uma função
função dede retorno
retorno de
de data
data
ee hora.
hora.
•• DUAL
DUAL éé uma
uma tabela
tabela fictícia
fictícia usada
usada para
para
visualizar
visualizar SYSDATE.
SYSDATE.
•• Adicionar
Adicionar ou
ou subtrair
subtrair um
um número
número de,de, ou
ou
para,
para, uma
uma data
data para
para um
um valor
valor de
de data
data
resultante.
resultante.
•• Subtrair
Subtrair duas
duas datas
datas aa fim
fim de
de localizar
localizar oo
número
número dede dias
dias entre
entre estas
estas datas.
datas.
•• Adicionar
Adicionar horas
horas para
para uma
uma data
data dividindo
dividindo oo
número
número dede horas
horas por
por 24.
24.
ENAME WEEKS
---------- ---------
KING 830.93709
CLARK 853.93709
MILLER 821.36566
• MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')
19.6774194
• 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
Conversão de
tipo de dados
NUMBER VARCHAR2
DATE VARCHAR2
Para
Para avaliação
avaliação da
da expressão,
expressão, oo Oracle
Oracle Server
Server
pode
pode converter
converter automaticamente
automaticamente oo seguinte
seguinte::
De Para
TO_CHAR TO_CHAR
TO_CHAR(data,
TO_CHAR(data, 'fmt')
'fmt')
O
O modelo
modelo dede formato:
formato:
•• Deve
Deve estar
estar entre
entre aspas
aspas simples
simples ee fazer
fazer
distinção
distinção entre
entre maiúsculas
maiúsculas ee minúsculas
minúsculas
•• Pode
Pode incluir
incluir qualquer
qualquer elemento
elemento dede formato
formato
de
de data
data válido
válido
•• Tem
Tem umum elemento
elemento fmfm para
para remover
remover espaços
espaços
preenchidos
preenchidos ou ou suprimir
suprimir zeros
zeros àà esquerda
esquerda
•• É
É separado
separado do do valor
valor de
de data
data por
por uma
uma vírgula
vírgula
ENAME HIREDATE
---------- -----------------
KING 17 November 1981
BLAKE 1 May 1981
CLARK 9 June 1981
JONES 2 April 1981
MARTIN 28 September 1981
ALLEN 20 February 1981
...
14 rows selected.
Use
Use estes
estes formatos
formatos com
com aa função
função TO_CHAR
TO_CHAR
para
para exibir
exibir um
um valor
valor de
de número
número como
como um
um
caractere:
caractere:
9 Representa um número
0 Forces a zero to be displayed
$ Coloca um sinal de dólar flutuante
L Usa o símbolo da moeda local flutuante
. Imprime um ponto decimal
, Imprime um indicador de milhar
SALARY
--------
$3,000
•• Converter
Converter uma
uma string
string de
de caractere
caractere para
para um
um
formato
formato de
de data
data usando função TO_DATE
usando aa função TO_DATE
TO_DATE(carac[,
TO_DATE(carac[, 'fmt'])
'fmt'])
0–49 50–99
Se dois A data de devolução A data de devolução
dígitos do 0–49 está no século atual está no século
ano atual seguinte
forem:
A data de devolução A data de devolução
está no século está no século atual
50–99
anterior
Converte
Converte nulo
nulo para
para um
um valor
valor real
real
•• Os
Os tipos
tipos de
de dados
dados que
que podem
podem serser usados
usados
são
são data,
data, caractere
caractere ee número.
número.
•• Os
Os tipos
tipos de
de dados
dados devem
devem corresponder
corresponder com
com
–– NVL(comm,0)
NVL(comm,0)
–– NVL(hiredate,'01-JAN-97')
NVL(hiredate,'01-JAN-97')
–– NVL(job,'No
NVL(job,'No Job
Job Yet')
Yet')
Facilita
Facilita pesquisas
pesquisas condicionais
condicionais realizando
realizando
oo trabalho
trabalho de
de uma
uma instrução
instrução CASE
CASE ou
ou IF-
IF-
THEN-ELSE
THEN-ELSE
DECODE(col/express,
DECODE(col/express, pesquisa1,
pesquisa1, resultado1
resultado1
[,
[, pesquisa2,
pesquisa2, resultado2,...,]
resultado2,...,]
[,
[, default])
default])
•• As
As funções
funções dede uma
uma única
única linha
linha podem
podem ser
ser
aninhadas
aninhadas emem qualquer
qualquer nível.
nível.
•• Funções
Funções aninhadas
aninhadas são
são avaliadas
avaliadas aa partir
partir do
do
nível
nível mais
mais interno
interno para
para oo nível
nível mais
mais externo.
externo.
F3(F2(F1(col,arg1),arg2),arg3)
Etapa 1 = Resultado 1
Etapa 2 = Resultado 2
Etapa 3 = Resultado 3
ENAME NVL(TO_CHAR(MGR),'NOMANAGER')
---------- -----------------------------
KING No Manager
Use
Use as
as funções
funções para
para realizar
realizar oo seguinte:
seguinte:
•• Executar
Executar cálculos
cálculos usando
usando dados
dados
•• Modificar
Modificar itens
itens de
de dados
dados individuais
individuais
•• Manipular
Manipular saída
saída para
para grupos
grupos de
de linhas
linhas
•• Alterar
Alterar formatos
formatos de
de data
data para
para exibição
exibição
•• Converter
Converter tipos
tipos de
de dados
dados de
de coluna
coluna