Sie sind auf Seite 1von 24

# SERVIO NACIONAL DE APRENDIZAGEM COMERCIAL

LINGUAGEM SQL

LINGUAGEM SQL
1 Edio

Elaborao e Edio

Linguagem SQL

1 edio

24 pp.
Sumrio

## INTRODUO AO SQL .......................................................................................................................................... 5

CARACTERSTICAS DA SQL ................................................................................................................................. 5
CARACTERSTICAS DO SQL ................................................................................................................................. 8
COMANDOS DO SQL ............................................................................................................................................ 8
CREATE DATABASE ....................................................................................................................................... 8
DROP DATABASE............................................................................................................................................ 8
CREATE TABLE ............................................................................................................................................... 9
INSERT .............................................................................................................................................................. 9
SELECT ........................................................................................................................................................... 10
ORDER BY ...................................................................................................................................................... 10
WHERE ........................................................................................................................................................... 11
IS NULL E IS NOT NULL ................................................................................................................................. 13
BETWEEN ....................................................................................................................................................... 13
LIKE ................................................................................................................................................................. 13
IN ..................................................................................................................................................................... 14
UPDATE .......................................................................................................................................................... 14
FUNES DE GRUPO ................................................................................................................................... 15
COUNT ............................................................................................................................................................ 15
SUM, AVG, MAX, MIN, STDDEV, VARIANCE ................................................................................................ 16
GROUP BY (AGRUPAMENTO) ........................................................................................................................... 16
HAVING ........................................................................................................................................................... 17
PESQUISA EM TABELAS RELACIONADAS (JOIN) ................................................................................................. 17
UNIES INTERNAS (INNER JOIN) ................................................................................................................ 18
UNIO DE VRIAS TABELAS ....................................................................................................................... 19
UNIES EXTERNAS (OUTER JOIN) ............................................................................................................. 19
FUNES NO SQL ............................................................................................................................................ 20
FUNES MATEMTICAS ............................................................................................................................ 21
SUBCONSULTAS (SUBSELECTS) ............................................................................................................... 21
SUBCONSULTAS DE MAIS DE UMA LINHA ................................................................................................ 22
IN ..................................................................................................................................................................... 22
ANY ................................................................................................................................................................. 22

3
ALL .................................................................................................................................................................. 23
EXISTS ............................................................................................................................................................ 23
UNION ............................................................................................................................................................. 24
INTERSECT .................................................................................................................................................... 24
EXCEPT DISTINCT ......................................................................................................................................... 24

4
I NTRODUO AO SQL
A L in gu agem SQL (Struc ture d Que r y La ng uag e) u tiliza da par a co nsu l tar e man ip ular
in fo rma es so bre branc os de dad os re lac ion ais .
Existem alg umas pe qu enas difere nas d o mod elo re lac io na l e o SQL :
Re la o : ch amamos de tabe la
Atr ibu to : ch amamos de linh a ou r eg is tro .
Po dem e xis tir linhas d up lic ad as.
T i pos d e da dos s o limitados

C ARACTERSTICAS DA SQL
A L i ngu age m SQ L u m a lingua ge m s imples e fc il, c ase inse nsitive se ndo muito
p r xima ao ing ls . N o necess r io con hec imen to p r vio de lg ica de p rogr ama o .
Es ta L in gua ge m n o p ossu i contro le de fluxo , la os , e tc .O SQL se pre ocupa em o que
faz er e no como faze r . Pod e oc orre r que de pen den do do Banc o d e Dad os , es te n o
p ossua e xa tamen te o co ma ndo mos trad o nes te mater i al, mas na gran de ma ior ia d as
v ez es pos s u i u m c o ma ndo equ i va le n te .

Existem vr ios padr es d e SQL :

## Ano Nome Outro Nome Caractersticas

1986 SQL-86 SQL-87 homologado pela ISO/ANSI em 87
1989 SQL-89 pequenas mudanas
1999 SQL-99 SQL3 orientao a objeto
2003 SQL-2003 suporte a xml

## Par a um me lh or apr ove i ta me n to do co n ted o s uge rimos a cr iao d o mod e lo a se gu ir

p ara que o a lu no possa aco mpan har os coman dos compar and o co m os resu lta dos aqu i
impressos .

