Sei sulla pagina 1di 195

"

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

Ensinar o aluno a escrever instrues .SQL


41
9
85
6
.
para acessar e atualizar dados em011SGBDs
F
P
-C
Oracle, e criar/gerenciar objetos,
tais
como:
s
nto
a
S
tabelas, ndices, vises deosoutros;
ro
i
m

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

serviro para referncias futuras.

www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

Contedo programtico
"

1. Introduo

4
-5

4
9
.
5

2. Recuperando dados com a instruo SELECT 1.68


1
3. Utilizando funes em instrues SQL

s
nto

PF

4. Utilizando agrupamentos e funesSade grupo


os
d
o

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

10. Consultando vises no Dicionrio de Dados


www.fabioprado.net
janeiro de 15

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.

1Z0-051 x Aprendendo SQL


"

4
-5

4
9
.
Aprendendo
SQL
85

Exame 1Z0-051

.6

2. Recuperando dados com


11 a instruo SELECT

Retrieving Data Using the SQL SELECT Statement


Restricting and Sorting Data
Using Single-Row Functions to Customize Output
Using Conversion Functions and Conditional Expressions
Reporting Aggregated Data Using the Group Functions
Displaying Data from Multiple Tables

liz
E
e"

Using Subqueries to Solve Queries


Using the Set Operators

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

Using DDL Statements to Create


ex and Manage Tables

8. Utilizando instrues DDL

Creating Other Schema


Objects
P

8. Utilizando instrues DDL

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:

-OPN Certified Specialist;

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.

1Z0-061 x Aprendendo SQL


"

4
-5

4
9
.
Aprendendo
SQL
85

1Z0-061

1.6
1
0

Introduction

1. Introduo

Retrieving Data Using the SQL SELECT Statement

2. Recuperando dados
CP com a instruo SELECT

Restricting and Sorting Data


Using Single-Row Functions to Customize Output
Using Conversion Functions and Conditional Expressions

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.

Reporting Aggregated Data Using the Group Functions


as

4. Utilizando agrupamentos e funes de grupo

Displaying Data from Multiple Tables Using Joins


ze

5. Recuperando dados de mltiplas tabelas e subqueries

Using Subqueries to Solve Queries

5. Recuperando dados de mltiplas tabelas e subqueries

od

iv

s
clu

i
El
"
e

uC

6. Utilizando operadores de conjunto

Manipulating Tables using DML


ex statements

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
"

Neste captulo veremos:

4
-5

4
9
.
5

Conceitos de Bancos de Dados Relacionais e Bancos


de Dados
1.6
1
0
F
Objeto-Relacionais;
P
-C
s
Conceitos de Modelo Entidade-Relacionamento;
nto
a
sS
Conceitos de instrues SQL;
o
d
ro
i
Classificao das instruessim
SQL;
as
C
Novos recursos do Oracle
u Database 12c;
e
liz
E
Conceitos do Oracle
e " Cloud 12c.
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.

Banco de Dados Relacional


"

4
-5

Edgar F. Codd, pesquisador da IBM, props


o
41
9
.
85
6
.
1
modelo para sistemas de BD relacional
em
01
F
P
1970 e este modelo tornou-seosa- Cbase dos
nt
a
SGBDRs;
sS
o
d
ro
i
m

C
u
e

s
as

Em 1979, foi lanado


