You are on page 1of 12

Apostila de SQL Structured Query Language Leandro Guarino Observaes: 1) Os comandos desta apostila sero escritos conforme o padro

o ANSI SQL-99, porm al umas fun!"es de #ata e Strin do SG$# %&SQL sero utili'adas( )) Ser* utili'ado como e+emplo o ,anco de dados de uma empresa de loca!o e la-a em de carros, conforme o es.uema demonstrado no ar.ui-o ESQUEMA. O!/

!o"ando SELE!#
O comando S0L012 utili'ado para recuperar informa!"es de uma ou mais ta,elas do ,anco de dados/ Sua sinta+e ,*sica 3 SELE!# $%&' (S#()!#* coluna%expresso'alias*+..., -.OM tabela; E/e"plos: Selecionar todos os campos da ta,ela cores: Select 4 from cores Selecionar a descri!o das cores: Select descricao from cores Anotaes: Os comandos S0L012 1) No so case-sensitive, ou se5a, no diferenciam letras mai6sculas de min6sculas( )) 7odem ser escritos em uma ou mais lin8as( 9) As pala-ras-c8a-e no podem ser a,re-iadas ou separadas entre lin8as( :) Aconsel8a-se separar as cl*usulas em lin8as, como o e+emplo acima( ;) A endenta!o usada para mel8orar a le i,ilidade do comando/ Operadores arit"0ticos < poss=-el criar e+press"es como n6meros e datas utili'ando os operadores aritmticos3 Operador > 4 ? @ escri1o Soma Su,tra!o %ultiplica!o #i-iso Aesto

E/e"plo: Seleciona a descri!o e o -alor acrescido de ;B@ dos tipos de la-a em Select descricao, -alor>-alor4;B?1BB from tiposCla-a em 2reced3ncia de operadores Os operadores de multiplica!o e di-iso tDm precedDncia em rela!o aos operadores de soma e su,tra!o/ 4alores )ULL Os -alores NELL no so a mesma coisa .ue 'ero ou espa!o em ,ranco, so recon8ecidos como um -alor indispon=-el, no-atri,u=do, descon8ecido ou inaplic*-el/ Obs.: opera!"es aritmticas com -alores NELL sempre retornam NELL

Apostila de SQL Structured Query Language Leandro Guarino !olu"n Alias 5apelido de coluna6 0m um comando S0L012, poss=-el atri,uir um apelido para os campos .ue so formados por e+press"es aritmticas ou fun!"es/ Em apelido de coluna3 1) Aenomeia um campo no comando S0L012( )) < 6til para c*lculos( 9) Se ue imediatamente a e+presso, podendo ser precedido ou no por AS( :) Ae.uer aspas duplas se possuir espa!os/ E/e"plos: Os 9 comandos a,ai+o so -*lidos3 Select descricao as d7cor from cores( Select descricao d7cor from cores( Select descricao 8d cor8 from cores( Operador de !oncatena1o 1oncatenar unir strin s/ No %&SQL, no poss=-el utili'ar o operador FF, pois e+iste a fun!o 1ON1A2( no Oracle, operador %% pode ser usado/ E/e"plo: Seleciona a cidade e o estado de todos os clientes separando-os por 9/ Select concatGcidade,H?H,estado) as cidadeCestado from clientes( Lin:as uplicadas 7ara eliminar lin8as duplicadas na instru!o S0L012, utili'a-se a cl*usula #IS2IN12/ E/e"plo: Seleciona todas cores eliminando a duplica!o da.uelas .ue possuem -alores i uais nos campos id7cor e descricao/ Select distinct 4 from cores( Seleciona todas as cores eliminando a duplica!o da.uelas .ue possuem -alores i uais no campo descricao/ Select distinct descricao from cores( .estringindo e ordenando resultados de consultas 7ara restrin ir o resultado de uma consulta, utili'ada a cl*usula ;<E.E/ A sinta+e do comando S0L012 com a cl*usula IJ0A0 3 SELE!# $%&' (S#()!#* campo|expresso 'alias*+..., -.OM tabela ';<E.E condio(es)*= E/e"plo: Seleciona o cliente .ue possui o campo id7cliente i ual a 13 Select 4 from clientes K8ere idCclienteL1 Seleciona o cliente .ue possui o nome >o1o3 Select 4 from clientes K8ere nomeLMNooM O,ser-e .ue utili'ada a aspas simples na compara!o de campos do tipo te+to G1JAA, OAA1JAA, 20P2, etc)/ Operadores de !o"para1o 7ara restri!o de resultados de consultas so utili'ados os se uintes operadores de compara!o3

Apostila de SQL Structured Query Language Leandro Guarino Operador L Q R QL RL RQ ou SL $02I00N///AN#// / INGcon5unto) LIT0 IS NELL #escri!o I ual a %aior .ue %enor .ue %aior ou i ual a %enor ou i ual a #iferente 0ntre dois -alores 0ncontra .ual.uer -alor da lista 0ncontra um formato de caracteres < um -alor NELO

E/e"plos: Seleciona todas as loca!"es .ue possuem o -alor de di*ria maior ou i ual a 1BB3 Select 4 from locacoes K8ere -alorCdiariaQL1BB Seleciona todas as loca!"es .ue possuem o -alor de di*ria entre 1BB e )BB, incluindo os -alores 1BB e )BB3 Select 4 from locacoes K8ere -alorCdiaria ,etKeen 1BB and )BB Seleciona todas as loca!"es em .ue os carros alu ados foram o 1, : ou 93 Select 4 from locacoes K8ere idCcarro in G1,:,9) Seleciona todas as loca!"es .ue no possuem multa3 Select 4 from locacoes K8ere multa is null Operador L(?E 0ste operador utili'ado para encontrar uma determinada com,ina!o de caracteres em uma strin / E/e"plos: Seleciona todos os clientes cu5os nomes iniciam pela letra A3 Select 4 from clientes K8ere nome liUe Ha@H( Seleciona todos os clientes cu5os nomes iniciam pela letra A e terminam com a letra O3 Select 4 from clientes K8ere nome liUe Ha@oH( Seleciona todos os clientes cu5os nomes terminam com a letra O3 Select 4 from clientes K8ere nome liUe H@oH( Seleciona todos os clientes cu5os nomes possuem a letra E na terceira posi!o3 Select 4 from clientes K8ere nome liUe HCCe@H( Seleciona todos os clientes cu5os nomes possuem a letra . na pen6ltima posi!o3 Select 4 from clientes K8ere nome liUe H@rCH( Operadores L@gicos Os operadores lV icos so utili'ados para a defini!o de duas ou mais condi!"es em uma mesma cl*usula IJ0A0/

Apostila de SQL Structured Query Language Leandro Guarino Wormam essa classe os se uintes operadores3 Operador #escri!o AN# Aetorna 2AE0 se am,as as condi!"es so -erdadeiras OA Aetorna 2AE0 se uma das condi!"es -erdadeira NO2 Aetorna 2AE0 se a condi!o falsa E/e"plos: Seleciona todas as loca!"es .ue possuem multa3 select 4 from locacoes K8ere multa is not null Seleciona todos os clientes cu5os nomes iniciam pela letra A e moram no estado de S23 Select 4 from clientes K8ere estadoLHS7H and nome liUe Ha@H Seleciona todos os clientes cu5os nomes iniciam pela letra A e moram nos estados de S2 ou .>3 Select 4 from clientes K8ere GestadoLHS7H or estadoLHANH) and nome liUe Ha@H Seleciona todos os clientes .ue no moram nos estados de S2 e .> Select 4 from clientes K8ere estado not in GHS7H,HANH) .egras de preced3ncia de operadores 7recedDnc Operador ia 1 Operadores aritmticos ) Operador de concatena!o 9 1ondi!"es de compara!o : IS XNO2Y NELL, LIT0, XNO2Y IN ; XNO2Y $02I00N Z #iferente [ 1ondi!o lV ica NO2 \ 1ondi!o lV ica AN# 9 1ondi!o lV ica OA ica: para e-itar pro,lemas com operadores, utili'e os parDnteses para definir a precedDncia/ Select 4 from clientes K8ere estadoLHANH and Gnome liUe H,@H or nome liUe Ha@H)( 0ste comando retorna os clientes .ue so do AN cu5os nomes iniciam pelas letras A ou A/ Select 4 from clientes K8ere estadoLHANH and nome liUe H,@H or nome liUe Ha@H( 0ste comando retorna os clientes .ue moram no AN cu5os nomes iniciam pela letra A e todos os clientes de .ual.uer estado cu5os nomes iniciam pela letra A/ Ordenando resultados de consultas 7ara ordenar o resultado de uma consulta utili'ada a cl*usula OA#0A $]/ 7ara definir uma ordena!o decrescente, utili'ada a cl*usula #0S1( 5* uma ordena!o crescente definida pela cl*usula AS1 ou pela omisso destas ) cl*usulas/

Apostila de SQL Structured Query Language Leandro Guarino E/e"plos: Seleciona todos os clientes e ordena a lista por nome Gcrescentemente) Select 4 from clientes order ,& nome O comando a,ai+o retorna o mesmo resultado do comando anterior Select 4 from clientes order ,& nome AS! Seleciona todas as loca!"es ordenando-as decrescentemente pelo -alor da di*ria Select 4 from locacoes order ,& -alorCdiaria desc Seleciona todas as loca!"es e+i,indo das mais recentes para as mais anti as Select 4 from locacoes order ,& dataClocacao desc+ 8oraClocacao desc Observa1o: podem ser definidos .uantos critrios de ordena!o forem necess*rios/ No comando, acima foram definidos ) critrios3 dataClocacao e 8oraClocacao/ Se as datas de duas loca!"es forem i uais, sero utili'ados os respecti-os 8or*rios de loca!o para definir .ual a mais recente/ Ordenando resultados de consulta por apelidos de colunas 2am,m poss=-el ordenar consultas utili'ando os apelidos de colunas/ E/e"plo: Seleciona a data de loca!o e o -alor total pa o de todas as loca!"es .ue possuem multa e ordena pelo -alor total calculado/ Select dataClocacao, -alorCdiaria>multa as 2O2AL from locacoes K8ere multa is not null order ,& 2O2AL 2am,m poss=-el utili'ar o n6mero de uma coluna da consulta na ordena!o3 E/e"plo: Ordena o resultado da consulta pelo )^ campo definido no comando S0L012, ou se5a, o campo apelidado de 2O2AL/ Select dataClocacao, -alorCdiaria>multa as 2O2AL from locacoes order ,& )

UtiliBando Cunes de Dnica lin:a


As fun!"es de 6nica lin8a so aplicadas para formata!o, c*lculo ou cria!o de e+press"es/ So e+emplos de fun!"es de 6nica lin8a no %]SQL3 SE$S2A, #A20CWOA%A2, INS2A, 2AI%, etc/ -un1o E770AGstrin ) escri1o 1on-erte todas as letras da strin para mai6sculas 1on-erte todas as letras da strin para min6sculas Aetira os espa!os em ,ranco da direita e da es.uerda da strin Aetorna parte E/e"plo Select E770AGnome) as %AIES1 from clientes Select LOI0AGnome) as %INES1 from clientes Select 4 from clientes K8ere 2AI%Gnome)LHNooH

LOI0AGstrin )

2AI%Gstrin )

SE$S2AING

Aetorna todos os clientes cu5os nomes

Apostila de SQL Structured Query Language Leandro Guarino Gstrin , inicial, .tde) de uma strin iniciam por Ma Select 4 from clientes K8ere su,strin Gnome,1,))LH%aH Aetorna todos os clientes cu5os nomes terminam com dro Select 4 from clientes K8ere su,strin Gnome,-9)LHdroH Aetorna todos os clientes cu5os nomes possuem dr a partir da antepen6ltima letra Select 4 from clientes K8ere su,strin Gnome,-9,))LHdrH Select nome, len t8Gnome) as taman8o from clientes Select nome, instrGnome,HaH) as posicaoCA from clientes