5
Informaes das tabelas:

Tabela Clientes

Tabela Fornecedores

6
Tabela Produtos

Tabela Pedidos

Tabela DetalhePedidos

7
Tabela CategoriaProdutos

C ARACTERSTICAS DO SQL
Co m a Lingu age m SQL pod emos:
Cr iar , altera r e e xc lu ir es tr u tur as ( ta be las , n dic es ...) de banc os de dad os .
Co nsu l tar e alterar infor ma es co n tidas no banc o .
Altera r permiss es d e ac esso as in fo rma es .

## O SQ L po de s er d i vid id o e m 3 sub l ing ua gens :

D a t a D ef i nit i on L an gu ag e ( D D L)
Co ma ndos d os SQL qu e a tu am so bre a es tru tura das en tid ades , co mo ta be las b ancos e
n dic es .
Exemplos : CREATE, ALTER, DROP.

## Da ta M an ip u lat ion La ng ua ge(DM L)

Co ma ndos SQL qu e a tu am s obre os dad os .
Exemplos : SELECT, IN SERT, UPDATE, DELETE.

DC L (Dat a Co nt ro l Lan gu ag e)
Co ma ndos q ue a tua m so bre as pe rmisses d e acess o .
E x e mp los : GR AN T e R E VO K E .

C OMANDOS DO SQL
CREATE DATABASE
U tilizamos o comando CR EATE D ATABASE pa ra cr iarmos um b anco de dados em
SQL.
S i n ta x e : C R E AT E D AT A B A S E [No m e D o B a n c o ] ;
E x e mp los :
CR EATE DATABASE Financ eir o ; // cr ia um banco c hamado financeir o
CREATE DATABASE Empres a; // cr ia um banco chamado Em presa

DROP DATABASE
O comando DROP DATABASE utiliz ado par a e xc lu i r t o d o o b a n c o d e d a d o s e s u a s
es tr u tur as i n te r nas ( ta be las , n di c es . . .) , p or is s o d e ve s er e xec uta do c o m c a u te la !
S i n ta x e : D R O P D AT AB A S E [N o m e D o Ba n c o ] ;
E x e mp los :
D RO P DATAB A S E Empr es a; / / ex c lui o banco Empresa previamente criado.
DROP D ATABASE Financeiro; // exc lui o banco Financeir o previamente cr iado.

8
CREATE TABLE
U tiliza mos o CR EAT E T ABL E para cr iar tabe las no b anc o de dados .

S i n ta x e : C R E AT E T AB L E [No meDa Ta be la ]
(
[ C a mp o1 ] [T i po ] ,
[ C a mp o2 ] [T i po ] [ Ar gum en t os ] ,
[ C a mp o3 ] [T i po ] / / n o te q ue a qu i n o te m v r g ul a !
);

E x e mp los :
CREATE TABLE Cliente
(
C o d i g o IN T EG ER PR IM ARY K E Y ,
Nome VARCH AR(50) NOT NULL,
Enderec o VARCHAR(50),
Bairro VARCHAR(50)
);

## CREATE TABLE Dependente

(
C o d i g o IN T EG ER ,
Nome VARCH AR(50) NOT NULL,
Data Nasc Date ;
CodigoCliente INTEGER,
PRIMARY KEY(Codigo),
FOREIGN KEY(CodigoCliente) REFERENC ES Cliente(Codigo)
O N D E L ET E C AS C AD E
);

INSERT
U tiliza mos o c omand o IN SERT pa ra inser ir linhas em u ma ta be la.
S i n ta x e :
I N S ER T INT O [No meDa Ta be la ] V A LU E S ( va lo r 1 , va lor 2 , v al or3 . . .) ;
ou
INSERT INTO [NomeDaTabela] ( [C a m p o 1 ] ,[ C a m p o 2 ] , .. . ) V ALUES([va lor1],[valor2],[...]);
ou
I N S ER T INT O [No meDa Ta be la ] S E L ECT [ca mp os ] FRO M [T abe la ] ;