o
Oracle
2,
o
primeiro
BD
iz
l
"E
e
d SQL) comercializado no
o
relacional (com
iv
s
u
cl
x
mundo;so e
au
r
a

www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

Banco de Dados Relacional


"

4
-5

1
A estrutura bsica de um SGBDR contm:
.94

Coleo de objetos ou relacionamentos;

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

uma representao da realidade composta


41
9
.
85
6
.
1
basicamente por entidades, relacionamentos
01
F
P
-C
e atributos;
s
o
os
d
o

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.

Banco de Dados Objeto Relacional


"

4
-5

Um sistema de gerenciamento de BD Objeto41


9
.
85
6
.
1 SGBDR;
relacional (SGBDOR) similar a um
01
s
nto

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

Para mais informaes, consulte o link:


http://en.wikipedia.org/wiki/Object-relational_database.
www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

O que SQL?
"

4
-5

SQL = Structured Query Language


41
9
.
5
8
6
.
1
01

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

 1 verso da linguagem, consiste basicamente-na


CPlinguagem inicial criada
s
o
pela IBM.
t
n

SQL-99:

sim

o
d
o

a
S
s

ir

 Verso que teve a implementao


de mais recursos novos significativos,
as
C
u
entre eles: expresses eregulares,
queries recursivas, triggers, LOB;

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

Padro ANSI x dialetos


"

Todo SGBDR possui comandos SQL especficos que no


54
41
9
.
pertencem ao padro ANSI. Estes comandos so85extenses
.6
1
1
conhecidas como dialetos;
0
F
P
C

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

Padro ANSI x dialetos


"

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

Grupos de instrues SQL


"

4
-5

A linguagem SQL subdividida em.9414


85
6
.
1
grupos:
01
DML (Data Manipulation Language):ntos

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:

 COMMIT, ROLLBACK e SAVEPOINT.


www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

13

Grupos de instrues SQL


"

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

Fonte: Oracle Corporation

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

Novos recursos do Oracle 12c


Melhorias em instrues SQL, tais como:

"

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

u backup via RMAN, tais como:


Melhorias em operaeslizede
E

"
Restaurar uma ou maisetabelas;
d
Cross-Plataform Backup
ivo and Restore;
lus
c
x

o Multitenant;
Arquitetura
us
ra
a
P

Para mais detalhes, leia no blog FABIOPRADO.NET o artigo


Novidades do Oracle Database 12c (Parte 1).
www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

16

EM Cloud Control 12c


Evoluo do EM Grid Control

"

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

Fonte: Oracle Corporation

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

Para mais informaes, leia no blog FABIOPRADO.NET o artigo:

Instalando o schema de exemplo HR.

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
"

Neste captulo veremos:

4
9
.
5

Conceitos de projeo e seleo;


Sintaxe bsica das instrues SELECT;

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

Para executar uma instruo SQL importante


41
9
.
85
6
.
1
entender 2 conceitos bsicos:
01
Projeo:

s
nto

F
P
C

 Colunas de uma ou mais tabelas a serem


s S recuperadas;

o
d
o

 PROJEO = Lista de colunas. ir

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;

- Aps a clusula FROM, deve(m) ser especificada(s) a(s) tabela(s).


www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

Caractersticas gerais
"

As instrues SQL no so case-sensitive;

4
-5

4
9
.
5

As clusulas podem ser separadas em linhas


1.6
1
0
F
diferentes e identadas para facilitarCPo entendimento;
s
nto

a
O terminador ; requerido somente
no SQL Plus ou
S
s
o
d
quando so executadas N iinstrues;
ro
im

s
as

Aliases ou apelidos eso


u C opcionais e no requerem os
liz
E
" quando a palavra no contm:
delimitadores
de
o
Caracteres especiais,
tais como o espao em branco;
siv

lu
c
x
Palavras ereservadas.
so
u
ra
a
A palavra
reservada
P

AS que precede um alias de uso

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

facilitar a visualizao e entendimento.

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

Quando ao estring possui aspas simples em seu contedo,


s
u
utilize
ra um delimitador customizado atravs do
a
P
operador
de notaes q.
www.fabioprado.net
janeiro de 15

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

Para restringir dados necessrio utilizar


a
41
9
.
85
6
.
clusula WHERE com um ou mais011
F
P
C
operadores de comparaotoe,
s - se
an
S
s
ooperadores
necessrio, um ou mais
lgicos.
d
o
sim

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

Obs.: Para sobrescrever as regras de precedncia, utilize parnteses.


www.fabioprado.net
janeiro de 15

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 ordenao pode ser realizada em uma


ou
41
9
.
85
6
.
1
mais colunas, utilizando modos crescente
e
01
F
P
- Cdesejada;
decrescente, em cada coluna
s
to
o
d
o

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
"

Neste captulo veremos:

4
9
.
5

Viso geral e tipos de funes;


Single-row functions;
Formatao de datas;
o
d
o

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

As funes podem ser utilizadas, em


8
6
.
para as seguintes finalidades:
1
01
Converter valores;
Transformar valores;
Realizar clculos.
sim

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

Podem ser aninhadas.


www.fabioprado.net
janeiro de 15

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

Fonte: SQL Functions Oracle Site: www.dotnetspider.com

www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

Tipos de funes
"

Existem 2 tipos de funes SQL:


Single-row functions:
 Funes que retornam um valor por linha.s -

Multiple-row functions:

sim

os
d
o

F
P
C

4
-5

4
9
.
5

8
6
.
1
01

nto
a
S

ir

 Funes que retornam umasvalor para N linhas;

C
u
e

 So utilizadas com agrupamentos.


liz

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

Fonte: SQL Functions Oracle Site: www.dotnetspider.com

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

 TO_CHAR, TO_NUMBER e TO_DATE;

Gerais:
s
nto

 NVL, NVL2, NULLIF, COALESCE e DECODE.

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

Trabalhando com datas

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
-

Retorna o prximo sculo se a data informada entre 0 e 49;

Retorna o sculo atual se a data informada entre 50 e 99.


www.fabioprado.net

janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

12

Trabalhando com datas

"
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

Converses explcitas X implcitas

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

Converses explcitas X implcitas

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

Se entre 2 valores 1 for DATE, o Oracle converte o outro para


DATE tambm.

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
"

Neste captulo veremos:

4
9
.
5

Viso geral de agrupamentos;


Funes de grupo e funes agregadas;

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.

Viso geral de Agrupamentos

"
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

resultado por grupo;


www.fabioprado.net
janeiro de 15

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:

"

COUNT: retorna o total de linhas;


SUM: retorna a soma de valores;
AVG: retorna a mdia de valores;
MAX: retorna o valor mximo;
MIN: retorna o valor mnimo;sim

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

Consideraes gerais sobre o uso de 941


5.
8
agrupamentos e funes de grupo:
1.6
1
0
F
P
C

As funes de grupo ignoram valores nulos,


portanto, uma boa
s
o
t
n
prtica usar NVL;
Sa
os
d
o

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

P possvel aninhar as funes de grupo.

www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

Funes analticas
"

4
-5

Pesquise sobre funes analticas para


41
9
.
85
6
.
desenvolver queries com agrupamentos
mais
1
01
F
P
C
complexos;
sos
d
o

nto
a
S

Elas podem ser utilizadas


em conjuntos de
ir
m
i
ss
a
C
linhas independentes
do agrupamento;
u
e
iz

El
"
e

d
o
iv

Melhoramlusa produtividade e so mais


xc
e
so
performticas
do que instrues SQL com
u
a
r
Pa
funes similares customizadas.
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

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
"

Neste captulo veremos:


Viso geral de relacionamentos;

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

Use apelidos curtos para qualificar as941


5.
8
tabelas, ao invs do nome delas; 011.6
s
nto

F
P
C

Use os apelidos das tabelas


a para referenciar
S
os
d
as colunas (obrigatrio
ro a partir do 11G
i
sim
s
a
C
quando houver colunas
com nomes ambguos);
eu
iz

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

Subqueries devem estar contidas entre941


5.
8
parnteses;
1.6
1
0
F
P
C

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:

>

Maior ou igual que:

>=

Menor que:

<

Menor ou igual 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

Compara um valor a todos os valores da lista:

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

Subqueries que retornam apenas um


8
6
.
linha e 1 coluna) so conhecidas como
1
01
F
P
C
subqueries escalares;
s-