L0NG2JGstrin )

INS2AGstrin ,caracte r)

WLOOAGn6mero) 10ILGn6mero) 7IG) AOEN#Gn6mero) AAN#Gn6mero)

7OIGP,]) NOIG) 1EAA0N2C#A20G) 1EAA0N2C2I%0G) #A20CWOA%A2Gdat a, formato) %ON2JGdata)

Aetorna a .uantidade de caracteres de uma strin Aetorna a posi!o de um determinado caracteres Gou con5unto de caracteres) em uma strin Aetorna o -alor inteiro superior mais prV+imo Aetorna o -alor inteiro inferior mais prV+ima Aetorna o -alor do 7I Arredonda um n6mero Gera um n6mero aleatVrio entre Be1 Aetorna um n6mero P ele-ado a ] Aetorna a 8ora e a data atuais Aetorna a data atual Aetorna a 8ora atual Aetorna uma data em um formato determinado Aetorna o mDs de uma determinada

Select WLOOAGmulta) from locacoes Select 10ILGmulta) from locacoes Select piG) Select roundGmulta) as arredondada from locacoes Gera um n6mero aleatVrio entre B e 1BB Select randG)41BB Select 7OIG),9) Select 4 from locacoes K8ere dataClocacaoRLNOIG) Select 4 from locacoes K8ere dataClocacaoRL1EAA0N2C#A20G) Select 4 from locacoes K8ere 8oraClocacaoQL1EAA0N2C2I%0G) Select dateCformatGdataClocacao,H@d?@m? @]H) as dataformatada from loca!"es Select %ON2JGNOIG)) Aetorna todas as loca!"es reali'adas no

