Вы находитесь на странице: 1из 16

1.

ETAPA 1
1.1 PASSO 1 Fundamentos de Consultas SQL e comandos DML
Dispor de Dados espalhados em um arui!o ou em um ser!idor de "anco de
dados #erido por um S$%D n&o resol!e muita coisa uando pensamos
!isuali'ar ou res#atar esses dados.
(ma #a!eta desor#ani'ada e cheia torna di)*cil a locali'a+&o de seu
documento, portanto n&o - apenas #uardar um dado, - sa"er #uardar, assim
como n&o - apenas consultar, "uscar esse dado - sa"er o ue procura e
como procura.
. tare)a do analista tornar o acesso aos dados al#o ami#/!el, se0a ela"orando
de )orma coerente as ta"elas de um sistema, se0a tam"-m ela"orando
consultas otimi'adas a esses dados. Tare)as essas s&o poss*!eis, o"!iamente,
com o au1*lio de uma )erramenta de S$%D e tam"-m dominando uma lista
de comando SQL, uma !e' ue "anco de dados na lin#ua#em SQL - mais
comum, al-m disso, sistemas S$%D permitem arma'enar, modi2car e e1trair
dados de um "anco de )orma ami#/!el e e2ciente. O o"0eti!o do S$D% -
)acilitar a pro#rama+&o de aplica+3es ue utili'am "anco de dados, podendo
ele ter sua or#ani'a+&o hier/ruica, em rede, relacional ou orientada a
o"0eto.
A se#uir !ou descre!er o nosso entendimento so"re os principais comandos
SQL.
Para acessar os dados de "anco atra!-s de um S$%D utili'amos comando
chamados DML 4 Lin#ua#em de Manipula+&o de Dados ou data Manipulation
Lan#ua#e5, esses comandos )ormam um su"con0unto dentro da lin#ua#em
SQL usada para inserir, atuali'ar e apa#ar dados, dessa )orma come+amos a
ter dom*nio so"re os dados arma'enados.
Essa manipula+&o como chamamos en!ol!em consultas e atuali'a+&o, como
por e1emplo6
7 8ecuperar uma lista com o
nome de todos os munic*pios cadastrados
7 Listar o nome dos )uncion/rios ue s&o casados9
7 Alterar o nome de uma )uncion/ria ue casou9
7 Atuali'ar o sal/rio de )uncion/rio9
7 :ncluir um "ene)*cio a um dependente9
7 Criar um #rupo para outro departamento9
7 E1cluir um produto ue uma lo0a n&o ir/ tra"alhar mais9
Para tal essas consultas ou atuali'a+3es precisam ser especi2cadas
corretamente dentro do padr&o da lin#ua#em SQL e sinta1e do S$%D antes
de serem processadas.
E1emplos de comandos e e1emplos de e1ecu+&o de comandos6
7 SELE;<O S:MPLES
Comando SELECT
O comando SELECT permite recuperar os dados de um o"0eto do "anco de
dados, como uma ta"ela, !ie= e, em al#uns casos, uma stored procedure
4al#uns "ancos de dados permitem a cria+&o de procedimentos ue retornam
!alor5.
A sinta1e mais "/sica do comando -6
SELECT
F8OM
E1emplo6
SELECT COD:$O, >OME F8OM CL:E>TES9
SELECT ? F8OM CL:E>TES9
O caractere ? 4asterisco5 representa todos os campos. Apesar de pr/tica, este
caractere n&o - muito utili'ado, pois, para o S$%D, - mais r/pido rece"er o
comando com todos os campos e1plicitados. O uso do ? o"ri#a o ser!idor a
consultar uais s&o os campos antes de e)etuar a "usca dos dados, criando
mais um passo no processo.
7 :>SE8;<O
Comando :>SE8T
O comando :>SE8T permite incluir dados no "anco de dados.
A sinta1e mais "/sica do comando -6
:>SE8T :>TO 4, , ...5
@AL(ES 4, , ...59
E1emplo6
:>SE8T :>TO PESSOAS 4>OME, :DADE5
@AL(ES 4ACA8LOSB, CD59
7 CO>D:;<O
Comando EFE8E
A cl/usula Ehere permite ao comando SQL passar condi+3es de
2ltra#em. @e0a o e1emplo6
SELECT COD:$O, >OME F8OM CL:E>TES
EFE8E COD:$O G 1D9
Os parHnteses corretamente utili'ados d&o mais poder as consultas6
SELECT COD:$O, >OME F8OM CL:E>TES
EFE8E (F G A8IB O8 4(F G ASPB A>D AT:@O G A>B59
>este comando, todos os clientes do 8io de Ianeiro e apenas os clientes
inati!os de S&o Paulo seriam capturados.
7 O8DE>A;<O
A ordena+&o pode ser de2nida com o comando O8DE8 %J. Assim como no
comando EFE8E, o campo de ordena+&o n&o precisa estar listado como
campo de !isuali'a+&o6
SELECT COD:$O, >OME F8OM CL:E>TES
O8DE8 %J >OME9
>a esteira da e1plica+&o do comando de ordena+&o EFE8E podemos )alar
so"re o comando (PDATE
7 AT(AL:KA;<O
(pdate Os dados pertencentes a mLltiplas linhas de uma ta"ela podem ser
alterados por meio do comando (PDATE. Quando usarmos o (PDATE,
de!emos especi2car al#umas in)orma+3es, como o nome da ta"ela ue ser/
atuali'ada e os 2ltros ue ser&o usados na atuali'a+&o.
Sinta1e "/sica6
(PDATE nomedata"ela
SET coluna1 G !alor1, colunaM G !alorM, colunaC G !alorC
EFE8E crit-rio.
(PDATE F(>C:O>A8:O
SET SALA8:OF(>C:O>A8:O G SALA8:OF(>C:O>A8:O ? 1.1
EFE8E SALA8:OF(>C:O>A8:O N 1ODD.DD9
>essa instru+&o SQL, do um aumento de 1DP no sal/rio dos )uncion/rios ue
ti!erem um o sal/rio menor ue 8Q 1ODD,DD.
7 ERCL(S<O
O comando DELETE de!e ser usado uando dese0amos e1cluir os dados de
uma ta"ela. Sinta1e "/sica6
DELETE F8OM nomedata"ela9
Por e1emplo, se uisermos, remo!er os dados da ta"ela Funcionario,
de!emos e1ecutar a se#uinte instru+&o SQL6
DELETE F8OM F(>C:O>A8:O
EFE8E >OMEF(>C:O>A8:O G SCA8LOS :>OCE>C:OS9
1.M PASSO M T Consultas SQL
para o sistema S:$
a5 Consulta Clientes6
E1i"ir os campos6 nome, cidade, (F, idade, #Hnero.
Os re#istros de!em estar ordenados por nome.
Filtros da consulta6 cidade.
SELECT >OME, C:DADE, (F, :DADE, $E>E8O
F8OM CL:E>TE
EFE8E C:DADE G
O8DE8 %J >OME9
"5 Consulta Funcion/rios6
E1i"ir os campos6 nome, car#o, idade, data de admiss&o, !alor da comiss&o
Os re#istros de!em estar ordenados por car#o.
Filtros da consulta6 ati!o.
SELECT >OME, CA8$O, C:DADE, DATAADM:SSAO, COM:SSAO
F8OM F(>C:O>A8:O
EFE8E AT:@O G
O8DE8 %J CA8$O9
c5 Consulta @endas por Produtos6
E1i"ir os campos6 descri+&o do produto, pre+o de !enda do produto, !alor
total de !endas para produto.
Os re#istros de!em estar ordenados pelo !alor total das !endas, sendo os
!alores maiores nos primeiros re#istros.
Filtros da consulta6 mHs em ue )oram reali'adas as !endas.
SELECT %%.DESC8:CAO, %%.P8ECO@E>DA, AA.@ALO8TOTAL
F8OM :TEM@E>DA AA
IO:> P8OD(TO %%
O> 4AA.P8OD(TOU:TEM@E>DA G %%.:DP8OD(TO5
IO:> @E>DA CC
O> 4AA.@E>DAU:TEM@E>DA G CC.:D@E>DA5
EFE8E CC.DATA G
O8DE8 %J AA.@ALO8TOTAL DESC9
d5 Consulta @endas por ClienteM6
E1i"ir o nome do cliente, cidade, uantidade total de !endas, !alor total de
!endas.
A consulta de!e e1i"ir todos os clientes, inclusi!e aueles ue n&o possuem
re#istros de !enda.
Os re#istros de!em estar ordenados por nome e cidade.
Filtros da consulta6 mHs em ue )oram reali'adas as !endas.
SELECT AA.>OME, AA.C:DADE, %%.@ALO8TOTAL, CC.QTDE
F8OM CL:E>TE AA
LEFT O(TE8 IO:> @E>DA %%
O> 4AA.:DCL:E>TE G %%.CL:E>TEU@E>DA5
IO:> :TEM@E>DA CC
O> 4%%.:D@E>DA G CC.@E>DAU:TEM@E>DA5
EFE8E MO>TF4%%.DATA5 G
O8DE8 %J AA.>OME, AA.C:DADE ASC9
1.C PASSO C T Comandos DML para as ta"elas
Criar um e1emplo para as a+3es inserir, alterar e apa#ar para cada ta"ela.
A. Ta"ela CL:E>TE9
%. Ta"ela F(>C:O>A8:O9
C. Ta"ela @E>DA9
D. Ta"ela P8OD(TO9
E. Ta"ela :TEM@E>DA9
1.V PASSO V6 Otimi'a+&o de Consultas e $erenciamento de Transa+3es.
8elatWrio Parcial9
@imos nessa Etapa 1 os conceitos e )undamentos dos comandos SQL e
comandos DML, pudemos compreender melhor a e1ecu+&o desses comandos
e com e1emplos por em pr/tica o conteLdo aprendido.
%:%L:O$8AF:A
7 XO8TF, FenrY F.9 S:L%E8SCFATK, A"raham. Sistemas de "anco de
dados. S&o Paulo6 MaZron %ooZs, 1OO[.
7 X8OE>XE, Da!id M. %ando de dados6 )undamentos, pro0eto e
implementa+&o. 8io de Ianeiro6 LTC, 1OOO.
7 ELMAS8:, 8ame' e >A@ATFE, ShamZant %. Sistemas de %anco de
Dados6 Fundamentos e Aplica+3es Editora LTC T Ca edi+&o MDDM
7 CASE8TA, Thia#o. Dominando Stored Procedures. Dispon*!el em6 .
Acesso em6 1V de set. de MD1C.
7 . Acesso em6 1D de set. de MD1C.
7 F\8(M, Microso)t SQL Ser!er. Dispon*!el em6 . Acesso em6 1D de set.
de MD1C.
7 @ELOSO, Luciana 8i"eiro. Aula DO Lin#ua#em SQL T cria+&o, inser+&o
e modi2ca+&o de ta"elas. Dispon*!el em6 . Acesso em6 11 de set. de MD1C.
7 T:A$O, Fel"ert Car!alho. $uia r/pido para consultas SQL. Dispon*!el
em6 . Acesso em6 11 de set. de MD1C.
7 @:A>A, 8einaldo.Tutorial SQL T Seu #uia pr/tico para e1ecu+&o de
consultas Parte :::. Dispon*!el em6. Acesso em6 MD de set. de MD1C.
7 %8AS:L, Carlos Al"erto.S$%D e suas caracteristicas. Dispon*!el em6 .
Acesso em6 M1 de set. de MD1C.
7 %AL%O, Eellin#ton. SQL
Ser!er MDD[ Comandos DML (pdate e Delete. Dispon*!el em6 . Acesso em6
MM de set. de MD1C.
7 %:A>CF:, Ea#ner. Stored Procedures no MYSQL. Dispon*!el em6 .
Acesso em6 MC de set. de MD1C.
7 @:8T(AL, LocaEe" Enciclop-dia.Stored procedures. Dispon*!el em6 .
Acesso em6 MC de set. de MD1C.
7 S:L@A, 8amon Ferreira.Criando Stored Procedures no MYSQL. Dispon*!el
em6. Acesso em6 MC de set. de MD1C.
7 EQ(:PE, De!media. Procedures e )un+3es no MYSQL. Dispon*!el em6.
Acesso em6 MC de set. de MD1C.
7 8OD8:$(ES, Ioel. MYSQL %/sico6 Tri##ers. Dispon*!el em6. Acesso em6
MO de set. de MD1C.
DESAF:O
A empresa de desen!ol!imento de so)t=are chamada MicrosYs RJK S.A. est/
pro0etando um no!o produto a ser lan+ado. Este no!o so)t=are chamado S:$
Sistema :nte#rado de $erenciamento 1.D ir/ atender a di!ersas empresas
ue precisam de um sistema para controlar suas opera+3es de !endas,
controle de estoue, )uncion/rios e demais ati!idades.
As consultas e outras ati!idades relacionadas a %anco de Dados de!em ser
reali'adas com o melhor desempenho poss*!el, pois as empresas ue
utili'ar&o o S:$ possuem #randes !olumes de dados. A MicrosYs RJK S.A.
tam"-m necessita de consultoria em al#umas /reas mais a"ran#entes ue
podem )a'er parte do pro0eto como %anco de Dados Distri"u*dos e Data
Earehouse.
De!ido a esses reuisitos a MicrosYs RJK S.A. est/ recrutando uma euipe
para tra"alhar na "ase de dados do S:$.
Para reali'ar as ati!idades relacionadas ao "anco de dados do S:$, de!emTse
utili'ar as ta"elas mostradas no dia#rama.
O%IET:@O DO DESAF:O
Ela"orar de um pro0eto de pro#rama+&o de "anco de dados para o S:$, ue
de!e a"ordar
as di!ersas )ases de documenta+&o, #era+&o de scripts para inserir, e1cluir e
consulta de dados, otimi'a+&o de consulta, #era+&o de procedures e tri##ers
e estudos e relatWrios so"re Data Earehouse e Data Minin#.
C8:A;<O DAS TA%ELAS PA8A :>:C:O DO DESAF:O
C8EATE TA%LE cliente
4
idcliente :>TE$E8 >OT >(LL,
nome @A8CFA8 4]D5 >OT >(LL,
cp) @A8CFA8 4115 >OT >(LL,
r# @A8CFA8 4MD5 >(LL,
endereco @A8CFA8 41DD5 >(LL,
cidade @A8CFA8 4]D5 >(LL,
u) CFA8 4M5 >(LL,
)one @A8CFA8 41[5 >(LL,
celular @A8CFA8 41[5 >(LL,
email @A8CFA8 41DD5 >(LL,
datanascimento DATE,
P8:MA8J XEJ 4idcliente5
59
C8EATE TA%LE )uncionario
4
id)uncionario :>TE$E8 >OT >(LL,
nome @A8CFA8 4]D5 >OT >(LL,
cp) @A8CFA8 4115 >OT >(LL,
r# @A8CFA8 4MD5 >(LL,
ctps @A8CFA8 41DD5 >(LL,
car#o @A8CFA8 4]D5 >(LL,
datanascimento DATE,
dataadmissao DATE,
datademissao DATE,
ati!o %OOLEA>,
comissao >(ME8:C 41[, M5 >(LL
P8:MA8J XEJ 4id)uncionario5
59
C8EATE TA%LE produto
4
idproduto :>TE$E8 >OT >(LL,
descricao @A8CFA8 4[D5,
preco!enda >(ME8:C 41[, M5,
precocompra >(ME8:C 41[, M5,
marca :>TE$E8,
tipo :>TE$E8
P8:MA8J XEJ 4idproduto5
59
C8EATE TA%LE !enda
4
id!enda :>TE$E8 >OT >(LL,
clienteU!enda :>TE$E8 >OT >(LL,
data DATE >(LL,
hora T:ME >(LL,
!alortotal >(ME8:C41[, M5 >OT >(LL,
)uncionarioU!enda :>TE$E8 >OT >(LL,
P8:MA8J XEJ 4id!enda5,
FO8E:$> XEJ 4clienteU!enda5 8EFE8E>CES cliente 4idcliente5,
FO8E:$> XEJ 4)uncionarioU!enda5 8EFE8E>CES produto 4id)uncionario5
59
C8EATE TA%LE item!enda
4
iditem!enda :>TE$E8 >OT >(LL,
!endaUitem!enda :>TE$E8 >OT >(LL,
produtoUitem!enda :>TE$E8 >OT >(LL,
tde >(ME8:C41[, M5 >OT >(LL,
!alorunitario >(ME8:C41[, M5 >OT >(LL,
!alordesconto >(ME8:C41[, M5 >OT >(LL,
!alortotal >(ME8:C41[, M5 >OT >(LL,
P8:MA8J XEJ 4iditem!enda5,
FO8E:$> XEJ 4!endaUitem!enda5 8EFE8E>CES !enda 4id!enda5,
FO8E:$> XEJ 4produtoUitem!enda5 8EFE8E>CES produto 4idproduto5
59
DEF:>:;^ES
Select - uma das opera+3es mais comuns, reali'adas com um "anco de
dados, - selecionar as in)orma+3es arma'enadas.
Essas opera+3es s&o reali'adas pelo comando select. O comando select tem
pala!rasTcha!e em um comando "/sico6
7 select T especi2ca as colunas da ta"ela ue ueremos selecionar9
7 )rom T especi2ca as ta"elas9
7 =here T especi2ca a condi+&o da sele+&o das linhas.
Selecionando colunas espec*2cas da ta"ela
Sinta1e "/sica6
select
)rom ta"ela9
Selecionando todas as colunas da ta"ela
Sinta1e "/sica6
select ? )rom !enda9
OPE8ADO8ES L\$:COS
A>D _E_ L\$:CO
O8 _O(_ L\$:CO
>OT >E$A;<O
OPE8ADO8ES %ETEEE> E >OT %ETEEE>
EFE8E %ETEEE> A>D
EFE8E >OT %ETEEE> A>D
Esse operador propicia a pesuisa por uma determinada coluna e
selecionando as linhas cu0o !alor da coluna este0a dentro de uma )ai1a
determinada de !alores, sem a necessidade dos operadores `G, . Por-m o
ponto desses operadores est/ na utili'a+&o dos s*m"olos 4P5 e 4T5 ue podem
)a'er o papel de acurin#ab.
P Su"stitui em pala!ra
U Su"stitui em caractere
OPE8ADO8ES %ASEADOS EM L:STAS :> E >OT :>
Ehere :> 9
Ehere >OT :> 9
Estes operadores pesuisam re#istros ue est&o ou n&o no con0unto de
)ornecido. Eles minimi'am o uso dos operadores G, N `, A>D, e O8.
O8DE>A>DO OS DADOS SELEC:O>ADOS
Quando se reali'a uma sele+&o, os dados recuperados n&o est&o ordenados.
Os dados s&o recuperados pela ordem em ue se encontram dispostos
2sicamente na ta"ela do S$%D. A SQL pre!H a cl/usula O8DE8 %J para
reali'ar uma ordena+&o dos dados selecionados. Sinta1e "/sica6
Select
From
Ehere
Order "Y cascddesce
Select ? )rom !enda9
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
Select idproduto, descricao
From produto
Ehere marca L:XE ACPB9
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
Select clienteU!enda
From !enda
Ehere id!enda :> 41,M59
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
(T:L:KA>DO F(>;^ES DE A$8E$A;<O SO%8E CO>I(>TOS
As )un+3es de a#re#a+&o resultam sempre em uma no!a coluna e o resultado
da pesuisa.
%uscando m/1imos e m*nimos 4ma1, min5
@alores m/1imos e m*nimos em uma coluna 4campo5
Calculo da m-dia de um campo 4coluna5.
Contando os re#istros 4count5
Calculo da uantidade de re#istros de uma condi+&o espec*2ca.
(tili'ando a clausula distinct
>ormalmente, !/rios re#istros dentro de uma ta"ela podem conter
os mesmos !alores com e1ce+&o da cha!e primaria. Com isso muitas
consultas podem tra'er in)orma+3es erradas. A clausula distinct, aplicada em
uma consulta, )oi criada para n&o permitir ue certas redundfncias,
o"!iamente necess/rias, causem pro"lemas. A clausula distinct elimina
repeti+3es de !alores em rela+&o a uma coluna.
SELECT Min4!alorunitario5,
Ma14!alorunitario5
F8OM item!enda9
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
SELECT A!#4!alortotal5
F8OM item!enda9
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
SELECT Count4?5
F8OM item!enda
EFE8E preco ` [D9
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
8ecuperando dados de !arias ta"elas 40oins5
At- a#ora !iemos tra"alhando com a recupera+&o de dados em uma Lnica
ta"ela, o conceito de "anco de dados reLne, e!identemente, !/rias ta"elas
di)erentes.
Para ue possamos recuperar in)orma+3es de um "anco de dados, muitas
!e'es tenho a necessidade de acessar simultaneamente !arias ta"elas
relacionadas entre si. Al#umas dessas consultas necessitam reali'ar uma
0un+&o 40oin5 entre ta"elas, para ue dessa 0un+&o possa e1trair as
in)orma+3es necess/rias a consulta )ormulada.
SELECT D:ST:>CT tipo
F8OM produto9
O CO>CE:TO DE Q(AL:F:CADO8ES DE >OME
O uali2cador de nome consiste no nome da ta"ela se#uido de um ponto e o
nome na coluna, por e1emplo.
O uali2cador de nome para a coluna marca da ta"ela produto ser/6
T produto.marca
Os uali2cadores de nome s&o utili'ados em uma consulta para e)eti!ar a
0un+&o entre ta"elas, uma !e' ue o relacionamento entre ta"elas - reali'ado
atra!-s
de cha!es estran#eiras, como !imos em al#e"ra relacinal, e isso implica na
e1istencia de colunas com o mesmo nome em ta"elas di)erentes.
Sinta1e A>S: SQL
Select
From 4nomeUdaUta"elactipo de 0oinenomeUdaUta"ela O> condi+&o de pesuisa
Ehere ccondi+&o de pesuisae
>a sinta1e A>S: criamos uma ta"ela de 0oin, para as linhas selecionadas
con)orme a cl/usula =here. Podemos escolher o tipo de 0oin con)orme o
processado, escolhemos a pala!ra ue o identi2ca. Quando usamos :>>E8
IO:> como tipo de 0oin, ser&o incluidas somente as linhas ue satis)a'em a
condi+&o de 0oin.
Quando usamos C8OSS IO:>, incluimos cada uma das com"ina+3es de todas
as linhas entre as ta"elas.
SELECT idproduto,
descricao
F8OM item!enda
:>>E8 IO:> produto
O> item!enda.produtoUitem!enda G produto.idproduto9
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
SELECT ?
F8OM produto
:>>E8 IO:> item!enda
O> produto.idproduto G item!enda.produtoUitem!enda
EFE8E !alorunitario ` [.DD9
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
(tili'ando !ie=s
(ma !ie= - um caminho alternati!o para !isuali'armos dados deri!ados de
uma ou mais ta"elas em um "anco de dados. As ta"elas criadas em um
"anco de dados relacional tem e1istencia )*sica dentro do sistema de
computa+&o. Muitas !e'es - necess/rio criar ta"elas ue n&o ocupem espa+o
)*sico, mas ue possam ser utili'adas como as ta"elas normais. Estas s&o
chamadas de 4ta"elas !irtuais5.
Como as ta"elas reais, as !ie=s de!em ser criadas.
Sinta1e "/sica6
Create !ie=

Вам также может понравиться