(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

Subqueries correlacionadas possuem 941


5.
8
relacionamento com a query principal;
1.6
1
0
F
P
C

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
"

Neste captulo veremos:

4
-5

Viso geral dos operadores de conjunto;

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

Os operadores de conjuntos permitem


ou
85 unindo o
subtrair dados de instrues SQL distintas,
6
.
1
01
F
resultado delas;
P
C
a

s
nto

As instrues SQL se integram


s S e passam a compor
o
od
r
i
uma s instruo;
sim
s

a
C
u

liz SQL devem ter a mesma qtde. e


Todas as instrues
E
e"
d
o
tipo de colunas
siv da 1 instruo;
clu
x
e

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

Permite subtrair os dados de 2 ou mais941


5.
8
conjuntos;
1.6
1
0
F
P
C

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
"

Neste captulo veremos:

4
9
.
5

Conceitos de instrues DML;


Instrues INSERT, UPDATE e MERGE;
INSERT Multitable;
Instrues DELETE e TRUNCATE;do

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

Conceitos e utilizaoe de transaes.


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

Conceitualmente DML abrange as instrues


41
9
.
85
6
.
1
SELECT, INSERT, UPDATE e DELETE,
porm
01
F
P
- C normalmente
na documentao da Oracle,
s
nto
a
DML se refere somente
s S s instrues que
o
d
ro
i
im
atualizam dados: INSERT,
UPDATE e DELETE;
ss
a
C
u

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

instruo e evitar possveis erros futuros.


www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

INSERT
"

4
-5

Valores nulos so inseridos nas colunas no 41


.9
5
8
referenciadas na instruo;
6
.
1
F
P
C

01

possvel inserir mltiplas linhasosubstituindo


a
s
t
an
S
contendo uma
clusula VALUES por uma subquery
s
o
d
o
r
i
instruo SELECT;
im
s

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

Podemos alterar 1 ou N linhas por vez;941


.

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

Utilize a instruo MERGE para realizar


41
9
.
85
processamento UPSERTs: INSERT ou UPDATE;
6
.
1
Sintaxe:

s
nto

F
P
C

01

MERGE INTO tabela_destino apelido_origem


sS

o
d
o

USING (tabela_origem | viso | subquery)


apelido_destino
ir
ON (condio_de_ligao) C
u
WHEN MATCHED THEN lize
UPDATE SET

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

SELECT FOR UPDATE

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

Ao executar um comando COMMIT ou ROLLBACK


 COMMIT efetiva a transao;
 ROLLBACK desfaz a transao

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

Consideraes gerais sobre transaes:


1
94

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

Utilizando instrues DDL


e

liz
E
e"

d
o
iv

ra
a
P

o
us

lus
c
x

Introduo
"

Neste captulos veremos:

4
9
.
5

Regrais gerais para criar objetos;


Criao, deleo e alterao de tabelas; PF
C
Principais tipos de dados;

a
S
s

4
-5

8
6
.
1
01

s
nto

Criao e manuteno de constraints,


vises, sequncias,
o
d
ro
i
ndices e sinnimos.
sim
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.

Viso geral
"

Ao executar instrues DDL as transaes existentes


54 so
41
9
.
commitadas automaticamente. TRUNCATE uma
5 instruo
8
1.6
DDL;
1
0
Instrues DDL no so transacionais;
a
S
s

s
nto

F
P
C

Evite executar instrues DDL nos


o BDs de produo no horrio
d
rocursores e podem causar locks
i
comercial, pois elas invalidam
sim
s
nas tabelas;
Ca
u

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

delimitado por aspas duplas (no recomendado);


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

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
"

Para criar uma tabela necessrio:


Ter o privilgio CREATE TABLE;

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.

Principais tipos de dados


Tipo de dado

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

Dados binrios de tamanho varivel (entre 8 TB e 128 TB).

Dados binrios armazenados em arquivos externos (at 4 GB)


Referncia: (http://docs.oracle.com/cd/B28359_01/server.111/b28320/limits001.htm)
www.fabioprado.net

janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

Constraints
"

Crie constraints nas tabelas para:

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

Tipos de constraints vlidas:os Sa

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

CHECK: Expresso para validar/restringir valor de entrada.


www.fabioprado.net
janeiro de 15

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

Criando constraint no nvel da tabela:941


.

85
6
.
1
01

CREATE TABLE [schema].tabela

(coluna tipo_dado [DEFAULT expresso]


PF
[coluna_constraint],
o
d
o

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),

utilizar triggers INSTEAD OF para permitir atualizaes em


vises complexas.

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

Restringe acesso a dados no autorizados; F


CP
Facilita o gerenciamento de acesso aos
os dados;

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] ]