Apostila de SQL Structured Query Language Leandro Guarino data ]0AAGdata) Aetorna o ano de uma determinada data Aetorna o dia do mDs de uma determinada data Adiciona um inter-alo de data a uma determinada data Su,trai um inter-alo de data de uma determinada data Aetorna um n6mero em dias .ue representa a diferen!a entre a data1 e a data) Aetorna uma 8ora e.ui-alente _ diferen!a entre a 8ora1 e a 8ora) Aetorna o n6mero da semana no ano a partir de uma determinada data Aetorna um resultado a partir de uma condi!o mDs atual Select 4 from locacoes K8ere mont8GdataClocacao)Lmont8GnoKG)) Aetorna todas as loca!"es reali'adas no ano atual Select 4 from locacoes K8ere &earGdataClocacao)L&earGnoKG)) Aetorna todas as loca!"es reali'adas no dia ) de .ual.uer mDs Select 4 from locacoes K8ere da&GdataClocacao)L) Aetorna a data de loca!o acrescida de [ dias Select dataClocacao, dateCaddGdataClocacao, inter-al [ da&) as entre a from locacoes Aetorna todas as loca!"es reali'adas a partir da 6ltima semana Select 4 from locacoes K8ere dataClocacaoQLdateCsu,GnoKG),inter-al 9 KeeU) Aetorna a .uantidade de dias entre a data atual e a data de loca!o Select datediffGnoKG),dataClocacao) as dias from locacoes

