• Nenhum resultado encontrado

Mais SQL. Para Con servar Du p licações. Roteiro. Ren om eação d e Colu n as. Un ião, In terseção, Diferen ça. Un ião, in terseção, d iferen ça

N/A
N/A
Protected

Academic year: 2021

Share "Mais SQL. Para Con servar Du p licações. Roteiro. Ren om eação d e Colu n as. Un ião, In terseção, Diferen ça. Un ião, in terseção, d iferen ça"

Copied!
7
0
0

Texto

(1)

1

M

a

is

S

Q

L

2

Ro t eir o

• Un iã o , in t er s eçã o , d ifer en ça

• Su b co n s u lt a s

• Agr ega çã o

• Va lo r es n u ll

Leit u r a d o livr o “SQL fo r Ner d s ”: cap ít u lo 4 , “Mo r e co m p lex q u er ies ”

3

Ren o m ea çã o d e Co lu n a s

SELECT Pn o m e ASn o m ePr o d, Pr eco ASp r eco Ven d a FROM Pr o d u t o WHERE Pr eco > 1 0 0 Pro d u t o $2 03 .9 9 t elevis ao $1 49 .9 9 cam er a p r eco Ven d a n o m ePr od Co n s u lt a co m r en o m eação Pro d u t o Hit ach i elet r on ico s $2 03 .99 t elevis ao Can o n fot ogr afia $1 49 .99 ca m era Far b er p a p elar ia $2 9.99 la p iseir a Far b er p a p elar ia $1 9.99 la p is Fa b rica n t e Cat ego ria

Pr eco PNom e 4

Un iã o , In t er s eçã o ,

Difer en ça

(SELECT n o m e FROM Pes s oa

WHERE cid ad e= “Cu r it ib a”) UNION

(SELECT n o m e

FROM Pes s oa , Com p r a

WHERE co m p r ad o r = n o m e AND lo ja= “Po n t o Fr io ”) Da m es m a fo r m a, vo cê p o d e u s ar INTERSECT e EXCEPT. Os t ip o s / n o m es d o s at r ib u t o s d evem s er o s m es m o s . Cas o co n t r ár io : r en am e.

Co m p r a (co m p r ad o r , ven d ed or , lo ja, p r o d u t o ) Pes s o a(n o m e, t el, cid ad e)

5 (SELECT DISTINCT R.A

FROM R)

INTERSECT ( (SELECT S.A FROM S) UNION

(SELECT T.A FROM T))

6

Pa r a Co n s er va r Du p lica çõ es

(SELECT n o m e FROM Pes s oa

WHERE cid ad e= “Cu r it ib a”) UNION ALL

(SELECT n o m e

FROM Pes s oa , Com p r a

WHERE co m p r ad o r = n o m e AND lo ja= “Po n t o Fr io ”) Co m p r a (co m p r ad o r , ven d ed o r , lo ja,

p r o d u t o )

Pes s o a(n o m e, t el, cid ad e)

7

Su b co n s u lt a s

Com p r a (com p r ad or , ven d ed or , loja, p r od u t o) Pes s oa(n om e, t el, cid ad e, cp f)

Um a s u b co n s u lt a p r o d u z in d o u m valo r ú n ico :

Nes t e cas o , a s u b co n s u lt a r et o r n a u m ú n ico

valo r .

Se r et o r n ar m ais d e u m ,

er r o em t em p o d e

execu ção .

SELECT Co m p r a.p r o d u t o FROM Co m p r a WHERE co m p r ad o r = (SELECT n o m e FROM Pes s o a WHERE cp f = ‘1 2 3 4 5 6 7 8 9 ‘); 8

Co m p r a (co m p r ad o r , ven d ed or , lo ja, p r o d u t o ) Pes s o a(n o m e, t el, cid ad e, cp f)

A m es m a con s u lt a p o d e s er es cr it a s em u s ar s u b co n s u lt a:

Es t a co n s u lt a é eq u ivalen t e a an t er io r s e cp f fo r u m a ch ave e a ch ave ‘1 2 3 4 5 6 7 8 9 ’ exis t ir n a b as e d e d ad o s ; cas o co n t r ár io s ão d ifer en t es .

SELECT Com p r a.p r o d u t o FROM Com p r a, Pes s o a

(2)

9

Su b con s u lt as q u e r et or n am

r elações