[ WITH READ ONLY [CONSTRAINT constraint] ];


www.fabioprado.net
janeiro de 15

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

Valores podem ser reciclados e/ou colocados em cache para otimizar o


acesso.
www.fabioprado.net

janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

19

Sequncias
"

Sintaxe:

4
-5

4
9
.
5

CREATE SEQUENCE nome_sequencia


[INCREMENT BY n]
[START WITH n]

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

 Retorna valores nicos mesmo se ela for chamada


por usurios
s
to
diferentes;
an
os
d
o

CURRVAL:

ir

 Retorna o valor atual de uma


simsequncia;

as

 O usurio tem que chamar


u C NEXTVAL previamente.

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

Se o BD for reiniciado (este item pode ser contornado).

www.fabioprado.net
janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

22

Sequncias
"

Para modificar uma sequncia:


Execute o comando ALTER SEQUENCE .;

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
"

Podem ser de 4 tipos:

4
9
.
5

B-tree (normal):
 Utilizado para otimizar alta cardinalidade.CPF

Bitmap:

4
-5

a
S
s

8
6
.
1
01

s
nto

 Utilizado para otimizar baixa cardinalidade.


do

Function Based:

ro
i
m

s
as

u consultas que utilizam funes.


 Utilizado para otimizar
e
z
i
El
"
e

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