#A]Gdata)

#A20CA##Gdata, IN20AOAL numero unidade) #A20CSE$Gdata, IN20AOAL numero unidade) #A20#IWWGdata1,dat a))

2I%0#IWWG8ora1,8or a))

Aetorna a diferen!a entre a 8ora atual e a 8ora de loca!o Select timediffG1EAA0N2C2I%0G),8oraClocacao) from loca!"es Aetorna o n6mero da semana do primeiro e do 6ltimo dia do ano Select I00TGH)BB9-B1-B1H),I00TGH)BB9-1)91H) No e+emplo a,ai+o, se o campo %EL2A for NELL, o resultado de .ual.uer c*lculo aritmtico tam,m retornar* NELL/ 7ortanto, uma op!o utili'ar a fun!o IW para -erificar se o campo %EL2A NELL e retornar B em caso -erdadeiro/ Select -alorCdiaria, multa, -alorCdiaria4ifGmulta is null,B,multa) from loca!"es

I00TGdata)

IWGcondi!o,resultad o -erdadeiro,resultado falso)

Agrupando dados
0m al umas situa!"es necess*rio a rupar re istros de ta,elas para som*-los ou cont*-los/ Nesses casos, as fun!"es de 6nica lin8a no se aplicam, sendo .ue de-emos usar fun!"es de a rupamento/