SELECT Com p an h ia.n o m e FROM Com p an h ia, Pr o d u t o

WHERE Com p an h ia.n u m Cia= Pr o d u t o .fab r ican t e AND Pr o d u t o.n o m e IN

(SELECT Co m p r a.p r o d u t o FROM Com p r a

WHERE Com p r a.co m p r ad o r = ‘Jo ao ‘); En co n t r e o n o m e d as co m p an h ias q u e fab r icam p r od u t o s co m p r ad o s p o r 'Jo ao '.

Es t a s u b co n s u lt a r et o r n a u m co n ju n t o d e valo r es . Não o co r r er ão m ais er r o s em t em p o d e execu ção.

Pr o d u t o (n om e, p r eco , cat ego r ia, fab r ican t e) Co m p an h ia (n u m Cia, n o m e, valo r Acao , p ais ) Co m p r a (co m p r ad o r , ven d ed or , lo ja, p r o d u t o )

1 0

Su b con s u lt as q u e r et or n am

r elações

SELECT Com p an h ia.n o m e

FROM Com p an h ia, Pr o d u t o , Com p r a

WHERE Com p an h ia.n u m Cia = Pr o d u t o .fab r ican t e AND Pr o d u t o.n o m e = Co m p r a.p r od u t o AND Co m p r a.com p r ad o r = ‘Jo ao ’

Eq u ivalen t e a:

Es t a co n s u lt a é eq u ivalen t e a an t er io r ?

Ten h a cu id ad o co m d u p licaçõ es !

1 1

Evit a n d o d u p lica çõ es

SELECT Com p an h ia.n om e

FROM Com p an h ia, Pr od u t o, Com p r a

WHERE Com p an h ia.n u m Cia= Pr od u t o.fabr ican t e AND Pr od u t o.n o m e = Co m p r a.p r od u t o AND Com p r a.com p r ad or = ‘Jo ao’

 Multip las cóp ias

 Um a cóp ia SELECT DISTINCT Com p an h ia.n om e

FROM Com p an h ia, Pr od u t o, Com p r a

WHERE Com p an h ia.n u m Cia= Pr od u t o.fabr ican t e AND Pr od u t o.n o m e = Co m p r a.p r od u t o AND Com p r a.com p r ad or = ‘Jo ao’

1 2

Rem o ven d o Du p lica çõ es

Ago r a elas s ão eq u ivalen t es SELECT DISTINCT Com p an h ia.n om e

FROM Com p an h ia, Pr od u t o, Com p r a

WHERE Com p an h ia.n u m Cia= Pr od u t o.fabr ican t e AND Pr od u t o.n o m e = Co m p r a.p r od u t o AND Com p r a.com p r ad or = ‘Jo ao’

SELECT DISTINCT Com p an h ia.n om e

FROM Com p an h ia, Pr od u t o

WHERE Com p an h ia.n u m Cia= Pr od u t o.fab r ican t e AND Pr od u t o.n om e IN

(SELECT Com p r a.p r od u t o FROM Com p r a

WHERE Com p r a.com p r ad or = ‘Joao‘);

1 3

Su b con s u lt as q u e r et or n am

r elações

SELECT n o m e FROM Pr o d u t o

WHERE p r eco > ALL (SELECT p r eco FROM Pr o d u t o

WHERE fab r ican t e= ‘Far b er ’) Pr o d u t o ( n o m e, p r eco , cat ego r ia, fab r ican t e) En co n t r e t od os o s p r o d u t o s q u e s ão m ais ca r o s q u e t o d os o s p r od u t o s fab r icad o s p ela “Far b er ”

Vo cê t am b ém p o d e u s ar : s > ALL R s > ANY R EXISTS R 1 4

INTERSECT e EXCEPT:

u t iliz a n d o EXISTS

(SELECT R.A, R.B FROM R) INTERSECT (SELECT S.A, S.B FROM S) SELECT R.A, R.B FROM R WHERE EXISTS(SELECT * FROM S

WHERE R.A= S.A a n d R.B= S.B)

(SELECT R.A, R.B FROM R) EXCEPT (SELECT S.A, S.B FROM S) SELECT R.A, R.B FROM R WHERE

NOT EXISTS(SELECT * FROM S

WHERE R.A= S.A a n d R.B= S.B)

1 5

Co n d içõ es em Tu p la s

SELECT DISTINCT Co m p an h ia.n o m e FROM Co m p an h ia, Pr o d u t o