E x e mp los :
a ) IN SER T INT O Cl ie ntes
VALU ES (9,Jo rge da Silva ,8 76.0 86 .8 76- 85 ,77 667 -8 756 ,Rua Be la Vis ta,
78 ,Centro,Por to Aleg re ,R S,9 8 .7 83-17 8) ;

b ) IN SER T INT O CL IENT ES ( idC lien tes ,No me ) Values (1 0 ,Mrc io Silva) ;

9
SELECT
P ar a q ue poss am os pes qu isar os r eg is tr os u t i l iz a mos o c o man do S E LEC T . P o de mos
u tiliz ar u ma lis ta de co lu nas s ep ara das p or vr gu la ou * , s ig nifican do todas as co lun as
d a tab el a .
E x e mp los :
SELECT * FROM Clientes ;

## SEL ECT No me ,C id ade FRO M Clien tes ;

ORDER BY
Po demos or den ar nossas co nsu ltas p or u m ou ma is ca mp os . A o rde na o po de ser
asc end en te ( ASC) , q ue a p adr o , n o nec essitan do es pec ificar o u desc en den te
(D ESC) .
E x e mp los :
a ) Pes qu isar to dos os c l ie n tes o rden ados pe lo n ome de fo rma desce nde n te .

## b ) Pes qu isar to dos os c l ie n tes o rden ados por C PF

S E L ECT * F R O M C l i e n t e s O R D ER B Y C P F A S C

10
O per ador es ar itm ticos s o u tiliza dos q ue p ossa mos e fe tua r c lcu los ar itm ticos .

+ Soma dois nmeros 5,8 + 7,3 13,1
- Subtrai o segundo nmero do primeiro 9-2 7
* Multiplica dois nmeros 4 * -8 -32
/ Divide o primeiro nmero pelo segundo 7/2 3,5

E x e mp los :

## SEL ECT No me , Prec oCus to + 2 FR OM produ tos ;

Os oper ado res re lac io na is so u tiliz ados fr eq en te me n te p ara filtrar co nsultas .
O pe rad or R e su lt ad o ve r d a de ir o q ua nd o
= Ambos o per and os so igu ais
> O prime ir o ma ior que o seg undo
< O prime ir o me nor q ue o seg undo
>= O prime ir o ma ior ou igu al ao seg und o
<= O prime ir o me nor o u igu al ao se gun do
<> o u != Os oper and os so dife ren tes

WHERE
P o dem os r es tr i ng ir ( f il t r ar ) o r es u l ta do d e c o nsu l tas c o m a ins tr u o W H E R E .
S i n ta x e :
SELECT * FROM [Tabela] WHERE [con d io de filtr age m]

11
E x e mp lo :

## SEL ECT * FR OM Pr od u tos WH ER E Prec oCus to > 2

b ) P es qu is ar o pro du to c u jo no me i gu al a L im pa Fc il

## SEL ECT * FR OM Pr od u tos WH ER E No me = " L im pa F c il " ;

S o u tilizad os qu ando necess i ta mos c ompa rar d i ve rsas s en te nas .
OR OU Uma ou outra condio deve ser verdadeira
NOT NO Inverte o valor do operando

## Tabela de comparaes lgica

A B NOT A A AND B A OR B
NULL FALSO NULL FALSO NULL
NULL NULL NULL NULL NULL

E x e mp lo :

## P es qu is ar os pro du tos q ue c us ta m e nt r e R \$ 1 ,00 e R \$ 2 ,00 .

SEL ECT * FR OM Pr od u tos WH ER E Prec oCus to > 1 AND Prec oCus to < 2 ;

12
IS NULL E IS NOT NULL
Es tes op era dor es es pec ia is s o u tilizad os p ar a tes ta r se um ca mp o co nt m o va lor
n ulo (n ull) , o u n o , resp ec tivamen te . Rep are que qua lq uer valor co mp arad o n ormalmen te
(= ,> ,< ,<>) co m n ul o se r n ul o .

## SELECT * FROM Pedidos WHERE DataEntrega IS NULL;