Apostila de SQL Structured Query Language Leandro Guarino As fun!"es de a rupamento mais comuns so3 1OEN2G), AOGG), SE%G), %ING) e %APG)/ 0ssas fun!"es no consideram os -alores NELL/ -un1o !OU)#5ca"po%$6 A fun!o 1OEN2 conta o n6mero de re istros retornados pela consulta/ E/e"plo: Quantas loca!"es foram reali'adas 8o5e` Select countG4) as .tdeClocacoes from locacoes K8ere dataClocacaoL1EAA0N2C#A20G) Ema op!o no uso da fun!o 1OEN2 informar dentro dos parDnteses o campo c8a-e prim*ria da ta,ela/ Select countGidClocacao) as .tdeClocacoes from locacoes K8ere dataClocacaoL1EAA0N2C#A20G) A fun!o 1OEN2 pode ser usada com a cl*usula #IS2IN12 .uando se dese5a contar todos os -alores diferentes de um campo3 Aetorna a .uantidade de loca!"es .ue possuem -alores de di*rias diferentes Select countGdistinct -alorCdiaria) as -alores from locacoes -un1o A4E5ca"po6 A fun!o AOG retorna a mdia de um campo informado dentro do con5unto de re istros selecionados pela consulta/ E/e"plo: A consulta a,ai+o retorna a mdia das multas das loca!"es, porm no considera as loca!"es .ue no possuem multa, pois AS WENab0S #0 AGAE7A%0N2O NcO 1ONSI#0AA% OS OALOA0S NELL/ Select AOGGmulta) as mediaCmulta from locacoes A solu!o para o caso acima pode ser3 Select AOGGifGmulta is null,B,multa)) as mediaCmulta from locacoes -un1o SUM56 A fun!o SE% retorna a soma de um campo informado dentro do con5unto de re istros selecionados pela consulta/ E/e"plo: Aetorna a soma dos -alores de di*rias de todas as loca!"es Select SE%G-alorCdiaria) as somaCdiarias from locacoes -unes M()56 e MAF56 0stas fun!"es retornam, respecti-amente, o -alor m=nimo e o -alor m*+imo de um campo dentro do con5unto de re istros selecionados pela consulta/ E/e"plo: Aetorna a maior e a menor multa de todas as loca!"es Select %a+Gmulta) maiorCmulta ,%inGmulta) menorCmulta from locacoes Aetorna a data da loca!o mais recente Select ma+GdataClocacao) as maisCrecente from locacoes !lGusulas E.OU2 AH e <A4()E