WHERE Com p an h ia.n u m Cia = Pr o d u t o .fab r ican t e AND (Pr o d u t o .n o m e,p r eco ) IN

(SELECT Com p r a.p r o d u t o , Co m p r a.p r eco ) FROM Co m p r a

WHERE Com p r a.co m p r a d o r = “Jo ao ”); Pr o d u t o (n o m e, p r eco , cat ego r ia, fab r ican t e) Co m p an h ia (n u m Cia, n o m e, valo r Acao , p ais ) Co m p ra (co m p r ad o r , ven d ed or , lo ja, p r o d u t o , p r eco)

1 6

Co n s u lt a s Co r r ela cio n a d a s

SELECTDISTINCT t it u lo FROM Film e AS x WHERE a n o < > ANY (SELECT an o FROM Film e WHERE t it u lo = x.t it u lo ); Film e (t it u lo , an o , d ir et or , d u r acao)

En co n t r e o s film es cu jo t ít u lo ap ar eça m ais d e u m a vez ..

No t e :

(1 ) es co p o d as var iáveis

(2 ) p o d e s er es cr it o co m u m ú n ico SFW

(3)

1 7 8 0

Rich a rd Lin kla t er 20 04

b efor e s u n s et

10 5 Rich a rd Lin kla t er 19 95 b efor e s u n r is e 10 6 Pet er Ch els om 20 04 s h a ll we d a n ce 13 6 Ma s s ayu ki Su o 19 96 d u r aca o d ir et or an o t it u lo s h all we d an ce Film e SELECTDISTINCT t it u lo FROM Film e AS x WHERE a n o < > ANY (SELECT a n o FROM Film e WHERE t it u lo = x.t it u lo ); 1 8

Co n s u lt a s Co m p lexa s

Co r r ela cio n a d a s

Pr o d u t o ( n o m e, p r eco , cat ego r ia, fab r ican t e, an o )

• En con t r e os p r od u t os (e s eu s fab r ican t es ) q u e s ão m ais car o s q u e t o d o s o s p r o d u t o s feit o s p elo m es m o fab r ican t e an t es d e 1 9 7 2 .

SELECT DISTINCT n o m e, fa b r ica n t e FROM Pr o d u t o AS x

WHERE p r eco > ALL (SELECT p r eco FROM Pr o d u t o AS y

WHERE x.fa b r ica n t e = y.fa b r ica n t e AND y.a n o < 1 9 7 2 );

1 9

Divis ã o

Pr o d u t o ( n o m e, p r eco , cat ego r ia, fab r ican t e) Co m p r a (co m p r ad o r , ven d ed or , lo ja, p r o d u t o )

• En con t r e as p es s oas q u e com p r ar am t od os os p r od u t os cad as t r ad o s .

SELECT DISTINCT co m p r a d o r FROM Co m p r a AS c1

WHERE NOT EXISTS ((SELECT n o m e FROM Pr o d u t o ) EXCEPT (SELECT p r o d u t o FROM Co m p r a c2

WHERE c1 .co m p r a d o r = c2 .co m p r a d o r ))

Ver ifica s e o co n ju n t o d e p r o d u t o s co m p r ad o s p o r u m a p es s o a in clu i t o d o s o s p r o d u t o s exis t en t es .

2 0

Divis ã o – s em u t iliz a r EXCEPT

Pr o d u t o ( n o m e, p r eco , cat ego r ia, fab r ican t e) Co m p r a (co m p r ad o r , ven d ed or , lo ja, p r o d u t o )

• En con t r e as p es s oas q u e com p r ar am t od os os p r od u t os cad as t r ad o s .

SELECT DISTINCT co m p r a d o r FROM Co m p r a AS c1

WHERE NOT EXISTS (SELECT n o m e

FROM Pr o d u t o AS p WHERE NOT EXISTS (SELECT p r o d u t o FROM Co m p r a c2

WHERE c1 .co m p r a d o r = c2 .co m p r a d o r AND p .n o m e = c2 .p r o d u t o ))

Ver ifica s e n ão exis t e n en h u m p r od u t o q u e n ão t en h a s id o co m p r ad o p o r u m a p es s oa .

2 1

Exer cício s

Pr o d u t o (p n o m e, p r eco , cat ego r ia, fab r ican t e) Co m p r a (co m p r ad o r , ven d ed o r , lo ja, p r o d u t o ) Co m p an h ia (cn om e, valo r Acao , p ais )