podemos criar mais de 1 ndice na mesma


coluna, mas somente 1 deles deve estar visvel.
www.fabioprado.net

janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

27

ndices
"

Podem ser criados de 2 formas:

4
-5

4
9
.
5

8
6
.
1
01

Automaticamente:

 O Oracle cria ndices automaticamente paraPFtoda PK e UK.

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

(em tabelas pequenas normalmente eles so ignorados);

PQuando a consulta retorna poucas linhas ou quando poucas


linhas so ligadas.
www.fabioprado.net
janeiro de 15

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

Utilizando instrues DCL


e

liz
E
e"

d
o
iv

ra
a
P

o
us

lus
c
x

Introduo
"

Neste captulo veremos:

4
-5

4
9
.
5

8
6
.
1
01

Viso geral das instrues DCL;

Fsistema e de
Conceitos e gerenciamento de privilgios de
P
-C
s
objetos;
nto
a
S
s

Conceitos e gerenciamento de roles;


o

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

O controle de acesso uma das tarefas


do
41
9
.
85
6
.
1 meio da
DBA e pode ser realizado por
01
F
P
-C
concesso (GRANT) ou revogao
(REVOKE)
s
nto
a
de:
sS
o
d
ro
i
m

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

Atuam sobre os objetos do Banco de


8
6
.
concedendo ou revogando privilgios
que
1
01
F
P
C
permitem acessar/atualizar dados;
snto
a
S

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
"

Neste captulo veremos:

4
-5

4
9
.
5

8
6
.
1
01

O que o Dicionrio de Dados;

FDados para obter


Como pesquisar vises do Dicionrio de
P
-C
s
informaes sobre objetos do BD;
nto
a
S
s

Como adicionar comentrios em otabelas e como consultar estes


d
o
r
i
comentrios.
im
s

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.

O que o Dicionrio de Dados?


"

4
-5

O Dicionrio de Dados (DD) um conjunto


de
41
9
.
85
6
.
objetos que possui os metadados011 de todo o
F
P
-C
BD;
s
o
os
d
o

nt
a
S

Seus objetos residem


no
schema
SYS
e
r
i
sim
s
a
C
tablespace SYSTEM;
eu
iz

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

Permite visualizar objetos


- que so de
s
nto
a
propriedade do usurio
logado
sS
o
d
o

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

visualizar todos os objetos do BD

Dados dinmicos relacionados performance


www.fabioprado.net

janeiro de 15

Aprendendo SQL
2014 Fbio Prado. Todos os direitos reservados.

Consultando as vises do DD
"

4
-5

A viso DICTIONARY contm o nome


e
41
9
.
85
6
.
1
descrio de todas as tabelas e vises
do DD;
01
s
nto

F
P
C

Se voc quer visualizarSa objetos do seu


os
d
prprio schema consulte
as
vises
USER_
ou
ro
i
sim
s
a
C
consulte ALL_, filtrando
dados
pela
coluna
u
ize
l
"E
OWNER;
e
d
o

iv
s
u
l
xc

o e se voc tiver privilgios de DBA,


Somente
s
au
r
Pa
consulte
as vises DBA_.

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
"

Aqueles que desejam aprender mais sobre SQL, 1-54


4
9
.
recomendo a leitura dos seguintes itens:
85
.6

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
"

Acompanhe os artigos do blog FABIOPRADO.NET em:


http://www.fabioprado.net

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

Novidades e notcias do blog;

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

SIGA o twitter do DBA FABIOPRADO.NET para


41
9
.
85
6
.
acompanhar:
11
Novidades e notcias do blog;

s
nto

PF

Novidades e notcias sobre Bancos de Dados


Sa e TI, em geral;
Oportunidades de emprego.

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
"

- Blog do DBA/Instrutor FABIOPRADO


- Oracle Certification

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

Potrebbero piacerti anche