Apostila de SQL Structured Query Language Leandro Guarino A cl*usula GAOE7 $] permite di-idir o con5unto de re istros selecionados pela consulta em rupos de re istros/ E/e"plo: Quantas loca!"es aconteceram por dia` Select countG4) as locacoesCporCdia, data7locacao from locacoes roup ,& data7locacao OAS.: 2odas as colunas do S0L012 .ue no forem inseridas nas fun!"es de a rupamento de-em ser colocadas na cl*usula GAOE7 $]/ O,ser-e no comando acima a coluna dataClocacao/ 0m contrapartida, no necess*rio .ue as colunas da cl*usula GAOE7 $] se5am inseridas no S0L012/ Oe5a o e+emplo3 Select countGdataClocacao) as locacoesCporCdia from locacoes roup ,& data7locacao Wun!"es de a rupamento e apelidos no podem ser usadas em cl*usulas IJ0A0 0ste comando retorna um E..O: Select countGdataClocacao) as locacoesCporCdia from locacoes K8ere countGdataClocacao)Q9 roup ,& dataClocacao 2am,m no poss=-el usar apelidos Galiases) na cl*usula IJ0A0/ O comando a,ai+o tam,m retorna um E..O3 Select countGdataClocacao) as locacoesCporCdia from locacoes K8ere locacoesCporCdiaQ9 roup ,& dataClocacao 0nto, necess*rio utili'armos a cl*usula JAOING .uando .ueremos restrin ir consultas a partir de fun!"es de a rupamento/ O,ser-e o e+emplo3 Select countGdataClocacao) as locacoesCporCdia from locacoes roup ,& dataClocacao :aving count5data7locacao6Q1 2am,m poss=-el utili'ar apelidos no %&SQL3 Select countGdataClocacao) as locacoesCporCdia from locacoes roup ,& dataClocacao :aving locacoes7por7diaQ1

Selecionando dados de "Dltiplas tabelas


Quando 8* a necessidade de selecionar dados de m6ltiplas ta,elas, de-em ser reali'ados os relacionamentos utili'ando as c8a-es estran eiras e c8a-es prim*rias, conforme o conceito de $anco de #ados Aelacional/ 0sses relacionamentos so feitos por meio da cl*usula NOIN, cu5a sinta+e 3 SELE!# table1.column, table2.column -.OM table1 ')A#U.AL >O() table2* % '>O() table2 US()E 5column_name6* % '>O() table2 O) 5table1.column_name I table2.column_name6*% 'LE-#%.(E<#%-ULL OU#E. >O() table2 O) 5table1.column_name I table2.column_name6*% '!.OSS >O() table2*= icas

Apostila de SQL Structured Query Language Leandro Guarino 1) Ese os nomes das ta,elas como prefi+os de seus campos no comando S0L012( )) Ese apelidos de ta,elas para mel8orar a performance( 9) Ese apelidos de colunas para diferenciar colunas .ue possuem o mesmo nome, mas fa'em parte de ta,elas diferentes/ !lGusula )A#U.AL >O() A cl*usula NA2EAAL NOIN ,aseada em todas as colunas das ta,elas relacionadas .ue possuem o mesmo nome, e retorna as lin8as das duas ta,elas .ue tDm -alores i uais nas colunas encontradas/ Se as colunas ti-erem mesmo nome, porm, diferentes tipos de dados, ser* retornado um erro/ E/e"plo: Seleciona todos os carros e suas respecti-as cores/ O relacionamento reali'ado pelo campo id7cor/ Select 4 from carros natural 5oin cores Seleciona todas as loca!"es com seus respecti-os carros/ Os campos relacionados so3 id7carro+ id7cliente/ Select 4 from locacoes natural 5oin carros !lGusula US()E Quando no se dese5a relacionar todos os campos .ue possuem nomes i uais, podese utili'ar a cl*usula ESING para especificar .uais campos de-ero ser relacionados/ E/e"plo: Seleciona todas as loca!"es com seus respecti-os carros relacionando as ta,elas somente pelo campos id7carro/ Select 4 from locacoes 5oin carros usin GidCcarro) 7odem ser informados mais de um campo na cl*usula ESING3 Select 4 from locacoes 5oin carros usin GidCcarro,idCcliente) !lGusula O) A cl*usula ON utili'ada para relacionar campos .ue no possuem os mesmos nomes em diferentes ta,elas/ Nesta cl*usula necess*rio informar .uais campos sero relacionados/ E/e"plos: Seleciona todas as loca!"es e seus respecti-os carros3 Select 4 from locacoes l 5oin carros c on l/idCcarroLc/idCcarro Select 4 from locacoes l 5oin carros c on l/idCcarroLc/idCcarro 5oin cores on c/idCcorLcores/idCcor )oneJuiKoin < poss=-el relacionar ta,elas sem a compara!o de i ualdade/ E/e"plo: Select 4 from locacoes l 5oin carros c on l/idCcarro ,etKeen 1 and c/idCcarro !lGusula OU#E. >O()

Apostila de SQL Structured Query Language Leandro Guarino No relacionamento de i ualdade entre duas ta,elas so retornados os re istros .ue possuem referDncias em am,as as ta,elas, porm pode 8a-er a necessidade de selecionar todos os re istros .ue possuem referDncias nas duas ta,elas e os re istros .ue possuem referDncia apenas em uma delas/ E/e"plo: Selecione todos os clientes .ue 5* reali'aram loca!"es e os .ue ainda no reali'aram3 Select cli/nome, loc/dataClocacao from clientes cli leCt outer Koin locacoes loc on cli/idCclienteLloc/idCcliente( Obs.: utili'ou-se L0W2 OE20A NOIN pelo moti-e de .ue a ta,ela de 1LI0N20S est* _ es.uerda da cl*usula NOIN/ Se esti-esse _ direita, de-eria ser utili'ada a cl*usula AIGJ2 OE20A NOIN/ !lGusula -ULL OU#E. >O() J* ainda a cl*usula WELL OE20A NOIN .ue retorna os re istros relacionados e os no-relacionados das duas ta,elas/ No funciona no %&SQL/ !lGusula !.OSS >O() 0sta cl*usula retorna o produto cartesiano entre duas ta,elas, ou se5a, a com,ina!o de todos os re istros de duas ta,elas/

SUA!O)SUL#AS
As su,consultas so eralmente utili'adas .uando no poss=-el selecionar um con5unto de re istros com apenas um comando S0L012/ As su,consultas podem ser utili'adas conforme as se uintes sinta+es3 SELE!# campos -.OM tabela ;<E.E campo operador 5SELE!# campos -.OM tabela6= Observaes: 1) As su,consultas so e+ecutadas antes da consulta principal( )) O resultado da su,consulta utili'ado pela consulta principal/ E/e"plo: Seleciona todos os clientes mais no-os .ue o cliente Noo3 Select 4 from clientes K8ere dataCnascimento Q Gselect dataCnascimento from clientes K8ere nomeLHNooH) Orientaes para subconsultas: 1) Insira as su,consultas entre parDnteses( )) 7ara mel8or le i,ilidade, escre-a as su,consultas sempre depois do operador( 9) Etili'e operadores de uma 6nica lin8a com su,consultas .ue retornam apenas uma lin8a, e operador de m6ltiplas lin8as com su,consultas .ue retornam mais de uma lin8a/ Operadores de Dnica lin:a So operadores .ue podem comparar um -alor somente com um outro -alor/ Operador L Q QL R escri1o I ual a %aior .ue %aior ou i ual a %enor .ue

Apostila de SQL Structured Query Language Leandro Guarino RL RQ ou SL %enor ou i ual a #iferente de

E/e"plo: Seleciona todos os clientes .ue moram na cidade do cliente Noo Select 4 from clientes K8ere cidade L Gselect cidade from clientes K8ere nomeLHNooH) Seleciona as informa!"es da loca!o .ue possui o menor -alor de di*ria Select 4 from locacoes K8ere -alorCdiaria L Gselect minG-alorCdiaria) from locacoes) Operadores de "Dltiplas lin:as So operadores .ue podem comparar um -alor com uma lista outros -alores/ Operador IN AN] escri1o I ual a .ual.uer elemento da lista ou su,consulta #e-e ser precedido por L, Q, R, QL, RL, RQ/ 1ompara um -alor com cada -alor de uma lista ou su,consulta/ Aetorna WALS0 se a su,consulta no retornar lin8as/ #e-e ser precedido por L, Q, R, QL, RL, RQ/ 1ompara um -alor com cada -alor de uma lista ou su,consulta/ Aetorna 2AE0 se a su,consulta no retornar lin8as/

ALL

E/e"plos: Seleciona todas as la-a ens dos carros .ue possuem a cor dOermel8aM/ Select 4 from la-a ens K8ere idCcarro in Gselect idCcarro from carros inner 5oin cores on cores/idCcorLcarros/idCcor K8ere cores/descricaoLHOermel8aH)( Seleciona todas as loca!"es .ue possuem T% WINAL maior .ue a T% de JualJuer carro Select 4 from locacoes K8ere UmCfinal Q A)H Gselect Um from carros) Seleciona todas as loca!"es .ue possuem T% WINAL maior .ue a T% de todos os carros Select 4 from locacoes K8ere UmCfinal Q ALL Gselect Um from carros)

!o"ando

ES!'.(AE*

O comando #0S1AI$0 e+i,e a estrutura de uma ta,ela/ #0S1 um sinenimo de #0S1AI$0/ E/e"plo: 0+i,e a estrutura da ta,ela clientes3 desc clientes

You might also like