BETWEEN
P o dem os uti l iz a r o b e tw e en p ar a c o mp ara fai x a d e va lor es
a ) P es qu is ar os pro du tos c u jo preo de c us t o es t ej a en t r e R \$ 1 ,5 0 e 3 ,00 .
P o der a mos p es qu is ar d es ta fo r m a :
SEL ECT * FR OM Pr od u tos
WH ER E Prec oCus to >= 1 .5 AND Prec oCus to <= 3 ;
o u u t il iza nd o be tw een :
SEL ECT * FR OM Pr od u tos
WHER E Prec oCus to BETWEEN 1.5 AN D 3;
No te qu e os co ma ndos s o eq uiva le n tes .

LIKE
O op era dor L IKE u tiliz ado pa ra fazer u ma pes qu isa p arcia l em campos te xto .
Po demos utiliza r o % q ue s ig nifica v rios ca rac ter es o u _ que s ign ifica um c arac tere

## a ) P es qu is ar os no mes d os c l ie n tes q ue p os s u em a i l e m q ua lque r par t e do n om e:

SELECT * FROM Clientes WHERE Nome LIKE "%il%";

13
IN
O O pera dor IN u tiliza do pa ra su bs tituir o op era dor OR e m pesq uis as c om o mes mo
c a mp o .

E x e mp los :

a ) P es qu is ar os C l ien t es c u jos c d ig os s e ja m 1 , 3 ou 4 .

## S E L ECT * FR OM C l ien t es W H ERE i dC li en tes = 1 OR i dC li en tes = 3 OR i dC l ie n tes = 4 ;

o u , u t il iza nd o o o per ad or IN :

## SEL ECT * FR OM C l ien tes WHERE i dC li en tes IN (1 ,3 ,4)

UPDATE
P ar a q ue p os s a mos a t ua liz ar as in f or m a es d e um a t abe la p od em os u t i l iz ar o
co ma ndo UPD AT E:

S i n ta x e :
U PD AT E [No meD aTab ela ]
S E T C a mpo 1= N o vo Va lo r ,Cam po 2=N o me Va lo r , .. . ;
WH ER E condi o.

## Ap esar de n o ser ob riga tr ia , a c lus u la WH ERE fr eq en te me n te u tilizad a par a

a t ua liz ar s o me n te os r eg is tr os nec es s r ios. D e ou tr a f or ma o c om an do a tua l iz ar ia to da a
ta be la . T enh a Cu ida do!

E x e mp los :

a ) A t u al iz ar o n om e do c l i en te que te m o c d igo 1 pa r a J o o d a S . S i l v a
U PD AT E C l i en tes S ET N om e = J o o d a S . S i l v a
W H ER E i d C li e n te s = 1 ;

b ) A t u al iz ar o e nde r e o e o ba irr o d es te m es m o c li en te .
U PD AT E Clien tes SET Ender eco = "Ru a da Aju da , 34 ", Ba irr o = "G lr ia "
W H ER E i d C li e n te s = 1 ;

## No te qu e s de ve mos us ar SET u ma n ica vez , ao in vs de uma p or campo .

14
Ve ja as a l te ra es :

FUNES DE GRUPO
As F un es d e gr up o s o u tiliz ad as p ara fo rnec er resu lta dos em fun o de um gru po
d e lin has . N o de vemos esqu ecer q ue pod emos u tiliz - las em con ju n to co m o WH ER E .

Funo Ao
COUNT Contagem de linhas
SUM Somatrio
AVG Mdia
MIN Mnimo
MAX Mximo
VARIANCE Varincia

COUNT
Re torn a o n mero d e linhas de uma co lun a . Pod emos u tiliz ar o * n o lu gar d a c olun as
p ar a inc lu ir as l inh as q ue p os s ue m va lor nu lo .

E x e mp los :

## a ) P es qu is ar a qua n ti dad e de ped id os

SELECT COUN T( *) FROM pedidos

## b ) P es qu is ar a qua n ti dad e de D a tas pr ee nch id as

SEL ECT COUN T(Da ta En treg a) FR OM ped id os

15
SUM, AVG, MAX, MIN, STDDEV, VARIANCE
Re torn a o so ma tr io, a md ia ar itm tic a, o maior va lo r , o me nor va lor , o des vio
p adr o e a var i nc ia res pec tiva me n te d a co lu na es pec ificad a .

E x e mp lo :