Pes s o a (n o m ePes s , t el, cid ad e)

Ex #6 : En con t r e t od as as p es s oas q u e com p r ar am p r od u t os jap on es es , m as q u e n ão com p r ar am p r od u t os b r as ileir os .

Ex #7 : En con t r e o n om e d as p es s oas q u e com p r ar am p r od u t os jap on es es e br as ileir os .

Ex #8 : En con t r e o n om e e a cid ad e on d e m or am p es s oas q u e s ão as ú n icas m o r ad or as d es t a cid ad e cad as t r ad as n o s is t em a.

Ex #9 : En con t r e o n om e d as p es s oas q u e t en h am ou t r os m or ad or es d a m es m a cid ad e cad as t r ad os n o s is t em a.

Car r egar o b an co d e d ad o s “BDPro d u t o ”

2 2

Agr ega çã o

SELECT Avg(p r eco ) FROM Pr o d u t o

WHERE fab r ican t e= “Toyo t a”

SQL d á s u p o r t e a d iver s as o p er açõ es d e agr egação : SUM, MIN, MAX, AVG, COUNT

2 3

Agr ega çã o : Co u n t

SELECT Co u n t (*) FROM Pr o d u t o WHERE an o > 1 9 9 5 Co m exceção d e COUNT, t o d as as o u t r as op er a çõ es d e agr egação ap licam - s e a u m ú n ico at r ib u t o .

2 4

Agr ega çã o : Co u n t

COUNT co n s id er a d u p licaçõ es a n ão s er q u e s eja exp licit am en t e d efin id o p ar a n ão co n s id er á- las . SELECT Co u n t (cat ego r ia) o m es m o q u e Co u n t (*)

FROM Pr o d u t o WHERE an o > 1 9 9 5 As s im é m elh o r :

SELECT Co u n t (DISTINCT cat ego r ia) FROM Pr o d u t o

(4)

2 5

Agr ega çã o Sim p les

Co m p r a(p r o d u t o , d at a , p r eco , q u an t id ad e)

Exem p lo 1 : en co n t r e o t ot al d e ven d as d e t o d a a b as e d e d ad o s .

SELECT Su m (p r eco * q u an t id ad e) FROM Com p r a

Exem p lo 1 ’: en co n t r e o t o t al d e ven d as d e leit e SELECT Su m (p r eco * q u an t id ad e)

FROM Com p r a WHERE p r o d u t o = ‘leit e’

2 6

Agr ega çõ es Sim p les

Co m p r a Pr o d u t o Da t a Pr eco Qu an t id a d e leit e 2 0 / 1 0 0 .8 5 2 0 b an an a 2 2 / 1 0 0 .5 2 7 b an an a 1 9 / 1 0 0 .5 2 1 7 leit e 2 1 / 1 0 0 .8 5 1 5 2 7

Agr u p a m en t o e Agr ega çã o

Ger alm en t e, n ó s q u er em os agr egar algu m as p ar t es d a r elação :

Co m p r a(p r o d u t o , d at a, p r eco , q u an t id ad e)

Exam p le 2 : e n c o n tre o to tal d e v e n das p o r p ro d u to ap ó s 1 / 1 0 .

SELECT p r o d u t o , Su m (p r eco *q u an t id ad e) AS ven d aTo t al FROM Co m p r a

WHERE d at a > “1 / 1 0 ” GROUPBY p r o d u t o

Vam o s ver o q u e is t o s igin ifica...

2 8

Agr u p a m en t o e Agr ega çã o

1 . Execu t e as cláu s u las FROM e WHERE.

2 . Agru p e as lin h as p elo valor d os at r ib u t o s em GROUPBY 3 . Selecio n e u m a t u p la em cad a gr u p o e ap liq u e a o p er ação d e agr egação

SELECT p o d e t er (1 ) at r ib u t o s agr u p ad o s ou (2 ) aggr egad o s .

2 9

Pr im e ir o e xe cu t e a s clá u s u la s

FROM-WHERE (d a t a > “1 / 1 0 ”) e d e p o is

a gr u p e p o r p r o d u t o :

Pr o d u t o Dat a Pr eco Qu an t id ad e b an an a 1 9 / 1 0 0 .5 2 1 7 b an an a 2 2 / 1 0 0 .5 2 7 leit e 2 0 / 1 0 0 .8 5 2 0 leit e 2 1 / 1 0 0 .8 5 1 5 3 0

