Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
s
nto
a
S
Introduo
os
d
ro
i
do
sim
s
a
C
Treinamento
u
ze
i
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
F
P
C
8
6
.
1
01
Objetivo
"
4
-5
s
as
C
Apesar do treinamento
ser orientado para
u
e
liz
E
e"
Bancos de Dados
Oracle
10G,
11G
e
12C,
a
d
ivo
s
clu do aprendizado se aplicar em
maior parte
x
oe
s
au
qualquer
SGBD
que
implemente
o
padro
r
a
P
ANSI (Ex.: Mysql, SQL Server, DB2).
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Objetivo
"
54
O treinamento abordar o contedo dos
41
9
.
85
6
.
exames 1Z0-051 (OCA/OCP 10G e1111G) e
0
F
1Z0-061 (OCA/OCP 12c);
CP
s
o
t
an
S
os
d
Ao longo do treinamento,
o aluno ter
ro
i
m
i
ss
a
exerccios preparatrios
para os exames
C
u
ize
l
"E
mencionadosdeacima.
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Material
4"
5
Totalmente elaborado pelo instrutor do
14
.9
5
treinamento de acordo com a sua 11.68
0
F
experincia, conhecimentos e- pesquisas;
CP
s
o
t
an
S
s
Parte torica resumidaro para
facilitar e
do
i
sim
s
agilizar o aprendizado;
a
C
u
e
z
i
El
"
e
d
Composto adicionalmente
por
scripts
que
o
iv
s
u
cl
aplicamextodos
os conceitos, tcnicas e dicas
so
u
aprendidas
durante o treinamento e que
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Contedo programtico
"
1. Introduo
4
-5
4
9
.
5
s
nto
PF
ir
5. Recuperando dados de mltiplas
tabelas
im
s
s
Ca
u conjunto
6. Utilizando operadoreszede
li
"E
e
d
7. Atualizando dados
o
iv
s
u
cl
8. Utilizandoexinstrues
DDL
o
s
u
ra
9. Utilizando
instrues DCL
a
P
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Exame 1Z0-051
"
Link oficial:
http://education.oracle.com/pls/web_prod-plqdad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-051
4
-5
4
9
.
5
8
6
.
11
0
Certificaes
-Oracle Database 10g AdministratorF Certified Associate
CP
associadas:
-Oracle Database 11g Administrator
Certified Associate
s
o
t
n
aCertified
S
-Oracle PL/SQL Developer
Associate
s
o
d
-OPN Certified Specialist
ro
i
sim
s
a
Preo:
US$ 125
C
u
e
z
i
Durao:
120 minutos
El
"
e
d
Qtde. questes:
66
ivo
s
clu
x
Pontuao aprovao:e 60%
so
u
ra
Formato: Pa
Mltipla escolha
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
4
-5
4
9
.
Aprendendo
SQL
85
Exame 1Z0-051
.6
liz
E
e"
od
iv
Manipulating Data
s
clu
uC
im
s
as
0
F
2. Recuperando dados
CP com a instruo SELECT
s
3. Utilizandotofunes
em instrues SQL
n
a
3. Utilizando
s S funes em instrues SQL
o
o dUtilizando agrupamentos e funes de grupo
ir4.
5. Recuperando dados de mltiplas tabelas e subqueries
5. Recuperando dados de mltiplas tabelas e subqueries
6. Utilizando operadores de conjunto
7. Atualizando dados
so
au
r
a
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Exame 1Z0-061
"
4
-5
4
9
.
5
Link oficial:
http://education.oracle.com/pls/web_prod-plqdad/db_pages.getpage?page_id=5001&get_params=p_exam_id:1Z0-061
Certificaes
associadas:
F
P
-C
s
-Oracle Database 12c Administrator
Certified
o
t
an
Associate;
S
os
d
-ORACLE MASTER Bronze
Oracle Database 12c (Japan).
ro
i
sim
s
a
US$ 125
C
u
e
z
i
120 minutos
El
"
e
d
75o
siv
Preo:
Durao:
Qtde. questes:
8
6
.
1
01
clu
x
Pontuao aprovao:
65%
oe
s
au
r
Formato: Pa
Mltipla escolha
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
4
-5
4
9
.
Aprendendo
SQL
85
1Z0-061
1.6
1
0
Introduction
1. Introduo
2. Recuperando dados
CP com a instruo SELECT
sim
s
2. Recuperando
nto dados com a instruo SELECT
a
3. Utilizando
s S funes em instrues SQL
o
o dUtilizando funes em instrues SQL
ir3.
od
iv
s
clu
i
El
"
e
uC
so
u
raDefinition Language
a
Introduction to Data
P
7. Atualizando dados
8. Utilizando instrues DDL
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
10
"
4
-5
4
9
.
5
o
d
o
ir
FIM
m
i
s
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
a
S
Captuloo1
s
d
ro
i
sim
s
a
C
u
s
nto
Introduo
e
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
F
P
C
8
6
.
1
01
Introduo
"
4
-5
4
9
.
5
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
4
-5
C
u
e
s
as
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
4
-5
1
A estrutura bsica de um SGBDR contm:
.94
8
6
.
1
01
F
Conjunto de operadores para atuar nos relacionamentos;
P
C
s
Mecanismos para garantir a integridadentodos dados com preciso e
a
S
consistncia.
os
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
Fonte: Oracle Corporation
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Modelo Entidade-Relacionamento
"
4
-5
nt
a
S
i
m
i
Pode ser representado
graficamente pelo
s
s
a
C
u
e
Diagrama de Entidades
e
Relacionamentos
z
i
l
"E
e
d Chen, criado em 1976.
o
(DER) de Peter
siv
o
s
u
a
ar
clu
x
e
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Modelo Entidade-Relacionamento
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
4
-5
F
P
C
a
Suporta objetos, classes oes Sherana
nos
d
ro
i
im instrues SQL.
esquemas do BD e nas
ss
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
O que SQL?
"
4
-5
F
P
Conjunto de instrues ou comandos
para
C
s
o
t
manipular dados em bancosSande dados
os
d
ro
relacionais;
i
im
s
s
Ca
u
e
z
i
Foi desenvolvida
El em 1970 pela IBM e
"
e
d
ivopelo Instituto Americano
padronizada
s
clu
x
oe
s
de Padres
(ANSI) em 1986;
u
ra
a
P
Nacional
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
O que SQL?
Exemplos de verses SQL do padro ANSI:
"
4
9
.
5
SQL-86:
4
-5
8
6
.
1
01
SQL-99:
sim
o
d
o
a
S
s
ir
iz
SQL-2003:
El
"
e
d
o
iv
Inclusoxde
clu suporte bsico ao padro XML, instruo MERGE, colunas
oe
com
valores
auto-incrementais etc.
s
u
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
10
s
Evite os dialetos, utilize sempre o padro
ANSI para obter
nto
a
sS
os seguintes benefcios:
o
d
ro
i
Permitir portabilidade entre SGBDsimdistintos;
ss
a
C ruim;
Minimizar riscos de escreveruSQL
ize
l
"E
Possibilitar melhor performance
em instrues SQL complexas.
e
d
ivo
s
clu
x
O Oracle Database
11G aderente ao padro ANSI
e
o
s
u
SQL:2008.
O 12c aderente ao padro ANSI SQL:2011.
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
11
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
12
4
-5
F
P
C
a
S
SELECT, INSERT, UPDATE, DELETE
os e MERGE;
d
ro
i
sim
s
DDL (Data Definition Language):
a
C
u RENAME, TRUNCATE e COMMENT;
e
CREATE, ALTER, DROP,
z
i
El
"
e
d
DCL (Data Control
Language):
ivo
s
u
cl
x
GRANT
o e e REVOKE;
s
au
r
Pa
Transaction
Control:
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
13
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
14
"
4
-5
4
9
.
5
a
S
Captuloo1
s
d
ro
i
sim
s
a
C
u
s
nto
Parte Final
e
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
F
P
C
8
6
.
1
01
"
4
Queries do tipo Top N;
9
.
85
Funes PL/SQL na clusula WITH;
6
.
1
01
Execuo concorrente de UNION e UNION ALL;
F
P
Parallel DML em colunas LOB SecureFiles;
-C
s
DDL online ao apagar, por exemplo um ndice ou constraint;
nto
a
Estatsticas dinmicas, otimizao de query adaptvel,
novos tipos de
sS
o
histogramas;
od
r
i
Truncate Table Cascade.
im
4
-5
s
Ca
"
Restaurar uma ou maisetabelas;
d
Cross-Plataform Backup
ivo and Restore;
lus
c
x
o Multitenant;
Arquitetura
us
ra
a
P
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
16
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
lus
c
x
e
so
a
Para mais
ardetalhes, consulte os links:
P
http://www.oracle.com/technetwork/oem/pdf/512028.pdf
http://www.oracle.com/technetwork/oem/cloud-mgmt/cloudmgmt12c-wp-516612.pdf
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
17
Schema HR
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
18
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Captulo 2 a
S
os
d
o
s
nto
F
P
C
8
6
.
1
01
ir
Recuperando
dados
m
i
s
as
C
com a instruo
SELECT
u
e
iz
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
Introduo
"
4
9
.
5
4
-5
F
P
C
8
6
.
1
01
s
to valores nulos;
Expresses aritmticas e tratamento nde
a
sS
o
Operadores e literais;
d
ro
i
Restrio e ordenao de sdados.
sim
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Projeo X Seleo
"
4
-5
s
nto
F
P
C
o
d
o
im
Seleo:
C
u
e
s
as
liz
E
Linhas de uma dou
e "mais tabelas a serem recuperadas;
ivo de linhas.
SELEO l=usFiltro
xc
e
so
u
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Sintaxe bsica
SELECT
* | {[DISTINCT] coluna |
FROM
tabela [alias]
WHERE
o
d
coluna | expresso
=
iro
a
S
s
4
9
.
5
8
6
.
1
[alias],
01
PF
expresso
s
nto
"
4
-5
...}
im
iz
C
u
e
El
"
e
s
as
coluna | expresso
d
o
iv
Observaes: uso
lus
c
x
ra
- Aps
Paa clusula SELECT, deve ser especificada a lista de colunas a ser recuperada;
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Caractersticas gerais
"
4
-5
4
9
.
5
a
O terminador ; requerido somente
no SQL Plus ou
S
s
o
d
quando so executadas N iinstrues;
ro
im
s
as
lu
c
x
Palavras ereservadas.
so
u
ra
a
A palavra
reservada
P
opcional.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
-5
4
9
.
5
s
nto
F
P
C
8
6
.
1
01
a
S
Operadores aritmticos,
os
d
ro
i
valores nulos,
literais e
im
s
as
C
comandos
bsicos
u
e
z
i
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
Expresses aritmticas
4"
5
possvel criar expresses com valores numricos
14
.9
5
8
6
.
e datas, usando operadores aritmticos;
1
01
F
P
-C
s
Assim como na aritmtica, possvel
utilizar
nto
a
S
s
o
parnteses para indicar precedncia
de clculo;
d
o
ir
m
i
ss
a
C
u
Operador
Descrio
ize
l
"E
e
Adio
d+
o
iv
s
u
Subtrao
cl
x
oe
s
*
Multiplicao
u
ra
a
P
/
Diviso
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Valores nulos
4"
5
NULL = valor desconhecido ou inexistente
14
.9
5
8
6
.
11
0
Valores nulos no so a mesma coisa
que zero
F
P
-C
s
ou espaos vazios ();
nto
a
sS
o
d
o
r
i
Quando voc v em alguma
ferramenta (Ex.:
im
s
as
C
SQL Developer) a epalavra
(null) representando
u
liz
E
o valor de uma
e "coluna, entenda que a
d
ivo
s
ferramenta
clu possui uma configurao que
x
oe
s
substitui
o valor nulo pela string (null) para
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Valores nulos
4"
5
Cuidado ao efetuar clculos com valores
1-nulos;
4
.9
5
8
6
.
1
01
Qualquer clculo efetuado com Cum
PF valor nulo
s
retornar sempre nulo.
nto
a
sS
o
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
10
Operadores e literais
4" ()
Use cuidadosamente os operadores de precedncia
5
14
.9
para retornar o resultado esperado;
5
8
1.6
1
0
F valores ou
Utilize os caracteres || para concatenar
P
-C
s
colunas (somente string), retornando-os
como se fosse
to
n
a
S
uma nica coluna;
os
ro
i
m
si
s
Literais podem ser concatenados
nos valores ou
a
C
u
e
colunas de uma instruo.
Ao concatenar datas ou
z
i
l
"E
e
caracteres, delimite-os
utilizando aspas simples ();
d
o
iv
s
u
l
xc
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
11
Recursos diversos
4"
5
Utilize o comando DISTINCT para eliminar 4valores
1.9
5
8
6
.
repetidos;
1
01
F
P
-C
s
Utilize o comando DESC ou DESCRIBE
para ver a
nto
a
S
s
o
estrutura (colunas, tipos de
d dados e constraint
o
ir
m
i
NOT NULL) de uma tabela;
ss
a
C
u
ize
l
"E
e
Utilize variveis
d de substituio atravs do
o
iv
s
u
l
operador e&
xc ou && para substituir valores, em
so
u
tempo
ra de execuo, dentro de uma instruo
a
P
SQL.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
12
"
4
-5
4
9
.
5
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
Restringindo
dados
m
i
s
s
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Restringindo dados
"
4
-5
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
14
Operadores de comparao
Operador
"
Descrio
Igualdade
>
Maior
>=
Maior ou igual
<
Menor
o
d
o
a
S
s
s
nto
F
P
C
4
-5
4
9
.
5
8
6
.
1
01
ir
m
i
<=
Menor ou igual ss
a
C
<> ou !=
Diferente zeu
i
El
"
e
BETWEEN ...
d
Entre
ivo (inclusive) 2 valores
s
AND ...
clu
x
e
IN uso
Lista de valores
ra
a
P
LIKE
Combinao de valores incluindo coringas (% ou _)
IS NULL
Valor nulo
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
15
Operadores lgicos
"
Operador
Descrio
OR
NOT
ra
a
P
4
9
.
5
8
6
.
1
Retorna TRUE se ambas as condies so
01 verdadeiras
F
P
- C for verdadeira
Retorna TRUE se qualquer condio
s
nto
a
Retorma TRUE se a condio
for falsa
sS
o
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
lu
xc
AND
o
us
4
-5
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
16
Regras de precedncia
"
Prioridade
Operador
Operadores aritmticos
Operador de concatenao
Condies de comparaoSa
os
d
IS [NOT] NULL, LIKE,ro [NOT] IN
i
m
i
ss
[NOT] BETWEEN
a
C
u
ize
Desigualdade
l
"E
e
d
Condio
lgica NOT
o
v
i
lus
c
ex Condio lgica AND
4
5
6
7
8
s
u
9 ra
Pa
s
nto
F
P
C
4
-5
4
9
.
5
8
6
.
1
01
Condio lgica OR
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
17
"
4
-5
4
9
.
5
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
Ordenando
dados
m
i
s
s
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Ordenando dados
"
4
5
possvel ordenar os dados retornados utilizando
14
.9
5
a clusula ORDER BY, no final da instruo
8
6
.
1
01
SELECT;
F
P
-C
s
ntoem modo
A ordenao pode ser realizada
a
sS
o
crescente (padro) ou decrescente,
atravs dos
d
ro
i
sim
complementos ASC ouasDESC;
C
u
ize
l
A ordenao pode
"E ser realizada atravs dos
e
d
o
seguintes itens:
iv
s
u
l
ccoluna(s);
x
Nome da(s)
oe
s
Apelido
a u da(s) coluna(s);
r
Pa da(s) coluna(s);
Ordem
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
19
Ordenando dados
"
4
-5
a
S
s
ir muitos recursos de
A ordenao consome
m
i
ss
a
C
u
processamento lido
ze BD. Evite-a sempre que
"E
e
d
possvel (principalmente
em consultas que so
o
v
i
lus
c
x
e
executadas
o frequentemente).
s
u
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
20
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Captulo 3 a
S
os
d
o
s
nto
F
P
C
8
6
.
1
01
ir funes
Utilizando
m
i
ss
a
C
em instrues
SQL
u
e
iz
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
Introduo
"
4
9
.
5
Funes aninhadas;
4
-5
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
im
Converses explcitas e implcitas;
ss
a
C
u
Expresses condicionais.
e
iz
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Viso geral
4"
5
geral,
14
5.9
o
d
o
a
S
s
s
nto
F
P
C
ir
a
C
u
Caractersticas lgerais:
ize
"E
e
Podem receber d0 ou N argumentos (valor de uma coluna ou
ivo
s
expresso);
clu
x
o e obrigatriamente um valor;
Retornam
s
au
r
Podem
transformar tipos de dados;
Pa
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Viso geral
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
a
ar
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Tipos de funes
"
Multiple-row functions:
sim
os
d
o
F
P
C
4
-5
4
9
.
5
8
6
.
1
01
nto
a
S
ir
C
u
e
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Tipos de funes
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Single-row functions
Retornam um resultado por linha;
"
4
-5
4
9
.
5
8
6
.
11
0
So subdivididas em funes para trabalhar
com:
F
P
-C
s
Caracteres:
nto
a
sS
LOWER, UPPER, INITCAP, CONCAT, SUBSTR,
LENGTH, INSTR, LPAD, RPAD,
o
d
ro
TRIM e REPLACE;
i
sim
s
a
C
Nmeros:
u
e
z
i
ROUND, TRUNC e MOD;
El
"
e
d
ivo
Datas:
s
clu
x
SYSDATE,
o e MONTHS_BETWEEN, ADD_MONTHS, NEXT_DAY, LAST_DAY,
s
ROUND
a u e TRUNC;
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Single-row functions
"
Converses:
4
-5
4
9
.
5
Gerais:
s
nto
sim
o
d
o
a
S
s
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
-5
4
9
.
5
s
nto
F
P
C
8
6
.
1
01
Funes aninhadas,
a
S
s
do
trabalhandoirocom
datas,
sim
converses
e
s
a
C
u
expresses
condicionais
ize
l
E
"
iv
e
d
o
s
clu
x
e
o
s
u
a
ar
Funes aninhadas
4"
5
Funes single-row podem ser aninhadas
1- em
4
.9
5
8
6
.
qualquer nvel;
1
01
F
P
-C
s
o
As funes mais internas so
ntexecutadas
a
sS
o
d
primeiramente.
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
11
4"
5
O Oracle armazena datas em um formato interno
14
.9
5
8 dia,
6
numrico que contm: sculo, ano, ms,
.
1
01
F
P
horas, minutos e segundos;
-C
s
nto
a
O formato de visualizao padro
DD-MON-RR,
sS
o
od
r
i
onde RR corresponde ao
im sculo, conforme regras
s
as
C
abaixo:
u
e
z
i
El 0 e 49:
a) Se ano atual entre
"
e
d
- Retornaivoo sculo atual se a data informada entre 0 e 49;
lus
c
- Retorna
o sculo anterior se a data informada entre 50 e 99.
x
e
so atual entre 50 e 99:
u
b) Se
ano
ra
a
P
-
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
12
"
4
5
possvel utilizar operadores aritmticos com datas;
14
.9
5
8
6
.
1
Elementos de formatao de datas:
01
F
P
-C
Elemento
Descrio
s
nto
a
YY ou YYYY
Ano em 2 ou 4 dgitos (valor
s S numrico)
o
d
o
r
i
YEAR
Ano por extenso m
si
s
a (valor numrico)
C
MM
Ms em 2 dgitos
u
e
z
li
MONTH
Ms por"Eextenso
e
d
ivo por extenso em apenas 3 caracteres
MON
Ms
s
clu
x
DD so e Dia do ms (valor numrico)
au
r
DAY
Dia por extenso
Pa
DY
Dia por extenso em apenas 3 caracteres
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
13
4"
5
No existe comparao entre 2 tipos de941dados
5.
8
diferentes;
1.6
1
0
F
CP
s
o
t
Se uma funo de converso
an no for utilizada
S
os
d
explicitamente, o Oracle
ro tentar fazer uma
i
sim
s
a quando for necessrio;
converso implcita,
C
u
e
z
i
El
"
e
d
o
Para evitarusiverros
e otimizar performance,
cl
x
faa converses
implcitas;
oe
s
u
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
14
4"
5
O Oracle s consegue fazer converso implcita
14
.9
5
8
6
nas seguintes situaes:
.
1
01
F
P
De NUMBER para VARCHAR2 ou CHAR;
-C
s
De DATE para VARCHAR2 ou CHAR; anto
sS
o
d
De VARCHAR2 ou CHAR para NUMBER;
ro
i
sim
s
De VARCHAR2 ou CHAR para
a DATE;
C
u
e
z
i
El
"
e
d
Regras gerais
ivo de converso:
s
clu
x
Se entreo 2e valores 1 for NUMBER, o Oracle converte o outro para
s
u
NUMBER
tambm;
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
15
Expresses condicionais
4"
5
possvel utilizar a expresso condicional
1- CASE
4
.9
5
8
6
.
como alternativa funo DECODE01para
1
F
P
implementar a lgica condicional
- C de um IFs
nto
a
THEN-ELSE;
sS
o
d
ro
i
sim
s
a que ele permite
A vantagem do CASE
C
u
e
z
li
E
"
verificar qualquer
condio, e no somente de
e
d
ivo
s
igualdade.
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
16
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Captulo 4
a
S
s
s
nto
F
P
C
8
6
.
1
01
o
d
Utilizando agrupamentos
ro
i
sim
s
a e
C
u
e
z
funes
de grupo
li
"E
iv
e
d
o
s
clu
x
e
o
s
u
a
ar
Introduo
"
4
9
.
5
4
-5
F
P
C
8
6
.
1
01
s
Consideraes gerais sobre agrupamentos
nto e funes de grupo;
a
sS
o
Funes analticas.
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
5
Pode ser entendido como um recurso que possui
1- a
4
.9
5
capacidade de processar mltiplos valores
8e retornar
6
.
11
0
um resultado nico e muito til para
F realizar
P
-C
clculos;
s
nto
a
sS
o
d
Permite agrupar o resultado
ro de mltiplas linhas,
i
sim
s
baseando-se nos valores
a da tabela inteira ou de uma
C
u
ou mais colunas; Elize
e"
d
ivo normalmente utilizado com as
s
O agrupamento
clu
x
o e funes de grupo ou funes agregadas,
chamadas
s
au
r
quePaoperam em conjuntos de linhas para fornecer um
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Sintaxe
SELECT
[coluna, ]
"
4
-5
4
9
.
5
8
6
.
1
01
F
P
funcao_grupo(coluna),
-C
FROM
tabela
sim
os
d
o
s
o
t
an
ir
[WHERE
a
C
u
condicao]
ize
El
"
e
d
o
iv
[GROUP BY
coluna,
]
s
u
l
c
x
e
o
s
u
a
ar
BY coluna, ]
[ORDER
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Funes de grupo
As funes de grupo mais utilizadas so:
"
o
d
o
a
S
s
s
nto
F
P
C
4
-5
4
9
.
5
8
6
.
1
01
ir
as
C
u
VARIANCE: retorna a varincia
(soma dos quadrados dos desvios /
e
z
i
ocorrncias);
El
"
e
d
ivo o desvio padro (raiz quadrada da varincia).
STDDEV: retorna
s
clu
x
oe
s
au
r
a compreender melhor desvio padro e varincia necessrio ter conhecimentos prvios de
Obs.:PPara
estatstica (ver link http://educacao.uol.com.br/matematica/media-desvio-padrao-e-variancia-nocoes-de-estatistica.jhtm)
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
-5
4
9
.
5
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
Consideraes
e
ir
m
i
ss
a
Funes
Analticas
C
u
e
iz
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
Consideraes gerais
"
4
-5
ir
Todas as colunas da lista SELECT
que no esto inclusas nas
m
i
s
s
funes de grupo devem
Ca estar includas na clusula GROUP BY;
u
e
liz
E
Apelido da coluna
e " no pode ser usado na clusula GROUP BY;
d
o
iv
Use a clusula
lus HAVING para restringir grupos e WHERE apenas
c
x
e
para srestringir
linhas;
o
au
r
a
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Funes analticas
"
4
-5
nto
a
S
El
"
e
d
o
iv
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Captulo 5
a
S
s
s
nto
F
P
C
8
6
.
1
01
o
d
Recuperando
dados
ro
i
sim
s
de mltiplas
tabelas e
a
C
u
e
z
subqueries
li
"E
iv
e
d
o
s
clu
x
e
o
s
u
a
ar
Introduo
"
4
-5
4
9
.
5
8
6
.
1
01
Fligaes;
Conceitos e consideraes gerais ao efetuar
P
C
s
Conceitos e utilizao de equi-join, self-join,
theta join, outer
nto
a
sS
join e produto cartesiano;
o
d
ro
i
Viso geral e utilizao de ssubqueries;
im
s
a
C
Suqueries escalares e correlacionadas.
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Viso geral
4"
5
Para recuperar dados de mltiplas tabelas
14
.9
5
8
6
.
precisamos entender os conceitos011
F
P
relacionados s ligaes de tabelas
(JOINs);
-C
s
nto
a
sS
o
d
ro ANSI SQL 1999) :
i
Tipos de ligaes (padro
sim
s
a
C
Equi-joins (Natural join)
u
e
z
i
El
"
e
Self-joins
d
ivo
s
clu (Nonequijoins)
Theta Joins
x
oe
s
a u joins
r
Outer
Pa
Produtos cartesianos
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Sintaxe
SELECT
tabela1.coluna,
tabela2.coluna
"
4
-5
8
6
.
1
01
4
9
.
5
FROM
F
P
tabela1
-C
s
[NATURAL JOIN tabela2] | Santo
os
d
ro
[JOIN tabela2 USING (coluna)]
|
i
m
i
ss
a
C
[JOIN tabela2
u
ize
l
"E
e
ON (tabela1.coluna
=
tabela2.coluna)]
|
d
ivo
s
clu | FULL OUTER JOIN tabela2]
[LEFT | RIGHT
x
oe
s
u
ONara(tabela1.coluna
= tabela2.coluna)] |
P
[CROSS JOIN tabela2]
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Consideraes gerais
"
4
-5
F
P
C
El
"
e
d
o
iv
Ao recuperar
na lista de colunas, 2 ou mais
s
u
l
xc
e
so que possuem o mesmo nome, atribua
colunas
u
ra
a
umP apelido diferente para cada uma delas.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Equi-join
4"
5
Recupera somente as linhas que possuem valores
14
.9
5
8
iguais na(s) coluna(s) de ligao;
6
.
1
01
F
P
C
Permite efetuar ligaes atravs todas
s - seguintes
an
S
clusulas:
os
d
ro
i
NATURAL JOIN:
sim
s
a de colunas com mesmo nome e tipo de dado;
C
Ligao automtica atravs
u
e
z
i
El
"
USING:
e
d
Ligao automtica
atravs de colunas com somente mesmo nome;
ivo
s
u
cl
x
ON: o e
s
u
ra Ligao efetuada atravs de colunas especificadas (no precisa ter mesmo
a
P nome e nem mesmo tipo de dado).
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Self-join
4"
5
Ocorre quando uma tabela ligada a ela
14
.9
5
8
6
.
mesma, ou seja, quando uma tabela
1 possui
01
F
P
auto-relacionamento;
-C
s
nto
a
sS
o
d
Pode ser substitudo por
ro queries hierrquicas.
i
sim
s
a
Para mais informaes
leia no blog
C
u
ize
l
"E
FABIOPRADO.NET
o artigo Consultando dados
e
d
ivo
s
com queries
hierrquicas.
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
-5
4
9
.
5
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
Theta join,imouter
join e
ir
ss
a
produto
C cartesiano
u
e
iz
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
Theta join
4"
5
Ocorre quando uma tabela ligada a outra
14
.9
5
8
6
.
atravs de uma faixa de valores; 011
F
P
-C
s
Nonequijoins significa queSaantoligao vai
os
d
retornar os registros de
ro uma tabela baseandoi
sim
s
a
se na faixa de valores
de uma segunda tabela.
C
u
ize
l
"E
e
d
o
iv
s
u
cl
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
10
Outer join
4"
5
Difere-se de um Equi-Join porque retorna
14
.9
5
8
6
alm dos registros que combinam 1entre
as 2
.
1
0
F
tabelas, os registros que no combinam,
CP
s
o
t
conforme clusulas abaixo:
an
S
os
d
ro
LEFT [OUTER] JOIN:
i
simtabela esquerda da ligao;
Registros que no combinamasda
C
Antes do 12c, somenteeou padro ANSI permitia LEFT JOIN de uma tabela com 2 ou
lizNo 11G ou verses anteriores, ao tentar fazer isso no
mais (outras) tabelas.
E
e"
dialeto Oracle,docorrer
o erro ORA-01417;
o
iv
s
u
RIGHT [OUTER]
JOIN:
cl
x
e
Registros
que no combinam da tabela direita da ligao;
so
u
ra
a
PFULL [OUTER] JOIN:
Registros que no combinam de ambas as tabelas da ligao.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
11
Outer join
4"
5
Valores nulos (NULL) retornaro nas colunas
14
.9
5
8
6
.
das tabelas que contm as linhas 0que
no
11
F
P
combinam;
-C
s
nto
a
sS
o
d do padro ANSI. No
Utilize sempre a sintaxe
ro
i
sim
s
a
dialeto Oracle o caminho
para fazer um FULL
C
u
ize
l
E
"maior
OUTER JOIN
e menos performtico.
e
d
ivo
s
clu
x
Cuidado!
o e Por questes de performance, evite
s
au
r
Pa
quando
for possvel, Outer Joins!
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
12
Produto cartesiano
4"
5
Ocorre quando no h uma ligao entre
1- as
4
.9
5
8
6
.
tabelas;
1
01
F
P
-C
s
to
Com a clsula CROSS JOIN,Sanretorna
qtde. de
os
d
linha da 1 tabela X qtde.
de linhas da 2;
ro
i
sim
s
a
C
u
e
z
Muitas vezes "Econsequncia
de:
li
e
d
Ligaes omitidas
(por esquecimento ou falta de
ivo
s
u
cl
x
conhecimento);
oe
s
au
r
a
PLigao
invlida.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
13
Consideraes finais
4"
5
Existem ainda 2 outros tipos de ligaes
1- (no
4
.9
5
8
6
.
especificadas no padro ANSI SQL 99):
1
01
F
P
-C
s
Semi-joins:
nto
a
Retorna somente linhas da 1 tabela
s S que combinam com linhas de
o
uma 2 tabela ou conjunto; iro d
sim
Pode ser implementadoasatravs
das clusulas IN ou EXISTS.
C
u
e
z
i
El
"
Anti-joins:
e
d
Retorna ssomente
linhas da 1 tabela NO que combinam com linhas
ivo
u
cl 2 tabela ou conjunto;
x
de uma
oe
s
u
a Pode
ser implementado atravs das clusulas NOT IN ou NOT
r
a
P EXISTS.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
14
"
4
-5
4
9
.
5
ir
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
Utilizando
subqueries
as
iz
C
u
e
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
sim
Viso geral
4"
5
Subqueries so representadas como uma query
14
.9
5
8
contida em outra query;
6
.
1
01
F
P
C
-
A query principal, mais esquerda
conhecida como
s
o
t
an
S
Outer query e a query direita
s (mais interna), a
o
d
o
r
i
subquery, conhecida como
Inner query;
im
s
as
C
u
e
z
i
A Inner query sempre
processada primeiro;
El
"
e
d
ivo
s
clu
So conhecidas
no padro ANSI como Semi-joins e
x
e
so
u
Anti-joins.
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
16
Viso geral
"
4
-5
s
Se a subquery retornar apenas
nto uma linha,
a
sS
o
d
utilize um operador single-row
(Exs.: =, <>)
ro
i
sim
s
a
antes dos parnteses,
caso contrrio, utilize
C
u
ize
l
"E
um operadordemultiple-row
(Ex.: IN);
ivo
s
clu
x
o enulos devem ser tratados para no
Valores
s
au
r
a
P
retornar resultado vazio.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
17
Viso geral
"
Operadores single-row:
Igualdade:
Maior que:
>
>=
Menor que:
<
<=ir
o
d
o
4
-5
4
9
.
5
a
S
s
s
nto
sim
s
Diferente (no igual que):
a <> ou !=
C
u
e
z
i
El
"
e
d
Operadores
ivomultiple-row:
s
clu
x
Igual a eum membro da lista:
so
u
Compara
um valor a cada valor da lista:
ra
a
P
F
P
C
8
6
.
1
01
IN
ANY
ALL
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
18
Subqueries escalares
4"
5
valor
14
5.9
(1
nto
a
S
os
d
Subqueries escalares podem
ser usadas:
ro
i
sim
s
a DECODE e CASE;
Como parte de instrues
C
u
e
z
i instruo SELECT, exceto GROUP BY;
Todas as clusulasElda
"
e
d
Na clusula iSET
o e WHERE de uma instruo UPDATE ou DELETE.
v
lus
c
x
e
so
u
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
19
Subqueries correlacionadas
"
4
-5
s
So processadas linha-a-linha;
nto
a
sS
o
d
ro
i
im
Permitem escrever aconsultas
complexas
ss
C
u
ize
envolvendo valores
agrupados.
l
E
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
20
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Captulo 6 a
S
os
d
o
s
nto
F
P
C
8
6
.
1
01
ir
Utilizandossimoperadores
a
C
de
conjunto
u
e
z
i
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
Introduo
"
4
-5
4
9
.
5
8
6
.
1
01
FINTERSECT e
Operadores de conjunto UNION, UNION ALL,
P
-C
s
MINUS;
nto
Ordenao de conjuntos.
sim
o
d
o
a
S
s
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Viso geral
4"
5
unir
14
.9
s
nto
a
C
u
so
u
operadores
ra
a
P
Os
de conjunto so: UNION ALL, UNION,
INTERSECT e MINUS.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
UNION ALL
4"
5
Permite unir 2 ou mais conjuntos de dados;
14
.9
5
8
6
.
1
01
F
Todos os dados (mesmo os repetidos)
so
P
C
s
unidos;
nto
a
sS
o
d
ro
i
im
A partir do 12c, os aconjuntos
podem ser
ss
C
u
ize
processados paralelamente.
l
"E
e
d
o
iv
s
u
cl
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
UNION
4"
5
Permite unir 2 ou mais conjuntos de dados;
14
.9
5
8
6
.
1
01
F
Somente os dados distintos (elimina
os dados
P
C
s
repetidos) so unidos;
nto
a
sS
o
d
ro
i
sim repetidos, um
Para eliminar os dados
s
a
C
u
e
z
i
DISTINCT implcito
executado na instruo
El
"
e
d
SQL;
ivo
s
clu
x
oe
s
au
r
A partir
do 12c, os conjuntos podem ser
Pa
processados paralelamente.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
INTERSECT
4"
5
Permite unir 2 ou mais conjuntos de dados;
14
.9
5
8
6
.
1
01
F os dados
Somente os dados comuns (elimina
P
-C
s
diferentes) so unidos.
nto
a
sS
o
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
MINUS
"
4
-5
s
to
1
nconjunto
a
sS
Permanece os dados do
o
d
esto contidos no 2 conjunto.
iro
que no
im
C
u
e
s
as
iz
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Ordenao
4"
5
Por padro, a ordenao sempre realizada
14
.9
5
8
6
.
na primeira coluna (exceto UNION ALL)0;11
F
P
-C
s
Se for necessrio efetuar outra
ordenao
nto
a
S
os
d
qualquer, a clusula ORDER
BY deve ser
ro
i
sim
s
inclusa depois do ultimo
conjunto;
Ca
ize
l
"E
e
d
o
iv
Se for utilizar
apelidos de colunas para
s
u
l
xc
e
efetuar
so a ordenao, utilize os apelidos do 1
u
ra
a
P
conjunto.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
a
S
Captuloo7
s
d
ro
i
sim
s
a
C
u
s
nto
F
P
C
8
6
.
1
01
Atualizando dados
e
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Introduo
"
4
9
.
5
4
-5
a
S
s
s
nto
F
P
C
8
6
.
1
01
ro
i
m
i
Instruo SELECT FOR UPDATE;
ss
a
C
u
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Viso geral
"
4
-5
ize
l
"E
Uma ou N instrues
DML constituem uma
e
d
ivo
s
transao,
clu que finalizada sempre atravs
x
oe
s
de um
a u COMMIT ou ROLLBACK.
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
INSERT
4"
5
Para inserir dados em uma tabela, utilizamos
14
.9
5
8
6
.
a instruo INSERT;
1
01
F
P
-C
s
Sintaxe:
nto
a
sS
o
d
INSERT INTO tabela [(coluna [,coluna
] ) ] -- lista de colunas
ro
i
sim ] );
VALUES
(valor [,valor
s
a
C
u
e
z
i
El
"
e
A lista de colunas
opcional,
mas
uma
boa
d
ivo
s
lu
prtica esempre
listar todas as colunas da
xc
so
u
tabela
ra para facilitar o entendimento da
a
P
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
INSERT
"
4
-5
01
s
Ca
u
e
z
i
Para inserir o valor
El DEFAULT de colunas, quando ele
"
e
d
existir, basta
ivoomitir a(s) coluna(s) desejada(s) na
s
clu
x
instruo
SQL (INSERT ou UPDATE) ou incluir a
oe
s
au
r
DEFAULT na clusula VALUES.
palavra-chave
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
INSERT Multitable
"
4
5
INSERTs Multitable permitem inserir dados de1uma
4
.9
5
determinada origem, em mltiplas tabelas,
8 em uma
6
.
11
0
nica instruo SQL, ou seja, um nico
F INSERT
P
-C
(Multitable) substitui mltiplas instrues
INSERT
s
o
t
an
S
convencionais;
os
d
ro
i
im
Por executar tudo em auma
s instruo, mais rpido
ss
C
u
e
do que mltiplos INSERTS
separados;
z
li
E
e"
d
ivo
s
Principais caractersticas:
clu
x
No funciona
atravs de dblinks;
oe
s
au
Sequncias
no podem ser usadas;
r
Pa
No pode exceder 999 colunas na(s) clusula(s) INTO.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
UPDATE
4"
5
Para alterar dados em uma tabela, utilizamos
14
.9
5
8
6
.
a instruo UPDATE;
1
01
F
P
-C
s
nto
a
Sintaxe:
sS
o
od
r
i
UPDATE tabela
sim
s
SET
coluna = valor u[,Cacoluna = valor, ]
ize
l
[WHERE condio];
"E
e
d
o
iv
s
u
cl
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
UPDATE
"
4
-5
85
6
.
1
01
F
No esquea a clsula WHERE quando
quiser
P
C
s
restringir o conjunto de linhas
nto a serem
a
sS
o
d
alteradas;
iro
im
C
u
e
s
as
possvel utilizar
liz subqueries como valores ou
E
e"
d
filtros. usivo
o
s
u
a
ar
cl
x
e
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
MERGE
"
4
-5
s
nto
F
P
C
01
o
d
o
im
s
as
"E
e
d
ivo
s
apelido_destino.col1
= apelido_origem.col1
clu
x
e
WHEN uNOT
so MATCHED THEN
ra
a
INSERT
(lista_colunas_tabela_destino)
P
VALUES (lista_colunas_tabela_origem)
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
10
MERGE
4"
5
Substitui mltiplas instrues SQL (SELECT e 4INSERT
+
1.9
5
8 SQL, que
SELECT e UPDATE) por uma nica instruo
6
.
1
01
F
mais enxuta e mais rpida;
P
-C
s
nto
a
Caractersticas do MERGE: os S
d
o
r
i
Pode combinar mltiplas operaes:
INSERT, UPDATE e DELETE;
im
s
as
uma instruo determinstica,
ou seja, no permite atualizar a
C
u
mesma linha de uma ltabela
mltiplas vezes na mesma instruo;
ize
E
e " casos mais flexvel e eficiente que as solues
Na maior parte dos
d
ivoUPSERT.
tradicionaislusde
xc
e
Cuidado
o ao utilizar sequences! Mesmo se uma condio (Ex.: NOT
s
au
MATCHED)
no for alcanada, o nmero sequencial dela ser perdido!
r
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
11
"
4
-5
4
9
.
5
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
DELETE, TRUNCATE
e
ir
m
i
ss
a
SELECT
CFOR UPDATE
u
e
iz
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
DELETE
4"
5
Para apagar dados de uma tabela, utilizamos
14
.9
5
8
6
.
a instruo DELETE;
1
01
F
P
-C
s
nto
a
Sintaxe:
sS
o
od
r
i
DELETE [FROM] tabela
sim
s
[WHERE condio]; u Ca
ize
l
"E
e
d
o
iv
s
u
cl
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
13
DELETE
Podemos apagar 1 ou N linhas por vez;
"
4
-5
4
9
.
5
8
6
.
1
No esquea a clsula WHERE quandoFquiser
restringir
01
CP
o conjunto de linhas a serem apagadas;
s
o
t
an
S
os
d
possvel possvel utilizarirosubqueries como filtros;
sim
s
a
C
u apagar todas as linhas de uma
Quando for necessrio
e
z
i
El
"
etem certeza de que na precisar
tabela, se voc
d
ivo
s
mais recuper-las,
prefira a instruo TRUNCATE.
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
14
TRUNCATE
4"
5
uma instruo DDL que possui as seguintes
14
.9
5
8
6
.
caractersticas:
1
01
F
P
Limpa (zera) a tabela;
-C
s
nto
a
No transacional, ou seja, no spermite
desfazer a operao;
S
o
d
o
r
i
muito mais rpida que um
im DELETE sem clusula WHERE;
s
as
C
At o 11G no se aplica
u em tabelas que possuem FKs. No 12c,
e
liz
possvel executar"ETRUNCATE
CASCADE se a FK for tipo ON
e
d
o
DELETE CASCADE.
iv
s
u
cl
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
15
4"
5
Permite bloquear as linhas durante a leitura;
14
.9
5
8
6
.
1
01
F
P
C
Libera as linhas somente apss - um
COMMIT ou
nto
a
ROLLBACK.
sS
o
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
16
"
4
-5
4
9
.
5
ir
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
Controleastransacional
iz
C
u
e
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
sim
Controle transacional
4"
5
Transao uma sequncia de operaes
1- que
4
.9
5
8
6
.
so tratadas como um bloco nico011e indivisvel
F
P
(atmico);
-C
s
nto
a
sS
o
d
ro
i
As instrues de controle
transacional
sim
s
a
C
u uma transao,
e
permitem finalizar
z
i
El
"
e
d
efetivando-a
o ou desfazendo-a;
v
i
lus
c
x
e
so
u
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
18
Controle transacional
4"
Uma transao finalizada aps uma das seguintes situaes:
5
1
8
6
.
1
01
F
P
C
4
9
.
5
s
Ao executar uma instruo DDL ou DCL:
nto
a
Ao execut-las, ocorre um commit automtico
s S na transao existente;
o
d
o
r
i
Quando o usurio finaliza a sesso:
sim
s
Finalizao normal realiza COMMIT;
a
C
u ROLLBACK.
Finalizao anormal realiza
e
z
i
El
"
Quando o sistema
e falha:
d
Realiza ROLLBACK.
ivo
s
clu
x
oe
s
au
r
Pa
Obs.: O comando SAVEPOINT permite marcar pontos dentro de uma transao.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
19
Controle transacional
"
4
-5
5.
8
1.6
Somente o usurio atual pode ver os dados da01transao
em
F
P
andamento;
-C
s
nto
a
S bloqueadas para escrita
As linhas afetadas pela transaos so
o
d
at a sua finalizao, portanto,
ro outros usurios s podero
i
sim
s
consult-las;
a
C
u
e
z
i
El executado, todos os usurios podem ver
"
Quando um COMMIT
e
d
as alteraes
ivoproduzidas pela transao e as linhas bloqueadas
s
lu
c
x
so liberadas;
oe
s
au
r
a
PSavepoints
existentes so liberados ao final da transao.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
20
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
a
S
Captuloo8
s
d
ro
i
sim
s
a
C
u
s
nto
F
P
C
8
6
.
1
01
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Introduo
"
4
9
.
5
a
S
s
4
-5
8
6
.
1
01
s
nto
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Viso geral
"
s
nto
F
P
C
e
liz
e"
No 12c, muitas operaes
de manuteno realizadas atravs de
d
vo causam mais locks na tabela, portanto, no
ino
s
instrues DDL
clu
x
e
causam oimpacto
nas aplicaes. Exemplos: DROP INDEX
s
a u DROP CONSTRAINT ONLINE, ALTER INDEX [VISIBLE |
ONLINE,
r
Pa
INVISIBLE].
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Viso geral
4"
5
Regras gerais para compor o nome
de
14
9
5.
8
tabelas, colunas, ndices, constraints,
vises,
1.6
1
0
F
sequncias e sinnimos:
CP
s
o
t
an
Deve conter at 30 caracteres;
S
os
d
Deve comear com uma letra;iro
sim
s
Deve conter somente osCaseguintes caracteres: A-Z, a-z, 0-9, _,
u
e
z
i
$ e #;
El
"
e
d
No pode duplicar
o nome de outro objeto dentro do mesmo
o
v
i
s
schema; xclu
oe
s
Pode
a u ser case-sensitive, conter outros caracteres especiais ou
r
Pa
palavras
reservadas do Oracle, somente quando o nome for
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
-5
4
9
.
5
o
d
o
a
S
s
ir
Tabelas
m
i
s
s
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
s
nto
F
P
C
8
6
.
1
01
Criando Tabelas
"
4
-5
4
9
.
5
8
6
.
1
01
F
Possuir permisso para gravar dados em um determinado
tablespace;
P
C
s
Especificar no mnimo, o nome da tabela
nteo das colunas, tipo de dado e
a
S
s dado
tamanho da coluna (quando o tipo de
exigir);
o
d
ro
i
im o mesmo tipo de dado) para as colunas, se
Especificar um valor default s(com
s
a
C
for necessrio:
u
e
z
i
Valores permitidos:
El literais, expresso ou funes SQL.
"
de
Valores no opermitidos:
nomes de colunas ou pseudocolunas
v
i
lus
c
x
e
Sintaxe:
so
u
ra
a
CREATE
TABLE [schema].tabela
P
(coluna tipo_dado [DEFAULT expresso] [, ]);
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
41
9
.
5 ou 32767 (somente
Caracteres de tamanho varivel com tamanho at 4000 (at 811G)
6
.
12c).
1
01
F Tamanho no utilizado
P
Caracteres de tamanho fixo com tamanho at 2000.
-C
preenchido com espaos em branco.
s
nto
a
Nmeros de tamanho varivel com atS38 dgitos de preciso, onde p representa a
os de decimais). P e S so opcionais.
d
preciso (tamanho total) e s a escala (qtde.
ro
i
Data contendo ano, ms, dia,
simhoras, minutos e segundos.
s
a
C
u varivel at 2 GB. No utilizar mais, pois foi substitudo
Caracteres de tamanho
e
z
i
pelo CLOB. Oracle
El permite somente 1 coluna deste tipo por tabela.
"
e
d
Caracteres
ivo de tamanho varivel (entre 8 TB e 128 TB).
s
clubinrios.
Dados
x
e
so
VARCHAR2
(tamanho)
CHAR (tamanho)
NUMBER (p, s)
DATE
LONG
CLOB
RAW e LONG RAW
au
r
a
BLOB
BFILE
Descrio
"
4
-5
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Constraints
"
4
-5
4
9
.
5
8
6
Aplicar regras de negcio e impor restries ao inserir/atualizar
dados;
.
1
01
F
Prevenir a deleo de dados se existirem dependncias.
P
C
s
nto
d
ro
i
NOT NULL: No permite valores
im nulos;
s
as
C
UNIQUE: Permite somente
u valores nicos;
e
z
i
El
"
PRIMARY KEY: Valor
e identificador de cada linha da tabela. Permite
d
ivo nicos e no permite valores nulos;
somente valores
s
clu
x
FOREIGN
o e KEY: Valor identificador de um relacionamento com a PK da
s
a u pai;
r
tabela
Pa
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Constraints
"
Consideraes gerais:
4
-5
4
9
.
5
.6
Podem ser nomeadas explicitamente ou Oracle
1gera
1
0
F
implicitamente um nome contendo SYS_ + Pstring
aleatria;
-C
s
Podem ser criadas junto com a tabela
ntoou depois de sua criao;
a
S
s
o
Podem ser criadas no nvel de coluna
ou da tabela.
d
o
ir
m
i
ss
a
C
Sintaxe:
u
ize
l
CREATE TABLE [schema].tabela
"E
e
d
o
(coluna tipo_dado
[DEFAULT expresso]
iv
s
u
cl
x
[coluna_constraint],
oe
s
ara u
P
[tabela_constraint] [,]);
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
10
Constraints
"
4
-5
85
6
.
1
01
a
S
s
s
nto
mi
[tabela_constraint] si[,]);
s
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
11
Alterando tabelas
4"
5
Podemos utilizar o comando ALTER TABLE
14
.9
5
8
6
.
para:
1
01
F
P
Colocar a tabela em modo somente leitura
- C ou leitura/escrita;
s
nto
a
Adicionar/modificar/remover/renomear
colunas;
sS
o
d
ro
i
Adicionar/remover constraints;
sim
s
a
C
Adicionar colunas invisveis
(somente 12c);
u
e
liz
E
Renomear a tabela.
e"
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
12
Apagando tabelas
4"
5
Uma tabela pode ser apagada em 2 modos
14
.9
5
8
6
.
partir do 10G):
1
01
F
P
Tabela sendo movida para a lixeira (recycle
- C bin);
s
nto
a
S
Tabela apagada definitivamente s(sem
ir para a lixeira).
o
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
(a
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
13
"
4
-5
4
9
.
5
o
d
o
a
S
s
ir
Vises
m
i
s
s
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
s
nto
F
P
C
8
6
.
1
01
Vises
"
4
5
Uma viso um objeto que cria um novo ponto
1- de
4
.9
5
acesso a uma ou mais colunas de uma ou .mais
8
6
11
0
tabelas;
F
P
-C
s
So classificadas em 2 tipos: Santo
os
d
Simples:
ro
i
sim
Acessa 1 tabela;
s
Ca agrupamentos de dados;
No contm funes e unem
ize
l
Permite atualizaes.
"E
e
d
o
Complexa: siv
c1luou mais tabelas;
Acessa
x
o e conter funes e agrupamentos de dados;
s
Pode
au
r
Pa Nem sempre permite atualizaes. Uma tcnica muito pouco utilizada (no
recomendada),
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
15
Vises
"
Vantagens:
4
-5
Encapsulamento de dados;
4
9
.
5
8
6
.
1
01
nt
a
Permite simplificar a escrita de queries
complexas.
sS
o
d
ro
i
sim
s
Sintaxe:
a
C
u
e
z
CREATE [OR REPLACE]
[FORCE|NOFORCE] VIEW nome
i
El
"
de
[(alias [, oalias]
)]
v
i
lus
AS
c
x
e
so
subquery
u
ra
a
[ PWITH CHECK OPTION [CONSTRAINT constraint] ]
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
16
Vises
4"
5
Utilize a clusula WITH CHECK OPTION941para
5.
8
.6 viso;
restringir DML ao escopo de dados011da
F
P
-C
s
nto
a
Utilize a clusula WITH READ
ONLY para
sS
o
d
ro
i
impedir DML na viso;
sim
s
a
C
u
e
z
i
El
"
de
Para apagarivo uma
viso, execute a instruo
lus
c
x
e
SQL abaixo:
so
u
ra
DROP
VIEW nome_visao;
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
17
"
4
-5
4
9
.
5
ir
o
d
o
a
S
s
s
nto
Sequncias
as
iz
C
u
e
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
sim
F
P
C
8
6
.
1
01
Sequncias
Uma sequncia um objeto que permite gerar1-54"
4
9
.
nmeros nicos que normalmente so utilizados
como
5
8
.6
1
1
valores de PKs;
0
F
P
C
s
No 12c, sequncias podem ser implementadas
como
nto
a
sS
valor default de colunas. Asdocolunas
do tipo IDENTITY
rointernamente sequncias
i
(novas no 12c) implementam
sim
s
com valor default; u Ca
ize
l
"E
e
dprincipais de uma sequncia:
Caractersticas
o
iv
s
u
Automaticamente
geram nmeros nicos;
cl
x
Valorsinicial
e final so pr-definidos;
oe
u
ra incremental pode ser customizado;
Valor
a
P
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
19
Sequncias
"
Sintaxe:
4
-5
4
9
.
5
a
S
s
s
nto
F
P
C
8
6
.
1
01
[ {MAXVALUE n | NOMAXVALUE}
]
do
ro
i
[ {MINVALUE n | NOMINVALUE}
]
m
i
s
as
C
[ {CYCLE | NOCYCLE}
u ]
e
liz
E
"
[ {CACHE n | eNOCACHE}
];
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
20
Sequncias
Pseudocolunas NEXTVAL e CURRVAL:
"
NEXTVAL:
Retorna o prximo valor de uma sequncia;
F
P
C
4
-5
4
9
.
5
8
6
.
1
01
CURRVAL:
ir
as
liz
E
e"
d
o
iv
Para verificar
s o ltimo valor de uma sequncia,
u
l
xc
e
recomenda-se
consultar a coluna LAST_NUMBER
so
u
ra
a
P
da viso
do DD ALL_SEQUENCES.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
21
Sequncias
4"
5
Sequncias com valor em cache so acessadas
14
.9
5
8
6
muito rapidamente. Para mais detalhes,
.
1
01
F
P
consulte no blog FABIOPRADO.NET
C o artigo
s
o
t
Cache em Oracle Sequences;
an
S
os
d
ro
i
sim
s
GAPs podem ocorrerCaao utilizar sequences, nas
u
e
z
i
seguintes situaes:
El
"
e
d
Ao executar ROLLBACK;
ivo
s
lu
c
x
Quando oe sistema falhar;
so
u
Se arasequncia for chamada indevidamente;
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
22
Sequncias
"
4
-5
4
9
.
5
8
6
.
1
01
F ser modificado;
O valor atual o nico parmetro que no pode
P
C
s
Usurio deve ser o dono da sequncia nou
to ter o privilgio ALTER
a
SEQUENCE.
sS
o
d
ro
i
sim
s
a
C
eu
Para apagar uma lizsequncia,
execute o
"E
e
comando: ivo d
lus
c
x
DROP SEQUENCE
nome_sequencia;
e
o
s
u
ra
a
P
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
23
"
4
-5
4
9
.
5
ir
o
d
o
a
S
s
s
nto
NDICES
as
iz
C
u
e
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
sim
F
P
C
8
6
.
1
01
ndices
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
a
ar
o
us
lus
c
x
O ndice de um livro
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
25
ndices
"
4
9
.
5
B-tree (normal):
Utilizado para otimizar alta cardinalidade.CPF
Bitmap:
4
-5
a
S
s
8
6
.
1
01
s
nto
Function Based:
ro
i
m
s
as
Domain Indexes:
od
iv
s
u
ndices
cl mais complexos para atender situaes especiais, tais
x
o e grandes pesquisas textuais ou pesquisas de dados
como:
s
u
a geogrficos.
r
a
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
26
ndices
"
ndices so objetos que servem para otimizar 1o-54acesso
4
9
.
aos dados de uma tabela;
85
1.6
1
0
F
A indexao feita no nvel de coluna(s)
e sua
P
C
s
manuteno realizada automaticamente
pelo
to
n
a
S
Oracle Database;
os
ro
i
m
si degradam as atualizaes.
s
Otimizam consultas, mas
a
C
eu uma tabela degrada em mdia
Cada ndice criadolizem
"E
e
3X cada atualizao
(INSERT, UPDATE, DELETE ou
d
o
MERGE); clusiv
x
e
o
s
u
No 12c,
ra
a
P
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
27
ndices
"
4
-5
4
9
.
5
8
6
.
1
01
Automaticamente:
Manualmente:
s
nto
S desejadas.
Usurio pode criar ndices nas colunas
os
ro
i
m
s
as
C
u
Devem ser criados
e principalmente:
liz
"E
e
Nas colunas utilizadas
em filtros ou ligaes de consultas
d
ivo
s
frequentes;
lu
c
x
e
o
Tabelas
s grandes
au
r
a
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
28
"
4
-5
4
9
.
5
ir
o
d
o
a
S
s
s
nto
SINNIMOS
as
iz
C
u
e
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
sim
F
P
C
8
6
.
1
01
Sinnimos
"
4
5
Sinnimos so objetos que simplificam o acesso
1- a
4
.9
5
outros objetos do Banco de Dados, tais como:
8
6
.
1
Tabelas, sequncias, vises, procedures, funesFe01packages;
CP
s
o
t
an
S
Permitem criar referncias locais
a objetos de outros
s
o
d
ro
i
usurios;
sim
s
a
C
u
e
z
i
El ou privados;
Podem ser pblicos
"
e
d
ivo
s
clu
x
O usurio
o e que est criando o sinnimo deve ter
s
au
r
privilgios
de acesso aos objetos que esto sendo
Pa
referenciados.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
30
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
a
S
Captuloos9
d
ro
i
sim
s
a
C
u
s
nto
F
P
C
8
6
.
1
01
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Introduo
"
4
-5
4
9
.
5
8
6
.
1
01
Fsistema e de
Conceitos e gerenciamento de privilgios de
P
-C
s
objetos;
nto
a
S
s
d
ro
i
Como consultar privilgios sde
im sistema, objetos e roles.
as
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Viso geral
"
4
-5
s
as
Privilgios de esistema;
uC
iz
El
"
e
d
o
Privilgios
iv de
s
u
cl
x
oe
s
au
r
Roles.
Pa
objetos;
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Privilgios de sistema
"
Permitem realizar determinadas aes dentro1-do
54
.94
Banco de Dados, tais como: criar, alterar e85apagar
.6
1
1
usurios e objetos;
0
F
P
C
s
So concedidos ou revogados porntousurios com
a
S
privilgios administrativos (DBAs);
os
d
ro
i
sim
s
Existem mais de 100 privilgios
de sistema
a
C
u
e
disponveis;
z
i
El
"
e
d
ivosistema mais comuns que devem ser
Privilgios de
s
clu
x
concedidos
o e a um desenvolvedor: CREATE SESSION,
s
a u TABLE, CREATE SEQUENCE, CREATE VIEW e
CREATE
r
Pa
CREATE PROCEDURE.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Privilgios de objeto
4"
5
Dados,
14
5.9
os
d
So concedidos por usurios
com privilgios
ro
i
sim
s
a
administrativos ouu Cpelos
donos dos objetos;
ize
l
"E
e
d
o
Privilgiosusde
objeto existentes: INSERT,
iv
cl
x
SELECT,
o e UPDATE, DELETE, ALTER , INDEX e
s
au
r
Pa
REFERENCES.
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
-5
4
9
.
5
a
S
s
s
nto
F
P
C
8
6
.
1
01
o
d
Roles e consultas
de
ro
i
sim
s
privilgios
Ca
u
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
Roles
4"
5
Roles contm grupos de privilgios que941podem
5.
8
ser atribudos aos usurios para facilitar
o
1.6
1
0
F
P
gerenciamento de privilgios;s - C
nto
a
sS
o
d
Existem muitas roles pr-definidas
no Oracle
ro
i
sim
s
a facilitar a atribuio de
Database que podem
C
u
e
z
li
E
"
privilgios para
e usurios que necessitam de
d
ivo
s
privilgios
clu para executar tarefas especficas,
x
oe
s
como
a upor exemplo, a role DBA;
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Roles
4"
5
Roles podem conter, alm de privilgios,
14
.9
5
8
6
.
outras roles;
1
01
F
P
-C
s
Roles podem conter senhas,
ntoque exigem que o
a
sS
o
d
usurio fornea-a antes
ro de receber os seus
i
sim
s
a a partir do 11G,
privilgios. Somente
C
u
e
z
li
E
"
obrigatrio odefornecimento desta senha (atravs
ivo
s
de uma instruo
SQL).
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Roles
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
10
Consultando privilgios
"
4
-5
4
9
.
5
Viso do DD
8
6
.
1
Descrio
01
F
P
Privilgios de sistema concedidos
s roles
-C
s
to
n
a
Privilgios de tabelas
S concedidos s roles
s
o
d
Roles acessveis
ro pelo usurio logado
i
sim
s
a de sistema concedidos ao usurio logado.
Privilgios
C
u
e
z
i
El
"
e
ROLE_SYS_PRIVS
ROLE_TAB_PRIVS
USER_ROLE_PRIVS
USER_SYS_PRIVS
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
11
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Captulo 10 a
S
os
d
o
s
nto
F
P
C
8
6
.
1
01
ir vises do
Consultando
m
i
ss
a
C
Dicionrio
de
Dados
u
e
iz
El
"
e
d
o
iv
ra
a
P
o
us
lus
c
x
Viso geral
"
4
-5
4
9
.
5
8
6
.
1
01
e
liz
ra
a
P
o
us
iv
s
u
l
xc
s
Ca
"E
e
d
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
4
-5
nt
a
S
El
"
e
d
o
composto
iv basicamente de tabelas
s
u
cl
x
e
visesusoacessveis
pelos usurios.
ra
a
P
base e
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Vises do DD
"
Prefixo
Descrio
F
P
C
USER
4
9
.
5
8
6
.
1
01
ir objetos que so de
Permite visualizar
m
i
ss
a
Cdo usurio logado + objetos de
propriedade
u
ize
l
"E
outrosdeusurios
que ele pode acessar
ALL
ivo
s
Permite
clu
x
oe
DBA
V$
4
-5
s
u
a
ar
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Consultando as vises do DD
"
4
-5
F
P
C
iv
s
u
l
xc
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Adicionando comentrios
4"
5
Adicione comentrios nas tabelas e colunas
14
.9
5
8
6
.
para permitir um entendimento mais
fcil do
1
01
F
P
modelo de dados.
-C
s
nto
a
sS
o
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
"
4
-5
4
9
.
5
ir
o
d
o
FIM
sim
e
liz
ra
a
P
o
us
iv
s
u
l
xc
"E
e
d
s
Ca
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
Aprendendo SQL
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
Fbio Prado
www.fabioprado.net
www.fabioprado.net
a
S
s
s
nto
F
P
C
8
6
.
1
01
"
4
-5
4
9
.
5
o
d
o
a
S
s
ir
Final
m
i
s
s
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
s
nto
F
P
C
8
6
.
1
01
Dicas finais
"
1
Guia Oracle Database SQL Language Reference 11g Release 21(11.2)
E41084-02
0
F
Guia Oracle Database SQL Language Reference 12c Release
CP 1 (12.1) E17209-14
s
Artigos sobre SQL e SQL/Tuning do Blog FABIOPRADO.NET
o
t
an
S
os
d
Para obter mais informaes
ro sobre as certificaes da
i
sim Certification;
Oracle, acesse o site Oracle
s
a
C
u
e
z
i
El
"
Recomendo fortemente
estudar algum simulado ou livro
e
d
voltado para siavo certificao, das empresas abaixo, antes
clu
de fazer oexexame
desejado:
so
KaplanuSelfTest
ra
a
P
Sybex
Oracle Press
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Livros indicados
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Dump X Simulado
Dumps ou Braindumps so ilegais
qualidade;
F
P
C
4"
5
e de94baixa
15.
8
1.6
1
0
s
Simulados so preparados por
nto empresas
a
S
s
o
srias e contm explicaes
precisas sobre as
d
o
ir
m
i
questes.
ss
a
C
u
ize
l
"Ese um determinado material
Para descobrir
e
d
o
iv
s
u
l
dump ouxcsimulado,
faa uma pesquisa no
oe
s
site:ra u
Pa
http://www.certguard.com/Search.asp
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Dump X Simulado
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Dump X Simulado
"
4
-5
4
9
.
5
sim
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Blog
"
sim
o
d
o
a
S
s
s
nto
F
P
C
4
-5
4
9
.
5
8
6
.
1
01
ir
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Facebook
"
4
-5
41
CURTA a pgina do blog FABIOPRADO.NET
no
9
.
5
8
6
.
1
FACEBOOK para acompanhar:
01
s
nto
F
P
C
Sa e TI, em geral;
Novidades e notcias sobre Bancos de sDados
Oportunidades de emprego.
sim
o
d
o
ir
a
C
u
liz
E
e"
d
o
iv
http://www.facebook.com/DBAFabioPrado
us
s
u
a
ar
cl
x
e
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
Twitter
"
4
-5
s
nto
PF
sim
os
d
o
ir
a
C
u
liz
E
e"
d
o
ivhttp://twitter.com/dbafabioprado
ra
a
P
o
us
lus
c
x
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
10
YouTube
4"
5
Inscreva-se no canal do YouTube do DBA/Instrutor1Fbio
4
.9 TI e
5
Prado para ver dicas gerais sobre Bancos de Dados,
8
6
.
1
carreira:
01
F
P
-C
s
nto
a
sS
https://www.youtube.com/user/fbifabio10
o
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
11
LinkedIn
4"
5
Se voc gostou do treinamento, POR FAVOR, deixe uma recomendao
1- no perfil
4
.9
do Fbio Prado no LinkedIn:
5
8
6
.
1
01
F
P
-C
s
nto
a
sS
o
d
ro
i
sim
s
a
C
u
e
z
i
El
"
e
d
ivo
s
clu
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
12
Referncias
"
4
-5
4
9
.
5
F
P
C
8
6
.
1
01
s
- Oracle Database SQL Language Reference
11g Release 2 (11.2)
o
t
an
S
E41084-02
s
o
d
o
ir
m
i
- Oracle Database SQL Language
ss Reference 12c Release 1 (12.1)
a
C
u
E17209-14
ize
l
"E
e
d
o
iv
s
u
cl
x
oe
s
au
r
Pa
www.fabioprado.net
janeiro de 15
Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.
13
"
4
-5
4
9
.
5
sim
a
C
u
liz
E
e"
d
o
iv
ra
a
P
o
us
lus
c
x
ir
o
d
o
a
S
s
s
nto
F
P
C
8
6
.
1
01