a ) P es qu is ar os v al or es ac i ma d o pr eo d e c us to dos pr od u tos
SEL ECT SU M( Precocus to) ,AVG(Prec oCus to ),MAX( Prec oCus to ) ,MIN (PrecoCus to) ,
STDDEV(PrecoCus to),VARIANCE(Prec oCus to) FRO M Pro du tos ;

GROUP BY (A GRUPAMENTO )
Po demos u tiliz ar as fu nes de a gru pamen to pa ra ag rup armos os dad os d e aco rdo
c o m um va lor.

E x e mp lo :

## a ) P es qu is ar o no me d o p r od u to e o ma ior pre o de c ada f or n ecedo r .

SEL ECT idF orn eced ores , N ome,MAX( Pr ecoCus to)
FR OM produ tos
GR OUP BY idF orn eced ores ;

## b ) p esqu isa r a m dia de pr eo de ca da fo rnece dor .

SEL ECT idF orn eced ores ,AVG( Prec oCus to )
FR OM produ tos
GR OUP BY idF orn eced ores ;

## O bs .: Podemos ler a clus ula GROU P BY como p ara ca da .

16
HAVING
A c l usu la HAVIN G u tilizad a qua ndo qu ise rmos filtra r o con ju n to de linhas
r esu ltan te a ps o agru pa men to .
E x e mp lo :
a ) P es qu is e a m d ia do p r eo de c us t o dos f or nece dores c u jos c d ig os s o ma io r es
d o qu e 2 .
SEL ECT idF orn eced ores ,AVG( Prec oCus to ) FR OM produ tos
GR OUP BY idF orn eced ores
H AVING idF orn eced ores > 2 ;

## O bs .: no te q ue po dera mos ter fe ito a mesma pes quisa co m a c lus ula WH ER E, a

d i fe ren a q uan do ap licad o o filtr o. Co m o H AVING se mpre d epo is d o
a gru pamento .

## P ESQUISA EM T ABELAS R ELACIONADAS (JOIN)

Imag in e qu e que ir amos buscar tod os os pro du tos e o n ome d e s eus for nece dores.
Par a qu e isso se ja poss vel te ra mos q ue inclu ir na cons u ltas as ta be las Prod u tos e
F orn eced ores
Noss a pr ime ira te nta tiva p od er ia ter s ido p esq uisa r todos os pr odu tos da tabe la
Pro du tos e o nome fan tasia da ta be la Fornec edo res :
SEL ECT P.* , F .No me Fa n tas ia FRO M Prod u tos P, Fornec edo res F

17
UNIES INTERNAS (INNER JOIN)
O bser ve qu e ob temos ac ima o p rod u to car tes iano , ou s eja , Prod u tos X F or nece dores.
N o este o r esultad o qu e qu ere mos . A r espos ta des te pr ob lema ser ia u m
su bcon ju n to d es te resu lta do , log o s omen te as linhas on de a cha ve es tra ng eira igua l a
c h a ve p r i m r i a .

SEL ECT P.* , F .No me Fa n tas ia FRO M Prod u tos P, Fornec edo res F
WH ER E P.id For nece do res = F .idF orn eced ores ;

U ma s in ta xe al t er n a ti va u t il iza nd o o J O IN o u IN N ER J O IN

O bs . : N o ba nco d e dad os Ac c es s e xi gi do o no me c om p le to IN N ER J O IN

