CONSULTAS Esun co nj unt o de ór denesa una Basede Dat osquer ec uper an r eg i s t r oso r eal i zanunaacci ónespecí ficasobr eun conj unt oder egi st r os. Ut i l i z andoconsul t assepueder ec uper ardat osdeunoomá máscamp mpos,deunao mást abl as.Tamb mbi én sepuedesome me t erl osdat osr ec uper adosa una omá más r e s t r i c c i one s ,c onoc i dasc omocr i t e r i os ,ques eut i l i z anpar al i mi t arl acant i dad dedat osqueser ec uper an. Exi st en consul t as de se l ec ci ón, de acci ón, de r ef er enci as cr uz adas, de par áme met r os,dedat osañadi dosyes pec i ficasdeSQL.
CONSULTA CONSULTA DE SELECCIÓN SELE CCIÓN Est et i po deconsul t a obt i enel osdat osdeuna o mást abl as ymu mues t r al os r esul t adosen unahoj adedat osen dondesepueden act ual i z arl osr egi st r os. Tambi é n se ut i l i z a par a agr upar r egi s t r os par a pode r cal cul ar sumas, pr o me me di o syhal l art o t al e s .
Combinar tablas relacionadas relacionadas en una consulta Lascomb mbi naci onesseut i l i zanparar ecuper ari nf orma maci ón r el aci onadademá más deunat abl a.Par acr earunacomb mbi naci ón en unaconsul t a,debedes i gnar se l asc l a v e spr i nc i pa l e sdel a st a bl a si mpl i c a da se nl ac o mb mbi nac i ó n.
Ej emp mpl o: Cr earl abasededat osFarma maci aconl ast abl asPr oduct oeI nvent ari o Cat egor i a: Cod_ Cat Cat egor i a
Pr oduct o: Cod_ Pr od Cod_ Cat Pr oduct o Mar ca
I nvent ar i o: N_ I nv Cod_ Pr od Pr e_ compr a Pr e_ v ent a Uni dad S t o c k
La t abl a Pr oduct o al mace na i nf or maci ón ace r ca delpr oduct o,y l at abl a i nvent ari oal macenai nf orma maci ón del ospr eci os,f echadevenci mi ent oyst ock, e sde c i rd el o sl o t e sdel o spr o duc t o s Sisequi er evi sual i zare lpr oduct oysu mar ca,asícomo mol ospr eci ospodem mo os ut i l i z ar l a si nt axi s comp mpl et a que es ut i l i z ando Nomb mbre t abl a. nomb mbr ecamp mpo como mosemu mues t r aacont i nuaci ón: SELECT Product o. Pr oduct o, Pr oduct o. Mar ca, I nve nt ari o. Pr e_ comp mpr a, I nv e nt ar i o. Pr e _ v e nt a FROM Pr oduct o,I nve nt ari o Facultad de Ingeniería Industrial, Sistemas e Informática
Ing. Ana Doris M. Barrera Loza
WHERE Pr oduct o. Cod_ Pr od=I nv ent ar i o. Cod_ Pr od
Ol as i nt ax i sabr e v i a da : SELECTPr oduct o,Mar ca,Pr e_ compr a,Pre _v ent a FROM Pr oduct o,I nve nt ari o WHERE Pr oduct o. Cod_ Pr od=I nv ent ar i o. Cod_ Pr od Sisequi er evi sual i zarelnombr edel acat egorí a,elpr oduct o,l amarcaysu st ock,t enemosqueusarl asi gui ent esent enci a: SELECTCat egor i a,Product o,Mar ca,St ock FROM Cat egor i a,Pr oduct o,I nve nt ari o WHERE Cat egor i a. Cod_ Cat =Pr oduct o. Cod_ CatAND Pr oduct o. Cod_Pr od=I nve nt ari o. Cod_Prod Est asent enci anosvaaper mi t i rvi sual i zardi chosdat osper ononosper mi t e ac t ual i z ar l os .
I NNER JOI N Parapoderact ual i zarelconj unt oderesul t ados,seree mpl aza al asent enci a WHERE porI NNER JOI N.Seut i l i z apar agener arunavi s t aquecont eng asol o aquel l osr egi st r osquet enganunacorr espondenci aexact aenambast abl as. Siempl eamosl acl áusul aI NNER enl aconsul t asesel ecc i onar án sól oaquel l os r egi st r osdel at abl adel aquehayamosescr i t oal ai zqui er dadeI NNER JOI N que cont engan almenos un r eg i s t r o de l at abl a que hay amos es cr i t oal a de r e c ha . SELECT Pr oduct o. Pr oduct o, Pr oduct o. Mar ca, I nv e nt ar i o. Pr e _ v ent a FROM Pr oduct oI NNER JOI NI nve nt ar i o ON Product o. Cod_Pr od=I nve nt ari o. Cod_Pr od
I nv ent ar i o. Pr e_ co mpr a,
O puedeut i l i zarl af ormasi mpl i ficada: SELECTPr oduct o,Nombr e,Pr e_ compr a,Pr e_ v ent a FROM Pr oduct oI NNER JOI NI nve nt ar i o ON Pr oduct o. Cod_Pr od=I nve nt ari o. Cod_Pr od SELECTCat egor i a, Pr oduct o,Mar ca,St ock FROM Cat egor i a,Pr oduct o,I nve nt ari o, Cat eg or i asI NNER JOI N Pr oduct oON Cat eg or i a. Cod_Cat = Product o. Cod_Cat ,Pr oduct oI NNER JOI NI nve nt ari oPr oduct o. Cod_Pr od =I nv e nt a r i o . Co d_ Pr o d Facultad de Ingeniería Industrial, Sistemas e Informática
Ing. Ana Doris M. Barrera Loza
Sepue de na ni da ri ns t r uc c i o ne sJOI N ut i l i z a ndol as i g ui e nt es i nt a xi s : SELECTc ampos FROM t b1I NNERJOI N ( t b2I NNER JOI N[ (] t b3 [ I NNER JOI N[ (] t abl ax[ I NNER JOI N. . . ) ] ON t b3. campo3co mpt bx. campox) ] ON t b2. campo2co mpt b3. campo3) ON t b1. campo1co mpt b2. campo2;
Se puede ut i l i z ar I NNER JOI N c on l as t abl as Cat eg or i a y Pr oduct o par a s e l e c c i o nart o do sl o spr o duc t o sdec adac at e g or i a . Pe r os is equi e r es e l e c c i o nart o do sl ascat e g or i as( i nc l us os ial g unadee l l asno t i eneni ngúnpr oduct o)seempl eaLEFTJOI N,ot odosl ospr oduct os( i ncl usosi al gunonoes t áasi gnadoani ngunacat egor i a) ,enes t ecasoRI GHTJOI N. LEFT t oma t odosl osre gi st r osdel at abl a del ai zqui er da aunquenot engan ni ngún r egi st r oen l at abl adel ai zqui er da.RI GHTr eal i zal ami smaoper aci ón pe r oalc o nt r a r i o ,t o mat o do sl o sr e g i s t r o sdel at a bl adel ade r e c haa unq ueno t e ng ani ng únr e g i s t r oe nl at a bl adel ai z q ui e r d a.
CONSULTA DE ACCION Es una consul t a que t i ene l a capaci dad de modi ficar l os r eg i s t r os.Las consul t asdeacci ónnodevuel venunconj unt oder esul t ados,si noquer eal i zan cambi osper manent esenl osdat os. •
Consulta de anexión Seut i l i zancondosfines: • •
Agr egarunúni cor egi s t r oaunat abl a. Copi arunoomásr egi st r osdeunat abl aaot r a.
Par a cr earuna consul t a deanexi ón,ut i l i cel a cl áusul aI NSERT I NTO de SQL.La si nt axi s exact a de l a consul t a depende de sidesea i nse r t arun úni c or e g i s t r ooc opi arv ar i osr e gi s t r o s. Sisedeseai nser t arunúni coregi st r ol ascant i dadesdecol umnasyval or es debenseri gual es.
Ej empl o: Sisehael i mi nadol osdat osdelpr oduct oconcódi go8debi doaquepasól a f ec ha dev enci mi ent o,ysehacompr adoun nuev ol ot ededi cho pr oduct o, para agr egarl os nuev os dat os a ese pr oduct o ut i l i zar emos l a si gui ent e s e nt e nc i a : Facultad de Ingeniería Industrial, Sistemas e Informática
Ing. Ana Doris M. Barrera Loza
I NSERT I NTO I nv ent ar i o( Cod_Pr od, Fec hv enc, Pr e_ compr a, Pr e_ v ent a, uni dad,st ock) VALUES( 8,#10/10/06#,10. 5,20,‘ caj as ’ ,200) Para copi arl os r egi st r os del at abl aI nvent ari oa l at abl a Sobr ant escuya pre ci odev ent aseamenorque20 I NSERTI NTO Sobr ant es SELECT*FROM I nve nt ar i o WHERE pr e_v ent a<20
•
Consulta de actualización
Ti enel acapaci daddemodi ficarunconj unt oder egi s t r osalmi smot i empo. Unaconsul t adeact ual i zaci ón est áf ormadaport r espart es: • • •
Lacl áusul aUPDATE queespeci fical at abl aaact ual i z ar . Lacl áusul aSET,quees peci ficaquedat ossec ambi ar án. Elcr i t er i oWHERE,opci onal ,quel i mi t aelnúmer oder egi st r os af e c t ado spo rl ac ons ul t adea ct ual i z a ci ó n.
Ej empl o: Aument arelpr eci odev ent aenun10% UPDATE I nve nt ar i o SETPr eci o_vent a=Pr e_ve nt a*1. 1 Aument arenun10% elpr eci oal ospr oduct oscuy opr eci odev ent asea may ora20 UPDATE I nve nt ar i o SETPr e_v ent a=Pr e_v ent a*1. 1 WHERE Pr e_v ent a>20 •
Consulta de eliminación
Ti enel acapaci daddeel i mi narungr upoder egi s t r osalmi smot i empo.
Ej empl o: El i mi narl ospr oduct oscuyaf echadev enci mi ent oseamenoral15de oct ubr edelaño2000( ut i l i zarelf ormat omes/dí a/año) De l e t e* FROM I nv ent ar i o WHERE Fec hv enc<#10/15/00#
Facultad de Ingeniería Industrial, Sistemas e Informática
Ing. Ana Doris M. Barrera Loza
CONSULTA DE COMINACION Fusi ona elco nt eni do de dos t abl as que t i enen es t r uct ur as de campos si mi l ares .Resul t a út i len si t uaci onesen l asqueesnecesari omost r aren un úni c oco nj unt oder e s ul t ado sl o sr e g i s t r o snor e l a c i o nado sdev ar i a sf ue nt e s .
Ej empl o: Siquer emosvi sual i zarl osdat osant i guosynuevos del ospr oduct os SELECT*FROM I nve nt ar i o UNI ON SELECT*FROM Sobr ant es SELECTCod_Pr oduct o,Pr e_ co mpr aFROM I nv ent ar i o UNI ON SELECTCod_ Pr oduct o,Pr e_ compr aFROM Sobr ant es
SUCONSULTAS Es t et i po deconsul t aconst adeunai ns t r ucc i ón SQLSELECT dent r odeot r a consul t adesel ecci ón oconsul t adeacci ón.Esunaconsul t acuyor esul t adose ut i l i z a co mo cr i t er i o de ot r a co nsul t a. Las subco nsul t as se hace n nor mal ment edent r odel ase xpr es i onesWHERE.
Ej empl o: Vi sual i z arl osdat osdel ospr oduct oscuy opr eci odecompr aseamay orqueel pr omedi odepr eci odecompr adet odosl ospr oduct osdel at abl a. SELECT* FROM I nv ent ar i o WHERE Pr e_ compr a>( SELECTAVG( Pr e_ compr a)FROM I nv ent ar i o) Vi sual i z arl ospr oduct osquenot i eneni nv ent ar i o SELECT* FROM Pr oduct o WHERE Cod_ Pr odNOTI N (SELECTCod_ Pr odFROM I nv ent ar i o)
Facultad de Ingeniería Industrial, Sistemas e Informática
Ing. Ana Doris M. Barrera Loza
S!L CON MAS DE UNA TALA Diseñar una base de datos con 3 tablas las cuales van a estar relacionadas por el campo Cod_Emp Tabla
Campo
Tipo
Dpto Dpto
Cod_Dpto Departamento
Texto Texto
Empleado Empleado Empleado Empleado Empleado Empleado
Cod_Emp Nombres Apellidos Edad !alario Cod_Dpto
Texto Texto Texto Numrico Numrico Texto
Cliente Cliente Cliente Cliente Cliente
Cod_Cliente Nombres Apellidos Ciudad Cod_Emp
Texto Texto Texto Texto Texto
!eleccionar apellidos del empleado" salario # el departamento al $ue pertenece ordenado por departamento% select Empleado.Apellidos, Empleado.Salario, Dpto.Departamento from Dpto, Empleado where Dpto.Cod_Dpto = Empleado.Cod_Dpto
order by Departamento
!eleccionar los nombres # apellidos del empleado" el departamento # su salario ordenado por el salario descendentemente% select Nombres, Apellidos, Departamento, Salario from Dpto, Empleado where Dpto.Cod_Dpto = Empleado.Cod_Dpto order by Salario Desc
!eleccionar el c&di'o del empleado" los nombres # apellidos del empleado" departamento # el nombre # apellidos de los clientes $ue tiene # la ciudad a la $ue pertenece el cliente select Empleado.Cod_Emp, Empleado.Nombres, Empleado.Apellidos, Departamento, Cliente.Nombres, Cliente.Apellidos, Ciudad from Dpto, Empleado, Cliente where Dpto.Cod_Dpto = Empleado.Cod_Dpto Facultad de Ingeniería Industrial, Sistemas e Informática
Ing. Ana Doris M. Barrera Loza
and
Empleado.Cod_Emp = Cliente.Cod_Emp
!eleccionar el c&di'o" apellidos" departamento # edad de los empleados" adem(s de los nombres # apellidos de sus clientes" pero solo de los empleados cu#a edad es menor $ue )* select Empleado.Cod_Emp, Empleado.Apellidos, Departamento, Edad, Nombres, Cliente.Apellidos from Dpto, Empleado, Cliente where Dpto.Cod_Dpto = Empleado.Cod_Dpto
and and
Empleado.Cod_Emp = Cliente.Cod_Emp Edad < !
!eleccionar el c&di'o del empleado" nombres " apellidos # ciudad de sus clientes cu#a ciudad empiece con la letra + select Empleado.Cod_Emp, Cliente.Apellidos, Cliente.Nombres, Ciudad from Empleado, Cliente
where Empleado.Cod_Emp = Cliente.Cod_Emp and
Ciudad "i#e $%&'
S!L CON SU !UE"#S ,isuali-ar los nombres # apellidos de los empleados $ue tienen clientes select Nombres, Apellidos from Empleado where Empleado.Cod_Emp (N ) SE"EC* Cod_Emp +-
Cliente /
,isuali-ar los nombres # apellidos de los empleados $ue no tienen clientes select Nombres, Apellidos from Empleado where Empleado.Cod_Emp
N-* (N ) SE"EC* Cod_Emp +-
Cliente /
,isuali-ar los nombres de los empleados cu#o salario es i'ual o ma#or $ue el salario medio de todos los empleados% !E.ECT Apellido" Nombres FROM Empleados /0ERE !alario 12 !E.ECT Av'!alario4 FROM Empleados
S!L CON MAS DE UNA TALA # A$"U%ACIONES !uma de salarios por departamento select Departamento, S0)salario/ AS suma_salario from Dpto, Empleado where Dpto.Cod_Dpto = Empleado.Cod_Dpto 1roup by Departamento
Facultad de Ingeniería Industrial, Sistemas e Informática
Ing. Ana Doris M. Barrera Loza
Cantidad de clientes por cada empleado select Empleado.Cod_Emp As C2di1o_Emp, C-0N* )Cliente.Cod_Emp/ N3_Clientes from Empleado, Cliente where Empleado.Cod_Emp = Cliente.Cod_Emp 1roup by Empleado.Cod_Emp
AS
!uma de salarios" m(ximo" m5nimo" promedio por departamento select Dpto.Departamento, S0)salario/ AS suma_salario, A4)salario/ AS ma5_salario, (N)salario/ AS min_salario, A67)salario/ AS 8rom_salario from Dpto, Empleado where Dpto.Cod_Dpto = Empleado.Cod_Dpto 1roup by Dpto.Departamento
Facultad de Ingeniería Industrial, Sistemas e Informática
Ing. Ana Doris M. Barrera Loza