Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduo
Desenvolvida e implementada:
pelo Laboratrio de Pesquisas da IBM em San Jose entre os anos de 1964 e 1969
Ini ialmente !amada "S#$%#L& 'orma de inter(a e om o primeiro S)BD *ela ional:
S+stem *
Padroni.a/es
S#$%#L,-ri.inal S$L / 1904 S$L/16 234SI,IS-5 / 1916 S$L/96 / 1996 S$L:1999 / 1999 S$L:6778 / 6778 S$L:6776 / 6776
ntroduo
Padroni.a/es
S$L1 219165
bus ou padroni9ar as v:rias implementa;<es S$L da =po a> prin ipalmente 34SI IS-
ntroduo
Padroni.a/es
S$L 6 219965
a.entes S$L? one@<es liente,servidor S$L? suporte para S$L embutida em novas lin.ua.ens? suporte para novos tipos de dados
ntroduo
suporte para tabelas tempor:rias? suporte para operadores de Aun;Bo ? altera;Bo do esquema via 3LC#* e D*-P
Padroni.a/es
S$L 8 219995 introdu9iu al.uns on eitos do paradi.ma --D permite ampos multivaloradosD permite ampos ompostosD
ntroduo
Padroni.a/es
ntroduo
Padroni.a/es
S$L 267765 mais ara terEsti as FML suporte G F$uer+ padrBo para inter(a e FML/S$L
ntroduo
Padroni.a/es
Divis<es atuais
Descrio Descrio das partes comuns nas divises De!inio dos dados" sinta#e e sem$ntica de manipu%ao 'a%% Leve% (nter!ace )OD*'+ ersistent Stora.e -odu%e/ %in.ua.em procedura% SQL 1m2utido )cance%ado+ 1specia%i5ao da especi!icao 67Open 6A )para%isado+ 4ratamento de dados temporais )incorporada ; diviso 1+ 4rata do mode%o de o2:etos -ana.emen o! 1#terna% Data/ acesso a dados e#ternos O2:ect Lan.ua.e *indin./ SQL com >ava )SQL>+ (n!ormao e de!inio de es@uema Funciona%idade de rep%icao de dados >ava Aoutines and 4Bpes/ uso de >ava dentro do *D Cso de 6-L
Parte 1 SQL / Framework 2 SQL / Foundation SQL / OLA & SQL / 'L( , SQL / S0 SQL / *indin.s 3 SQL / 4ransactions 8 SQL / 4empora%
ntroduo
9 SQL / O2:ects 1#tended O2:ects < SQL / -1D 1= SQL / OL* 11 SQL / Sc?emata 12 SQL / Aep%ication 1& SQL / >A4 1, SQL / 6-L
Padroni.a/es
S$L,MM 2Multimedia5
Parte 1 Framework 2 Fu%% 4e#t & Spatia% 0 Sti%% (ma.e 3 Data minin. Descrio De!inio da e#tenso 4ratamento de te#tos %on.os )D3,E2+ Dados espacias (ma.ens -inerao de dados
ntroduo
0egras Gerais
instru;<es S$L nBo sBo case sensitiveD instru;<es S$L podem ser (eitas em mais de uma lin!aD palavras !ave nBo podem ser abreviadasD l:usulas .eralmente sBo olo adas em lin!a separadasD normalmente sBo utili9adas identa;<es para mel!orar a le.ibilidade das instru;<esD
ntroduo
M-0 -1emplo
Autor
cod_autor nome nascimento
escreve
Livro
N publica 1
ntroduo
Editora
ntroduo
in lui omandos para de(inir> alterar e remover tabelas e Endi es? omandos para inserir> remover> atuali9ar e onsultar os dados arma9enados nas tabelas? omandos para se trabal!ar em ambiente multi/ usu:rio> permitindo estabele er nEveis de se.uran;a e manipular transa;<esD
e2ini/es
DD&
Para todos omandos da DDL: K*#3C# / Kria uma de(ini;Bo 3LC#* / 3ltera uma de(ini;Bo D*-P / #@ lui uma de(ini;Bo 3l.uns omandos da DDL:
D& De2ini/es
C3BL# / De(ine uma tabela> seus ampos e as restri;<es de ampoD I4D#F / De(ine um Endi e asso iado a um ampo de uma tabelaD
DD&
3l.uns omandos da DDL 2 ontD5: C*I))#* de(ine um onAunto de instru;<es que sBo automati amente e@e utadas 2.atil!os5 antes ou depois de um omando I4S#*C> %PD3C# ou D#L#C#D P*-K#D%*# de(ine um onAunto de instru;<es 2stored procedures5D podem re eber ou retornar valoresD podem ser e@e utadas atrav=s de uma soli ita;Bo do usu:rio ou por um C*I))#*D
D& De2ini/es
4ipos de Dados
CHAR(n)
taman?o de arma5enamento n 2BtesF para arma5enamento de dados te#tuaisF o nGmero mH#imo de caracteres I de!inido por n e deve estar entre 1 e &2F830F reserva previamente o taman?o de!inido por n" mesmo @ue o dado arma5enado no preenc?a tota%mente o campoF
arma5ena somente a @uantidade de caracteres para conter o dado tendo no mH#imo o va%or nF pro2%emas com a%terao de va%or do dado imp%ica em mudana de %oca% de arma5enamentoF
4ipos de Dados
NUMBER ( reciso! "eci#a$) taman?o de arma5enamento variHve% para va%ores decimaisF preciso de!ine a @uantidade de dJ.itos numIrico mH#imo para o dado e decima% a @uantidade de nGmeros decimaisF por e#emp%o/ KC-*1A )1="&+ indica @ue o dados pode ter no mH#imo 8 dJ.itos inteiros e & dJ.itos decimaisF INTEGER mesmo @ue Kum2er)&9+F taman?o de arma5emanento &2 2itsF para arma5enamento de nGmeros inteiros no interva%o de 2F1,8F,9&F3,9 to 2F1,8F,9&F3,8F
4ipos de Dados
DATE
taman?o de arma5enamento 3, 2itsF para arma5enamento de data e ?oraF o interva%o de datas vH%idas I 1/>an/1== atI 11/>an/0<,1F a ?ora I inc%usaF
arma5ena os dados em !ormato 2inHrioF taman?o de arma5enamento variHve%F para arma5enamento de .rande @uantidade de dados como Hudio" vJdeo" .rH!icos" etcF
5peradores &gicos
%'(icos
Arit#)ticos
Re$acionais
%I1E! BET2EEN
5peradores
Con3unturais /ANY 0ANY ./ANY .A%% .0A%% E4I5T5 IN N&T E4I5T5 N&T IN .ANY 0/ANY .0ANY 0A%%
C0-*4- 4*B&
'ria uma nova ta2e%a com seus campos e de!ine as restries de campo Sinta#e/
CREATE TAB%E ta2e%a (campo1 tipo L)taman?o+M LN&T NU%%M LPRIMARY 1EY N UNI6UEM LDE7AU%T %itera%M" Lcampo2 tipo L)taman?o+M LN&T NU%%M LPRIMARY 1EY 8 UNI6UEM! LDE7AU%T %itera%9! L" FFFM" :C&N5TRAINT nome9 ;PRIMARY 1EY (primHria1L" primHria2 L" FFFMM) N UNI6UE (e#c%usiva1L" e#c%usiva2 L" FFFMM) N 7&REIGN 1EY (re!1L" re!2 L" FFFMM+ RE7ERENCE5 ta2e%ae#terna L)campoe#terno1 L" campoe#terno2 L" FFFMM+ N CHEC1 LcondioM O )
D& 3 Comandos
C0-*4- 4*B&
1#emp%o 1/ /P 'ria a ta2e%a Autor P/ CREATE TAB%E Autor( codi.o NUMBER(<) N&T NU%% " nome VARCHAR(=>) N&T NU%%" nascimento DATE N&T NU%%" C&N5TRAINT '?aveAutor PRIMARY 1EY )codi.o+" C&N5TRAINT CnicoAutor UNI6UE( nome" nascimento) )Q
D& 3 Comandos
C0-*4- 4*B&
1#emp%o 2/ CREATE TAB%E 1ditora) codi.o NUMBER(<) N&T NU%%! ra5ao VARCHAR(=>)! endereco CHAR(=>)! cidade CHAR(=>)! C&N5TRAINT '?ave1ditora PRIMARY 1EY (codi.o) +Q
D& 3 Comandos
C0-*4- 4*B&
1#emp%o &/ /P 'ria ta2e%a %ivro P/ CREATE TAB%E Livro( codi.o NUMBER(?) N&T NU%%! titu%o CHAR(=>) N&T NU%%! va%or NUMBER(=!@)! vo%ume NUMBER(@)! codi.o1ditora NUMBER(<) N&T NU%%! C&N5TRAINT '?aveLivro PRIMARY 1EY (codi.o)! C&N5TRAINT Livro1ditora 7&REIGN 1EY (codi.o1ditora) RE7ERENCE5 1ditora +Q
D& 3 Comandos
C0-*4- 4*B&
1#emp%o ,/ CREATE TAB%E 1screve ( codi.oLivro NUMBER(?) N&T NU%%! codi.oAutor NUMBER(<) N&T NU%%! C&N5TRAINT '?ave1screve PRIMARY 1EY (codi.oLivro" codi.oAutor)! C&N5TRAINT 1stran.eiraLivro 7&REIGN 1EY (codi.oLivro) RE7ERENCE5 Livro" C&N5TRAINT 1stran.eiraAutor 7&REIGN 1EY (codi.oAutor) RE7ERENCE5 Autor +Q
D& 3 Comandos
*&4-0 4*B&
D& 3 Comandos
A%TER TAB%E ta2e%a LADD campo tipo L)taman?o+M LN&T NU%%M LPRIMARY 1EY N UNI6UEM" L" FFFM" LDR&P campo tipo L)taman?o+M LN&T NU%%M LPRIMARY 1EY N UNI6UEM" L" FFFM" LADD C&N5TRAINT restrio L" FFFMM LDR&P C&N5TRAINT restrio L" FFFMM
*&4-0 4*B&
1#emp%o 1/
D& 3 Comandos
1#emp%o 2/
da ta2e%a Autor
D05P 4*B&
1#c%ui uma ta2e%a e#istente de um 2anco de dadosF Ko pode ser e#c%uJda uma ta2e%a @ue possui a%.uma re!erRnciaF
D& 3 Comandos
1#emp%o/
C0-*4- I6D-7
'ria um novo Jndice em uma ta2e%a e#istenteF A criao dos Jndices ocorrem para/
au#i%iar o .erenciador em uma pes@uisa de um ou mais campos na 2ase de dados" @uando !or so%icitadoQ au#i%iar o .erenciador em uma ordenao de um ou mais campos na 2ase de dados" @uando !or so%icitadoF
D& 3 Comandos
Sinta#e/ CREATE LUNI6UEM INDE4 nomeSJndice &N nometa2e%a ( campo LA5C 8 DE5CM L" campoTM)
C0-*4- I6D-7
1#emp%o 1 /
'ria Jndice do campo nascimento em ordem descendente para ta2e%a Autor CREATE INDE4 Kascimento(D6 &N Autor (nascimento DE5C)A
D& 3 Comandos
1#emp%o 2/
'ria Jndice do campo cidade e ra5o em ordem ascendente para ta2e%a 1ditora CREATE INDE4 'idadeAa5ao(D6 &N 1ditora (cidade" ra5ao)Q
D05P I6D-7
D& 3 Comandos
1#emp%o/
DM&
'omandos D-L (KS1A4 (K4O adiciona um )ou mG%tip%os+ re.istros a uma ta2e%aF C DA41 a%tera va%ores de campos em uma determinada ta2e%a com 2ase em critIrios especi!icadosF D1L141 remove os re.istros de uma ou mais ta2e%as @ue satis!aam aos critIriosF S1L1'4 procura na ta2e%a ou ta2e%as especi!icadas" e#trai as co%unas esco%?idas" se%eciona as %in?as @ue atendem aos critIrios e c%assi!ica ou a.rupa as %in?as resu%tantes na ordem especi!icadaF
M& 3 De2ini/es
I6$-04 I645
M& 3 Comandos
IN5ERT INT& nome4a2e%a L)campo1L" campo2L" FFFMM+M 5E%ECT Lori.emFMcampo1L" campo2L" FFFM 7R&M e#pressodeta2e%a
IN5ERT INT& nome4a2e%a L)campo1L" campo2L" FFFMM+M VA%UE5 )va%or1L" va%or2L" FFFM+
I6$-04 I645
1#emp%o 1/
(nsere um re.istro na ta2e%a autor IN5ERT INT& Autor )codi.o" nome" nascimento+ VA%UE5 (1" UO%iveira" >FU" U1&7-aB7 1<3=U)A
M& 3 Comandos
(nsere um re.istro na ta2e%a editora IN5ERT INT& 1ditora VA%UE5 (1" U-'VAAW 7 X(LLU" UAFSo 'ar%os" &21U" USo >osI do Aio retoU)A
I6$-04 I645
1#emp%o 2/
'ria ta2e%a autorve%?o em se.uida insere na ta2e%a autorve%?o" os autores com nascimento Y =1/=1/1<3= CREATE TAB%E AutorZe%?o) codi.o NUMBER(<) N&T NU%% C&N5TRAINT '?aveAutorZe%?o PRIMARY 1EY" nome VARCHAR(<>) N&T NU%%! nascimento DATE N&T NU%%! C&N5TRAINT CnicoAutorZe%?o UNI6UE( nome" nascimento) )A
M& 3 Comandos
I6$-04 I645
1#emp%o 2 )continuao+/ IN5ERT INT& AutorZe%?o 5E%ECT P 7R&M Autor 2HERE nascimento Y U=1/=1/1<3=UQ
M& 3 Comandos
UPD*4
a%tera va%ores de campos em uma determinada ta2e%a" com 2ase em critIrios especi!icados Sinta#e/ UPDATE nometa2e%a 5ET novova%or L2HERE condioS2oo%eanaMQ
M& 3 Comandos
UPD*4
1#emp%o 1/
A%terar o endereo e a cidade da ta2e%a editora com c[di.o \ 1 UPDATE 1ditora 5ET endereco \ UAZFKFSFD1 FA4(-A" 12&U" cidade \ USAK4A F]U 2HERE codi.o \ 1Q
M& 3 Comandos
1#emp%o 2/
Aea:usta o va%or de todos os %ivros em 1=^ UPDATE Livro 5ET va%or \ va%or P 1F1Q
D-&-4
remove os re.istros de uma ou mais ta2e%as @ue satis!aam aos critIriosF Sinta#e/ DE%ETE 7R&M nomeSta2e%a L2HERE condioS2oo%eanaMQ
M& 3 Comandos
1#emp%o 1/
$-&-C4
-1trai os valores arma.enados nas ta8elas9 0eali.a v:rias opera/es da ;lge8ra 0elacional+
M& 3 Comandos
$inta1e+
SELECT L !ST!NCT M ALLN I O M tabelaDO M LtabelaDN ampo1 LAS alias1N L> DDDNNJ "#$M e@pressBodetabela L> DDDN L%&E#E ondi;BoPbooleanaN L'#$() *+DDD N L&A,!N'DDD N L(N!$NDDD N
$-&-C4
M& 3 Comandos
-1emplo #+ $eleciona todos os campos na ta8ela autor SELECT O "#$M 3utor? -1emplo !+ $elecionar todos os nomes e datas de nascimento da ta8ela autor SELECT nome> nas imento "#$M 3utor? -1emplo >+ $elecionar todos os nomes e datas de nascimento da ta8ela autor renomeando a coluna nome para autor SELECT nome AS autor> nas imento "#$M 3utor?
Cl:usula ?@-0
-speci2ica ,uais registros das ta8elas listadas na cl:usula F05M so a2etados por uma instruo $-&-C4< UPD*4- ou D-&-4-9 $e no 2or especi2icado uma cl:usula ?@-0-< a consulta retornar: todas as linhas da ta8ela9 -1emplo #+
M& 3 Comandos
$eleciona todos os livros cu=o valor se=am maiores ,ue 0A B"<"" SELECT titulo> valor "#$M Livro %&E#E valor Q 67?
Cl:usula ?@-0
M& 3 Comandos
-1emplo !+ $elecionar as editoras da cidade de $o Paulo SELECT ra9ao "#$M #ditora %&E#E idade H RSBo PauloS? -1emplo >+ $elecionar tCtulo da ta8ela livro e nome da ta8ela autor e renomeando a ta8ela para 2acilitar a digitao SELECT 3%Dnome> LIDtitulo "#$M 3utor 3%> Livro LI> #s reve #S %&E#E 23%D odi.o H #SD odi.o3utor5 AN 2LID odi.o H #SD odi.oLivro5?
Cl:usula G05UP BG
M& 3 Comandos
Com8ina registros com valores idDnticos na lista de campos especi2icada em um Enico registro9 Um valor de resumo F criado para cada registro se vocD incluir uma 2uno agregada $%&< como $um ou Count< na instruo $-&-C49 -1emplo+
4odas editoras ,ue pu8licaram livro SELECT #ditoraDra9ao "#$M Livro> #ditora %&E#E LivroD odi.o#ditora H #ditoraD odi.o '#$()-*+-#ditoraDra9ao?
Cl:usula @*HI6G
M& 3 Comandos
-speci2ica ,uais registros agrupados so e1i8idos na instruo $-&-C4 com uma cl:usula G05UP BG9 Depois de G05UP BG com8inar os registros< @*HI6G e1i8ir: ,ual,uer registro agrupado pela cl:usula G05UP BG ,ue satis2aa Is condi/es da cl:usula @*HI6G9 -1emplo+ -ditoras cu=o total de pu8lica/es F maior ,ue # SELECT odi.o#ditora AS editora "#$M Livro '#$() *+ odi.o#ditora &A,!N' C$(NT. odi.o#ditora/ Q 1?
Cl:usula 50D-0 BG
M& 3 Comandos
Classi2ica os registros resultantes de uma consulta em um campo ou campos especi2icados< em ordem crescente ou decrescente9 5s registros so classi2icados pelo primeiro campo listado aps 50D-0 BG9 5s registros ,ue tDm valores iguais na,uele campo sero ento classi2icados pelo valor no segundo campo listado e assim por diante9 -1emplo+ $elecione nome e nascimento da ta8ela autor em ordem dos autores mais novos SELECT nome>nas imento "#$M 3utor $# E# *+ nas imento ESC?
5perador UPP-0
M& 3 Comandos
-1emplo !+
SELECT O "#$M 3utor TU#*# %PP#*2nome5 H "J-S#&
5perador DI$4I6C4
M& 3 Comandos
5perador I6
Determina se o va%or de uma e#presso I i.ua% a a%.um dos vHrios va%ores em uma %ista especi!icadaF Se e#pr !or encontrado na %ista de va%ores" o operador (n retornarH 4rueQ caso contrHrio" retornarH Fa%seF 1#emp%o/
M& 3 Comandos
$elecionar editora locali.adas nas cidades de so paulo< so carlos e rio de =aneiro SELECT O "#$M #ditora %&E#E idade !N 2VSW- P3%L-V> VSW- K3*L-SV> V*I- D# J34#I*-V5?
M& 3 Comandos
Determina se o valor de uma e1presso se situa dentro de um intervalo especi2icado de valores9 $e o valor de e1pr estiver entre valor# e valor! 'inclusive)< o operador BetJeen999*nd retornar: 4rueK caso contr:rio< retornar: False9 -1emplo+
$elecionar livros com valor entre 0A L"<"" e 0A B"<"" SELECT titulo> valor "#$M Livro %&E#E valor *ET%EEN X7 AN 67?
5perador &IO
M& 3 Comandos
'ompara uma e#presso de se@_Rncia de caracteres com um padro em uma e#presso SQLF ara padro" vocR pode uti%i5ar caracteres corin.as )por e#emp%o" Like `-AE^a" para `-AEAOK *OOESa+ ou uti%i5ar caracteres iso%ados )por e#emp%o" Like `SOS1a" para `>OS1 1 AOS1a+ 1#emp%o/
$elecionar nome de autor ,ue inicie com letra NeN SELECT nome "#$M 3utor %&E#E nome L!0E V#YV?
5perador I$ 6U&&
M& 3 Comandos
$elecionar as editoras com endereo nulo SELECT ra9ao "#$M #ditora %&E#E endere o !S N(LL?
5perador *HG
'a%cu%a a mIdia aritmItica de um con:unto de va%ores contido em um campo especi!icado de uma consu%taF 1#emp%o/
M& 3 Comandos
-Idia de va%ores dos %ivros S1L1'4 AZV)ZALOA+ AS -1D(A FAO- L(ZAOQ -Idia de va%ores dos %ivros de cada editora 5E%ECT 1DFra5ao" AVG)L(Fva%or+ A5 media 7R&M 1ditora 1D" Livro L( 2HERE 1DFcodi.o\L(Fcodi.o1ditora GR&UP BY 1DFra5aoQ
5perador C5U64
M& 3 Comandos
'a%cu%a o nGmero de re.istros retornado por uma consu%taF A !uno 'ount no conta re.istros @ue ten?am campos Ku%%" e#ceto @uando e#pr !or o caractere curin.a asterisco )P+F Se e#pr identi!icar vHrios campos" a !uno 'ount contarH um re.istro somente se um dos campos no !or Ku%%F Separe os nomes de campo com um bF 1#emp%o/
'ontar autores @ue nasceram antes de =1/=1/1<3= 5E%ECT C&UNT )P+ 7R&M Autor 2HERE nascimentoY U1/1/1<3=UQ
5perador C5U64
EBe# $oC
M& 3 Comandos
'ontar @uantos %ivros no tem vo%ume com nu%% 5E%ECT C&UNT )aZOLC-1U+ 7R&M LivroQ 'ontar tota% de editoras 5E%ECT C&UNT )P+ 7R&M 1ditoraQ 'ontar os %ivros pu2%icado por cada editora S1L1'4 1DFra5ao" C&UNT)L(Fcodi.o1ditora+ 7R&M 1ditora 1D" Livro L( 2HERE 1DFcodi.o \ L(Fcodi.o1ditora GR&UP BY 1DFra5aoQ
Aetornam o mJnimo ou o mH#imo de um con:unto de va%ores contido em um campo especi!icado em uma consu%taF 1#emp%o/
M& 3 Comandos
Se%ecionar o va%or do %ivro mais caro 5E%ECT MA4)va%or+ A5 ZASAL4O 7R&M LivroQ
Se%ecionar va%or do %ivro mais 2arato 5E%ECT -(K)va%or+ A5 ZAS*AAA4O 7R&M LivroQ
1#emp%o/
Se%ecionar o tJtu%o com va%or mais a%to 5E%ECT titu%o" va%or 7R&M Livro 2HERE va%or IN ) 5E%ECT MA4)va%or+ 7R&M Livro +Q Se%ecionar o tJtu%o com va%or mais a%to 5E%ECT titu%o" va%or 7R&M Livro 2HERE va%or IN )5E%ECT MIN)va%or+ 7R&M Livro+Q
M& 3 Comandos
5perador $UM
Aetorna a soma de um con:unto de va%ores contido em um campo especi!icado em uma consu%taF A !uno Sum i.nora os re.istros @ue conten?am campos Ku%%F EBe# $oC
M& 3 Comandos
Soma dos va%ores dos %ivros pu%icados pe%a editora com c[di.o 2 5E%ECT 5UM)va%or+ A5 soma1ditora 7R&M Livro 2HERE codi.o1ditora \ 2Q
5perador $UM
Somar os va%ores dos %ivros por cada editora 5E%ECT 1DFra5ao" 5UM)L(Fva%or+ 7R&M 1ditora 1D" Livro L( 2HERE 1DFcodi.o \ L(Fcodi.o1ditora GR&UP BY 1DFra5aoQ
M& 3 Comandos
J5I6 'Jun/es)
0eali.a opera/es ,ue envolvem duas ta8elas9 6ormalmente 2a. a PligaoQ entre uma chave estrangeira e a chave prim:rias a ,ue 2a. re2erDncia9 4ipos de Joins+
M& 3 Comandos
e,ui outer
-,ui Join
a condio de =uno F de igualdade9 recupera somente as tuplas ,ue o8edecem I condio de =uno9 -1emplo #+
M& 3 Comandos
SELECT LivroDnome> #ditoraDnome "#$M Livro> #ditora %&E#E LivroD odi.o#ditora H #ditoraD odi.o
-,ui Join
-1emplo !+
M& 3 Comandos
6o -,ui Join
a condio de =uno no F de igualdade9 recupera somente as tuplas ,ue o8edecem I condio de =uno9 -1emplo+
M& 3 Comandos
SELECT 3utorDnome "#$M 3utor> Livro> #s reve %&E#E LivroDCitulo H "JoBo e Maria& --------AN LivroD odi.o H #s reveD odi.oLivro --------AN 3utorD odi.o Q #s reveD odi.o3utor
5U4-0 Join
recupera tuplas das duas ta8elas mesmo ,ue elas no o8edeam I condio de =uno9 4ipos+
M& 3 Comandos
recupera todas as tuplas da primeira ta8ela< mesmo ,ue as no o8edeam I condio de =uno9 -1emplo # '5racle)+
M& 3 Comandos
SELECT LivroDnome> #ditoraDnome "#$M Livro> #ditora %&E#E LivroD odi.o#ditora 2Z5 H #ditoraD odi.o
-1emplo ! 'Inter8ase)+
M& 3 Comandos
SELECT LivroDnome> #ditoraDnome "#$M Livro LE"T $(TE# 1$!N #ditora $N odi.o#ditora H odi.o
recupera todas as tuplas da segunda ta8ela< mesmo ,ue as no o8edeam I condio de =uno9 -1emplo # '5racle)+
M& 3 Comandos
$elecione os livros e suas editoras< recuperando as editoras ,ue no possuem livros pu8licados9
SELECT LivroDnome> #ditoraDnome "#$M Livro> #ditora %&E#E LivroD odi.o#ditora H #ditoraD odi.o 2Z5
-1emplo ! +
$elecione os livros e suas editoras< recuperando as editoras ,ue no possuem livros pu8licados9
M& 3 Comandos
SELECT LivroDnome> #ditoraDnome "#$M Livro #!'&T $(TE# 1$!N #ditora $N odi.o#ditora H odi.o
recupera todas as tuplas das duas ta8elas< mesmo ,ue as no o8edeam I condio de =uno9 -1emplo # '5racle)+
M& 3 Comandos
$elecione os livros e suas editoras< recuperando as editoras ,ue no possuem livros pu8licados e os livros sem editora9
SELECT LivroDnome> #ditoraDnome "#$M Livro> #ditora %&E#E LivroD odi.o#ditora 2Z5 H #ditoraD odi.o 2Z5
-1emplo # '5racle)+
M& 3 Comandos
$elecione os livros e suas editoras< recuperando as editoras ,ue no possuem livros pu8licados e os livros sem editora9
SELECT LivroDnome> #ditoraDnome "#$M Livro "(LL $(TE# 1$!N #ditora $N odi.oLivro H odi.o
$u8consultas
M& 3 Comandos
Uma su8consulta F uma consulta em8utida em uma outra cl:usula $%&9 * su8consulta F sempre e1ecutada primeiro9 5 resultado da su8consulta F utili.ado pela consulta principal9 -1emplo+
$elecione os livros escritos pelo autor L9 SELECT titulo "#$M Livro %&E#E odi.o !N 2SELECT odi.oLivro "#$M #s reve %&E#E odi.o3utor H X5
$u8consultas correlacionada
M& 3 Comandos
Utili.ada para ocasionar um processamento tupla tupla9 * su8consulta re2erencia uma coluna na consulta principal9 Cada su8 consulta F e1ecutada uma ve. para cada tupla da consulta principal9 Passos+
#9 58tFm
a tupla na consulta principal !9 -1ecuta a su8consulta com o valor da o8tido em # >9 Utili.a o's) valor'es) da su8consulta para ,uali2icar a tupla o8tida em #9
$u8consultas correlacionada
-1emplo+
$elecione os livros cu=os preos se=am maiores ,ue a mFdia de preo dos livros de sua editora9
M& 3 Comandos
SELECT titulo "#$M Livro LivroPrin %&E#E valor Q 2SELECT 3[)2valor5 "#$M Livro LivroSub %&E#E LivroSubD odi.o#ditora H LivroPrin D odi.o#ditora5
5perador -7I$4$
a procura no continua na su8consulta9 a condio retorna 40U-9 a condio retorna F*&$-9 a 8usca continua na su8consulta9
M& 3 Comandos
5perador -7I$4$
1#emp%o/
SELECT 3utorD4ome "#$M 3utor %&E#E #FISCS 2 SELECT O "#$M AN #s reve #s reveDKodi.oLivro H 16845 5 %&E#E 2#s reveDKodi.o3utor H 3utorDKodi.o
M& 3 Comandos
5perador *6G
retorna 40U- se a comparao F verdadeira para pelo menos um valor retornado pela su8consulta9
-1emplo
M& 3 Comandos
$elecione o tCtulo dos &ivros ,ue possua autores nascidos em #ST"9 LivroDtitulo
SELECT
"#$M Livro %&E#E-LivroD odi.o !N 2 SELECT odi.oLivro ------"#$M #s reve ------%&E#E odi.o3utor HAN+ 2 SELECT odi.o "#$M 3utor %&E#E \#3*2nas imento5 H 1907 5 5
5perador *&&
retorna 40U- se a comparao F verdadeira para todos os valores retornados pela su8consulta9
Exemplo
M& 3 Comandos
SELEC titulo F!"M &ivro #$E!E codigo %& ' SELEC D%S %&C 'codigo&ivro) -----------------------"#$M #s reve -----------------------%&E#E odi.o3utor 23-ALL 2 SELECT odi.o "#$M 3utor %&E#E-())E#2nome5 H ())E#2RJoBoS 5 5
5perador U6I56
-1emplo
M& 3 Comandos
$elecione os livros ,ue custam mais ,ue 0A>"<"" ou ,ue so do ,uarto volume9
SELECT %&E#E (N!$N SELECT odi.o> titulo "#$M Livro %&E#E volume H 4 odi.o> titulo [alor Q 87 "#$M Livro
5perador I64-0$-C4
-1emplo
M& 3 Comandos
$elecione os livros ,ue custam mais ,ue 0A>"<"" e ,ue so do ,uarto volume9
SELECT %&E#E SELECT odi.o> titulo [alor Q 87 odi.o> titulo "#$M Livro !NTE#SECT "#$M Livro %&E#E volume H 4
5perador MI6U$
-1emplo
M& 3 Comandos
$elecione os livros ,ue custam mais ,ue 0A>"<"" e ,ue no so do ,uarto volume9
SELECT %&E#E M!N(S SELECT odi.o> titulo "#$M Livro %&E#E volume H 4 odi.o> titulo valor Q 87 "#$M Livro
* cl:usula $-&-C4 deve selecionar o mesmo nEmero de colunas9 *s colunas correspondentes devem ser o mesmo tipo de dado9 *s linhas duplicadas so automaticamente eliminados9 5s nomes das colunas do primeiro $-&-C4 F ,ue aparecem no resultado9 50D-0 BG somente pode ser usada indicando o nEmero da coluna9 50D-0 BG deve aparecer no 2inal do comando9
M& 3 Comandos
5s operadores U6I56< I64-0$-C4 e MI6U$ podem ser utili.ados em su8,ueries9 *s colunas $-&-C4s so e1ecutadas de cima para 8ai1o9 H:rios $-4 5P-0*450$ podem ser utili.ados9 Para indicar a se,UDncia de e1ecuo deve se utili.ar se parDnteses9
M& 3 Comandos
Comandos DC&
C&NNECT ermite a cone#o a uma 2ase de dados atravIs de um .erenciadorF DI5C&NNECT Desconecta de uma 2ase de dadosF C&MMIT 4orna permanente todas as a%teraes )como os comandos (KS1A4" D1L141 e C DA41+ !eitas desde o inJcio de uma transaoF R&%%BAC1 Descarta todas as a%teraes !eitas desde o inJcio da transao" ou do G%timo comando 'O--(4 ou AOLL*A'EF
C& 3 De2inio
Comando C5MMI4
4orna permanente todas as a%teraes )comandos (KS1A4" D1L141 e C DA41+ !eitas desde o inJcio da cone#oF 4odos os comandos da DDL causam um 'O--(4 automHticoF 1#emp%o/
C& 3 Comandos
Comando 05&&B*CO
Descarta todas as a%teraes )comandos (KS1A4" D1L141 e C DA41+ !eitas desde o inJcio da transao )do G%timo comando 'O--(4 ou AOLL*A'E+F 1#emp%o/
C& 3 Comandos