S i n ta x e :
SELECT [ coluna1 [, coluna ... ]
FR OM < tabe la A> [ INN ER ] JO IN < ta be la B>
[ ON < c ha ve pr im r i a = c h a ve est r a ng eir a> ]

N o e xe mp lo f ic a r i a :
SEL ECT P.* , F .No me Fa n tas ia FRO M Prod u tos P JO IN F orn eced ores F
ON P.id Forn eced ores = F .id For nec edo res ;

18
UNIO DE VRIAS TABELAS
Se no tarmos n o e xemp lo an terior , po der a mos ob ter , a tr a vs d o r elac ion amen to a
ca tego ria dos pro du tos .
C o mo f az er ? B as ta a dic io nar mos os c a mp os n ec es s r i os a c o nsu l ta e m a is u ma
co mp arao das ch a ves . Obser ve :
S E L ECT P .i d Pro du tos, P . N o me , P. P r ec oC us to , F .N o meFa n tas ia , C .N o me ,C .D es c r ica o
FR OM Pr od u tos P, Fo rnec edor es F , C a tego riaProd u tos C
WH ER E P.id For nece do res = F .idF orn eced ores
AND C .idCa tego riaPro du tos = P.idCa tego ria Pr odu tos

## UNIES EXTERNAS (OUTER JOIN)

SELECT coluna1 [, coluna ... ] |
FR OM < tabe lA> { L EFT | R IGHT | FU LL } [ OU T ER ] JO IN < tabe la B>
[ ON <c ha ve pr ima ria=ch a vees tran ge ira> ]

## L ef t Out er J o in ( J un o Ext er na Es qu er da) Re torn am to das as lin has da

t a be la d a es que r da ( t a be la A) e q ua is qu er li nh as da t ab el a da d ir e i ta ( tab ela B) que
a tend am ao cr itrio esp ecifica do n a clusu la ON .

R ight Outer Join (Jun o E xt e rn a D ir e ita ) R e tor na m tod as as linhas d a tab ela
d a d ire ita ( tabe la B) e qu ais qu er linhas d a ta be la da esque rda (tab ela A) que
a tend am ao cr itrio esp ecifica do n a clusu la ON .

Full Outer Join (Juno Externa Completa) Comb ina o d as d uas a n ter ior es.
Re torn a tod as as linhas de a mbas as tab elas , in dep en den te do cr itr io de se le o .

## O bs er v e qu e u t i liz and o u m J O IN in t er n o , o c l ie n te 4 n o ap arec e , p ois n o pos s u i

p ed idos , n o sa tis faze ndo a cond i o do JO IN :
SEL ECT C .* ,P.* FR OM C l ie n tes C JO IN ped id os P
ON P.idC l ie n tes = C .idC l ien tes ;

19
Se qu isermos q ue lin has no re lac io na das apar eam no res ulta do , de vemos u tilizar
u ma un io e x t er n a , de mo ns trand o de que l ad o , es qu erd a ( L EFT ) , ou d ir ei t a ( R IGH T )
d a ins tru o JO IN fica a tabe la que d e ve te r s uas linhas e xib id as mesmo qu e n o
es tejam r elac io nad as co m a o u tra tabe la .
S E L ECT C .* , P . * FR OM C l ie n tes C L E FT J OI N p ed idos P
ON P.idC l ie n tes = C .idC l ien tes ;
ou
SEL ECT C .* ,P.* FR OM pe didos P R IGH T JO IN C l ien tes C
ON P.idC l ie n tes = C .idC l ien tes ;

F UNES N O SQL
A s pr inc ip ai s fun es d o SQL s o :
M an ip ul a o de va lo r es n um r ic os
M an ip ul a o de c a r ac te r es
Mate mticas
Es ta ts ticas
Data e Hora
F un es de C arac teres

Funo Descrio
ASCII( texto ) ASCII do primeiro caractere
CHAR_LENGTH( texto ) Comprimento do texto
UPPER( texto ) Converte para maisculas
LOWER( texto ) Converte para minsculas
LPAD( texto, x, [ subtexto ] ) Preenchimento de caracteres esquerda
LTRIM( texto, subtexto ) Remoo de caracteres esquerda
REPEAT( texto, x ) Repeties do texto especificado
RPAD( texto, x, [ subtexto ] ) Preenchimento de caracteres direita
RTRIM( texto, subtexto ) Remoo de caracteres direita
STRPOS( texto, subtexto ) Localizao de texto
SUBSTR( texto, x, [ y ] ) Extrao de texto

E x e mp los :
a ) SEL ECT ASC II( " B" ) ,CH AR_ LENG TH( "u m texto") ,UPPER( "min ") ,L OWER (" MAI" ) ;