Dep o is , ca lcu le a a gr ega çã o

p r od u t o ven d aTot al

leit e $ 2 9 .7 5 b an an a $ 1 2 .4 8

SELECT p r od u t o, Su m (p r eco*q u an t id ad e) AS ven d aTot al

FROM Com p r a WHERE d at a > “1/ 1 0” GROUPBY p r od u t o 3 1

GROUP BY v.s . Co n s u lt a s

An in h a d a s

SELECT DISTINCT x.p r o d u t o ,

(SELECT Su m (y.p r eco *y.q u a n t id ad e) FROM Co m p r a y

WHERE x.p r o d u t o = y.p r o d u t o

AND y.d at a > ‘1 / 1 0 ’) as t o t al FROM Co m p r a x

WHERE x.d at a > “1 / 1 0 ”

SELECT p r o d u t o , Su m (p r eco *q u an t id ad e) AS ven d aTo t al FROM Com p r a

WHERE d at a > “1 / 1 0 ” GROUPBY p r o d u t o

3 2

Ou t r o Exem p lo

SELECT p r o d u t o , Su m (p r eco * q u an t id ad e) AS t o t alVen d a Ma x(q u an t id ad e) AS q t d eMax FROM Co m p r a

GROUP BY p r o d u t o

Par a cad a p r o d u t o , q u al o t o t al d e ven d a s e a m a ior q u a n t id ad e ven d id a?

Pr od u t o t ot a lVen d a q t d eMa x

b a n an a $ 1 2 .4 8 1 7

(5)

3 3

A Clá u s u la HAVING

SELECT p r o d u t o , Su m (p r eco * q u an t id ad e) FROM Com p r a WHERE d at a > “1 / 9 ” GROUPBY p r o d u t o HAVING Su m (q u an t id ad e) > 3 0 Qu al o t o t al d e ven d as p o r p r o d u t o , co n s id er an d o s o m en t e aq u eles q u e p elo m en o s 3 0 u n id ad es fo r am ven d id a s .

A cláu s u la HAVING co n t ém co n d ições s ob r e agr egad o s .

3 4

A fo r m a ger a l p a r a

Agr u p a m en t o e Agr ega çã o

SELECT

S

FROM

R

1

,…,R

n

WHERE

C1

GROUP BY

a

1

,…,a

k

HAVING

C2

S = p o d e co n t e r a t r ib u t o s a1,…,ak e/ o u a gr ega d o s , m a s NÃO

PODE CONTER NENHUM OUTRO ATRIBUTO C1 = q u a lq u er co n d içã o s o b r e a t r ib u t o s d e R1,…,Rn

C2 = q u a lq u er co n d içã o s o b r e a gr ega d o s

Po r q u e ?

3 5

A fo r m a ger a l p a r a

Agr u p a m en t o e Agr ega çã o

SELECT S FROM R1,…,Rn WHERE C1 GROUP BY a1,…,ak HAVING C2 Pa s s o s d e a va lia çã o :

8. Execu t e a p a r t e FROM- WHERE p a r t , e o b t en h a u m a r ela çã o co m t o d o s o s a t r ib u t o s em R1,…,Rn

9. Agr u p e p elo s a t r ib u t o s a1,…,ak

10. Ca lcu le o s a gr ega d o s em C2 e m a n t en h a a p en a s o s gr u p o s q u e s a t is fa z em C2 11. Ca lcu le o s a gr ega d o s em S e r et o r n e o r es u lt a d o 3 6

Agr ega çã o

Au t o r (id Au t o r , n o m e)

Do cu m e n t o (id Do c, t it u lo )

Au t o r ia (id Au t o r , id Do c)

Vo ca b u la r io (id Do c, p a la vr a )

3 7 Au t o r (id Au t o r ,n o m e ) Au t o r ia (id Au t o r , id Do c)

• En co n t r e o s a u t o r es q u e es cr ever a m

p e lo m e n o s 1 0 d o cu m e n t o s :

• Ten t a t iva 1 : co m co n s u lt a a n in h a d a

SELECTDISTINCT Au t o r .n o m e FROM Au t o r