20
FUNES MATEMTICAS
Funo Descrio
ABS(x) Valor absoluto
ACOS(x) Arco cosseno
ASIN(x) Arco seno
ATAN(x) Tangente inversa
CBRT(x) Raiz cbica
CEIL(x) Inteiro posterior
COS(x) Cosseno
COT(x) Cotangente
DEGREES(x) Converso de radianos para graus
EXP(x) Exponenciao
FLOOR(x) Inteiro anterior
LN(x) Logaritmo Neperiano
LOG(x) Logaritmo na base 10
LOG(x, y) Logaritmo na base especificada
MOD(x, y) Resto da diviso
PI() Constante
POW(x, y) Potenciao
RANDOM() Nmero aleatrio entre 0 e 1
ROUND(x, y) Arredondamento
SIN(x) Seno

## a) SELECT ABS(-9),ACOS( 45) ,EXP(3),MOD(5 , 3) ,PI() ,POW( 9 , 4) ,ROUND (8 ,

2),SQRT( 7) ;

SUBCONSULTAS (SUBSELECTS)
Po demos utiliza r coma ndos SELECT den tr o d e ou tr o SEL ECT

## a ) S e lec io ne os pro du tos o nde o pre o de c us t o ma i or q ue a m dia .

SEL ECT * FR OM Pr od u tos WH ER E Prec oCus to >
( SEL ECT AVG( Pr ecoCus to) FR OM Pr od utos)

21
SUBCONSULTAS DE MAIS DE UMA LINHA
P ar a qu e p os s a mos c r iar c onsu l tas c om m a is de u ma l inh a , p ode mos u t i liz ar os
se gu in tes o per ador es:
ALL Todos Inverte o valor do operando

IN
SEL ECT * FR OM Pr od u tos
WHER E idProdutos
IN ( SEL ECT id Pr od u tos FRO M PRODU TO S WH ER E PR ECOCU ST O > 2)

ANY
Co mp ara o per ador es r elac ion ais s imples c om c ada lin ha r etor na da do SELEC T
i n te r n o .

E x e mp lo :
a ) pes qu isa r pa ra sa ber qua is p rod u tos te m p reco sup erior a cad a pr odu to do
for nec edor 3 .
SEL ECT * FR OM Pr od u tos
WH ER E Prec oCus to >
A N Y ( SE L ECT PR ECO C U ST O
FR OM PRODU TO S
WH ER E idF orn eced ores = 3) AND id Forn ece dor es != 3;

22
ALL
Es te o per ad or co mpa ra c om to das as linh as o c on te do do SEL ECT intern o
a ) pes qu isa r os pr odu tos on de o prec o de cus to sup er ior a me dia dos for nece dores
SEL ECT * FR OM Pr od u tos
WHER E Prec oCus to > ALL (SELECT AVG(PRECOCUSTO)
FR OM PRODU TO S GROU P BY id For nece do res)

EXISTS
U t il iza mos E X I S T S p ar a e xecu t ar u m SEL EC T s e o u tr o c om an do S EL EC T i n ter n o
r et orn ar val or es .
N o t e q ue n o i mpo r ta o r es u l ta do do SEL EC T i n te r no , mas s i m s e h ou n o

## a ) Pes qu ise os d e ta lhes d o pe dido se e xis tir em da dos na tabe la ped id os .

SEL ECT * FR OM D e ta lh e Ped id os
WHER E EXISTS (SELECT * FROM Pedidos );

23
UNION
Co ma ndo u tiliz ado pa ra un ir uma tabe la ou tra . Cas o e xis tam linhas re pe tidas , n o
s e r o e xi bid as . P ar a es t e ob je t iv o pod e s er u t i l iz ad o o c om and o U N ION ALL .
No te qu e o tip o de d ado da co lu na d e ve se r compa tvel e a q uan tid ade d e co lun as
d e ve s e r a m es m a .

## SELECT Nome FROM Clientes

UN ION SEL EC T No me Fa n tas ia FR OM Forn eced ores ;

INTERSECT
u tiliz ado p ara r e tor na r as linhas re pe tid as.
SELECT Nome FROM Clientes
INT ER SECT SEL EC T No me Fan tas ia F ROM F orn eced ores ;

EXCEPT DISTINCT
Es te coman do , tamb m c onh ecido co mo MIN US, u tiliz ado pa ra e xibir linhas que
e x is te m e m u ma ta be la e n o e x is te m e m ou tr a .
SELECT Nome FROM Clientes
EXC EPT DIST INC T SEL ECT N omeF an tas ia FRO M For nece dores;

24