WHERE co u n t (SELECT Au t o r ia.id Do c FROM Au t o r ia

WHERE Au t o r .id Au t o r= Au t o r .id Au t o r ) > 1 0 Co n s u lt a es cr it a p o r u m n o vat o 3 8 Au t o r (id Au t o r ,n o m e ) Au t o r ia (id Au t o r , id Do c)

• En co n t r e o s a u t o r es q u e es cr ever a m

p e lo m e n o s 1 0 d o cu m e n t o s :

• Ten t a t iva 2 : co m GROUP BY

SELECT Au t o r .n o m e FROM Au t o r , Au t or ia

WHERE Au t o r .id Au t o r = Au t o r ia.id Au t o r GROUP BY Au t o r .id Au t o r , Au t o r .n o m e HAVING co u n t (Au t o r ia.id Do c) > 1 0

Es cr it a p o r u m exp er t

Não h á n eces s id ad e d e DISTINCT: au t o m á t ico d evid o o GROUP BY 3 9 Au t o r (id Au t o r ,n o m e ) Au t o r ia (id Au t o r , id Do c) Vo ca b u la r io (id Do c, p a la vr a )

• En co n t r e o s a u t o r es q u e t em u m

vo ca b u lá r io a cim a d e 1 0 0 0 0

p a la vr a s :

SELECT Au t o r .n o m e

FROM Au t o r , Au t o r ia, Vo cab u la rio WHERE Au t o r .id Au t o r = Au t o r ia.id Au t o r AND Au t o r ia.id Do c= Vo ca b u lar io .id Do c GROUP BY Au t o r .id Au t o r , Au t o r .n o m e

HAVING co u n t (d is t in ct Vo cab u lar io .p alavr a) > 1 0 0 0 0 Pr es t e at en çã o n as d u as ú lt im as con s u lt as : em b o r a elas p o s s am s er es cr it as u t iliz an d o co n s u lt a s an in h ad as , é m elh o r u t iliz ar GROUP BY.

4 0

Exer cício s

Pr o d u t o (p n o m e, p r eco , cat ego r ia, fab r ican t e) Co m p r a (co m p r ad o r , ven d ed o r , lo ja, p r o d u t o ) Co m p an h ia (cn om e, valo r Acao , p ais )

Pes s o a (n o m ePes s , t el, cid ad e)

Ex # 1 0 : Par a cad a ven d ed o r , es cr eva o s eu n o m e e a s o m a d as ven d as r ealiz ad as .

Ex # 1 1 : Par a cad a co m p r ad o r , es cr eva o s eu n o m e e a m éd ia d e co m p r as r ealiz ad as p o r cat ego r ia d e p r o d u t o .

Ex # 1 2 : Par a cad a cat ego r ia d e p r o d u t o , o b t er o s eu n o m e, s u a m éd ia d e p r eço s , m aio r e m en o r p r eço .

(6)

4 1

Va lo r es N u ll

80 Rich ar d Lin klat er 2 00 4

b efor e s u n s et

1 05 Rich ar d Lin klat er b efor e s u n ris e 1 06 n u ll 2 00 4 s h all we d an ce n u ll Ma s s ayu ki Su o 1 99 6 d u r aca o d iret o r a n o t it u lo s h a ll we d an ce Film e n u ll Um n u ll p o d e s ign ificar q u e: • o valor n ão exis t e OU

• o valor exis t e m as ain d a n ão é con h ecid o

4 2

Va lo r es N u ll

• Se o va lo r d e x fo r N u ll en t ã o a

exp r es s ã o 4 *(3 - x)/ 7 r e s u lt a e m

N u ll

• Se o va lo r d e x fo r N u ll en t ã o o t es t e

x= “Jo a o ” r e s u lt a e m

DESCONHECIDO

• Em SQL h á 3 va lo r es b o o lea n o s :

FALSO = 0

DESCONHECIDO =

0 .5

VERDADEIRO = 1

4 3

Va lo r es N u ll

• C1 AND C2 = m in (C1 , C2 )

• C1 OR C2 = m ax(C1, C2)

• NOT C1 = 1 – C1

Regr a em SQL: in clu i s o m en t e t u p las q u e

r es u lt am em VERDADEIRO

SELECT

*

FROM

Pes s o a

WHERE

(id ad e < 2 5 ) AND

(alt u ra > 1 5 0 OR p es o > 8 0 )

P.ex. id a d e= 2 0 a lt u r a = NULL p es o = 9 0 4 4

Va lo r es N u ll

Co m p o r t a m en t o n ã o in t u it ivo :

Algu m a s p e s s o a s n ã o s ã o in clu íd a s

n o r es u lt a d o !

SELECT *

FROM Pes s o a

WHERE id a d e < 2 5 OR id a d e > = 2 5

4 5

Va lo r es N u ll

É p o s s ível t es t ar s e u m valo r é n u lo

exp licit am en t e:

– x IS NULL – x IS NOT NULL

Ago r a o r es u lt ad o co n t ém t o d as as p es s o as .

SELECT

*

FROM

Pes s o a

WHERE

id ad e < 2 5 OR id ad e > = 2 5

OR id ad e

IS NULL

4 6

Va lo r es N u ll em Ju n çõ es

Pr o d u t o (n o m e , ca t ego r ia ) Co m p r a (n o m ePr o d , lo ja ) O m e s m o q u e: Ma s p r o d u t o s q u e n u n ca fo r a m ven d id o s n ã o a p a r ece m n o r es u lt a d o ! SELECT Pr o d u t o .n o m e, Co m p r a .lo ja FROM Pr o d u t o JOIN Co m p r a ON Pr o d u t o .n o m e = Co m p r a .n o m ePr o d SELECT Pr o d u t o .n o m e, Co m p r a .lo ja FROM Pr o d u t o , Co m p r a WHERE Pr o d u t o .n o m e = Co m p r a .n o m e Pr o d 4 7

Va lo r es N u ll e Ou terjoin s

Left o u t er jo in s em SQL: Pr o d u t o (n o m e, cat ego r ia) Co m p r a(n o m ePr o d , loja)

SELECT Pr o d u t o .n o m e, Co m p r a.loja

FROM Pr o d u t o LEFT OUTER JOIN Co m p r a ON Pr o d u t o .n om e = Co m p r a.n om ePr o d 4 8 elet ro n icos t elevisa o fo t o gra fia cam era p ap ela ria lap is

cat ego ria n o m e Pon t o Frio cam era Rit z cam era lap is lojae n o m ePr od NULL t elevisa o Pon t o Frio cam era Rit z cam era Cu lt u ra lap is loja n o m e Pr o d u t o Co m p r a Cu lt u r a SELECT Pr o d u t o .n o m e, Co m p r a.lo ja

FROM Pr o d u t o LEFT OUTER JOIN Co m p r a ON Pr o d u t o .n o m e = Co m p r a.n o m ePr o d

(7)

4 9

Ou ter Join s

• Left o u t er jo in :

– s em p r e in clu i a t u p la d a es q u er d a

• Righ t o u t er jo in :

– s em p r e in clu i a t u p la d a d ir eit a

• Fu ll o u t er jo in :

– s em p r e in clu i t an t o a t u p la d a es q u er a

co m o d a d ir eit a

Referências

Documentos relacionados

Esse discurso interior é composto por enunciações, que poderão ser objetivadas (expressas) pelo indivíduo ou não; mesmo que não as expresse a um interlocutor real, toda

Analysis of Sample Extracts. To validate the proposed methodology, the developed procedure was applied to the determination of aluminum in crystallized fruit sample digests and

Tomando por base as declarações prestadas na proposta pelo Segurado ou por seu corretor de seguros quando da contratação deste seguro, as quais fazem parte integrante

A construção do quadro teórico em que se funda a reflexão sobre o ensino de PLNM/PLE orientado pelos Objetivos do Desenvolvimento Sustentável baseou-se também

Se você precisar fazer algum exame de sangue ou outro teste laboratorial, informe ao seu médico ou ao laboratório que você está tomando REPOPIL 35, pois os contraceptivos orais

minutos 10 64 MINUTOS Gustavo Cazonatti 84 MINUTOS Nº: MINUTOS Matheus Silva Nº: 2 NOME: 16 NOME: 18 Igor Werner Lucas Vogel minutos Nº 11 Mateus Chaves MOTIVOS 17 EQUIPE

(2008) estudaram espécies de quatro seções taxonômicas e verificaram em Mimadenia a ocorrência de grãos de pólen agrupados em 12 grãos; já para as seções Batocaulon, Habbasia

Após 3 meses de tratamento, o nebivolol não obteve efeito positivo sobre parâmetros da inervação e atividade adrenérgica cardíaca, diagnosticadas com a cintilografia com