Práctica 1: Creación de una base de datos en MySQL so
PRÁCTICA 1 CREACIÓ !E "A #ASE !E !AT$S E MySQL
Práctica 1: Creación de una base de datos en MySQL $#%ETI&$: Conocer 'as instrucciones básicas necesarias (ara crear) *ani(u'ar y e'i*inar una base de datos+
,"!AMET$ TEÓRIC$: en.ua/e /e de Consu'ta Estructurado 0SQL+ Se trata de' MySQL uti'i-a e' L en.ua 'en.ua/e a/e uti'i-ado ado (or todas 'as bases ses de datos re'ac e'acio iona na'e 'es+ s+ Las instrucciones de SQL se (ueden considerar di2ididas en dos .ru(os (rinci(a'es: las estructurales ) ta*bi3 ta*bi3n n ''a*a ''a*adas das de defnición de datos (DLL) y 'as ta*bi3n bi3n ''a* ''a*ad adas as de manipu instruccion instrucciones es de datos) ta* manipulac lación ión de datos datos (DML). Las (ri*eras se destinan a crear) *odi4car y e'i*inar bases de datos y 'as estructuras de 'as tab'as 5ue 'as con6or*an+ Las !ML) en ca*bio) se ocu(an de incor(orar nue2os re.istros a 'as tab'as tab'as)) buscar buscar deter*i deter*inad nados os re.is re.istr tros os se.7n se.7n 'os criter criterios ios necesa necesario rios) s) *odi4car 'os datos .rabados o e'i*inar'os+ Creación de Bases de Datos y su estructura Para crear una base de datos usa*os 'a instrucción CREATE CREA TE DATABASE DATABASE I I !"T E#ISTS baseDeDatos 8
La *ayor9a de 'as instrucciones de MySQL debere*os ter*inar'as con un (unto y co*a 08+ La c'áusu'a I !"T E#ISTS es o(ciona') (ero si no se inc'uye y 'a base de datos ya eiste se (roducirá un error a' intentar crear'a) (or 'o 5ue se reco*ienda a.re.ar'a sie*(re+ s ie*(re+ Las bases de datos só'o necesitan necesitan ser creadas creadas una so'a 2e-) (ero deben ser se'eccionadas cada 2e- 5ue se inicia una sesión de MySQL+ MySQL+ Puede ;acerse a tra23s de' co*ando $SE baseDeDatos
Pode*o Pode*oss obser2ar obser2ar 5ue en esta esta y otras otras sentenci sentencias as no será será necesar necesario io ter*inar'as con (unto y co*a+ Mediante e' co*ando "SE 'e indica*os a MySQL 5ue se traba/ará con 'a base de datos baseDeDatos + $tro co*ando 5ue se uti'i-ará con *uc;a 6recuencia es S<$= e' cua' nos (er*itirá 'istar 'as bases de datos 5ue contiene nuestro ser2idor o 'as tab'as 5ue (osee 'a base de datos actua') su sintais si*('e es:
S%"& ' DATABASES ' TABLES *
Es necesario *encionar 5ue este co*ando tiene *uc;os usos) sin e*bar.o (ara e' a'cance de esta (ráctica só'o se abordarán estos dos casos+ Para e'i*inar una base de datos escribire*os 'a instrucción !R$P !ATA#ASE se.uida de' no*bre de 'a base de datos) adiciona'*ente (ode*os a.re.ar 'a c'áusu'a I, E>ISTS (ara (re2enir 5ue se (rodu-ca un error+ DR"+ DATABASE I E#ISTS baseDeDatos 8
o está (or de*ás *encionar 5ue uti'i-ar esta instrucción se e'i*ina todo 'o re6erente a 'a base de datos en cuestión y esta o(eración es irre2ersib'e+ ,ina'*ente (ara sa'ir de' a*biente de conso'a de MySQL uti'i-are*os e' co*ando Q"IT+ !ESARR$LL$: 1+ Mencione 'a c'asi4cación de 'as instrucciones de SQL+ ?+ Inicie sesión en a*biente de conso'a de MySQL y e6ect7e 'as si.uientes acti2idades+ 0docu*ente cada uno de 'os resu'tados obtenidos) de ser (osib'e to*ar una i*a.en de 'o 5ue ;ay en (anta''a y a.re.ar'o a un arc;i2o =ord+ a "ti'ice 'a instrucción S<$= (ara *ostrar 'as bases de datos eistentes en e' entorno de MySQL b Cree 'a base de datos in,-erretero+ c "ti'ice nue2a*ente 'a instrucción S<$= (ara *ostrar 'as bases de datos eistentes en e' entorno de MySQL d Intente crear nue2a*ente 'a base de datos in,-erretero) no uti'ice 'a c'áusu'a I, $T E>ISTS y docu*ente e' resu'tado obtenido+
e "se 'a instrucción S<$= (ara 'istar 'as bases de datos en e' entorno pero no coloque el punto y coma (;) al fnal de la instrucción) docu*ente 'a res(uesta de MySQL+ 6 Cree 'a base de datos armacia-simi + . Estab'e-ca co*o base de datos actua' 'a base de datos in,-erretero
; Ca*bie a 'a base de datos armacia-simi co*o base de datos actua' i E'i*ine 'a base de datos in,-erretero+ / "ti'ice 'a instrucción S<$= (ara *ostrar 'as bases de datos eistentes en e' entorno de MySQL
PRÁCTICA ? CREACIÓ !E TA#LAS E MySQL
$#%ETI&$: Conocer y a('icar 'as instrucciones SQL necesarias (ara crear) *ani(u'ar y e'i*inar 'a estructura de una base de datos+ ,"!AMET$ TEÓRIC$: Creación de una tabla "na 2e- 5ue ;e*os se'eccionado 'a base de datos con 'a cua' se 2a a traba/ar) (ara crear una tab'a debere*os uti'i-ar 'a instrucción CREATE TABLE se.uida de' no*bre 5ue tendrá 'a nue2a tab'a y des(u3s de4nir 'os ca*(os y su ti(o de datos entre (ar3ntesis+ CREATE TABLE nombreTabla (Campo1 Tipo_de_dato, campo2 Tipo_de_dato);
Co*o 'a de4nición de 'os di6erentes ca*(os (uede ''e.ar a ser etensa) MySQL (er*ite escribir en 2arios ren.'ones antes de (rocesar e' co*ando ;asta 5ue encuentra un (unto y co*a) (or 'o 5ue e' si.uiente ser9a un e/e*('o 2á'ido CREATE TA#LE (et 0na*e &ARC
D#SC$!C%& 7*ero entero de @ a ? sin si.no o de B1?F a 1?G con si.no Entero de @ a H) sin si.no o de B?)GHF a ?)GHG con si.no Entero de @ a 1H)GGG)?1 sin si.no o de BF)FF)H@F a F)FF)H@G con si.no Entero de @ a J)?KJ)KHG)?K sin si.no o de B?)1JG)JF)HJF a ?)1JG)JF)HJF con si.no E' ran.o con si.no es de BK)??)G?)@H)FJ)GG)F@F a K)??)G?)@H)FJ)GG)F@G+ E' ran.o sin si.no es de @ a 1F)JJH)GJJ)@G)G@K)1)H1+
7*ero en co*a otante de si*('e (recisión+ M es 'a cantidad *ái*a de d9.itos) sin contar e' si.no ni e' (unto deci*a') ! es e' n7*ero de d9.itos
!$"#LE 0M)!
!ECIMAL 0M)! !ATE !ATETIME TIME CT TE>T ME!I"MTE>T L$TE>T TID#L$# #L$# ME!I"M#L$# L$#L$# E"M 0N&1O)O&?O)etc
deci*a'es+ 7*ero en co*a otante de dob'e (recisión+ M es 'a cantidad *ái*a de d9.itos) sin contar e' si.no ni e' (unto deci*a') ! es e' n7*ero de d9.itos deci*a'es+ 7*ero .uardado co*o cadena a'6anu*3rica+ M es 'a cantidad *ái*a de d9.itos) sin contar e' si.no ni e' (unto deci*a') ! es e' n7*ero de d9.itos deci*a'es+ ,ec;a en 6or*ato AAAABMMB!! o AABMMB!!+ 6ec;a y ;ora en 6or*ato AAAABMMB!! <<:MM:SS
Se reco*ienda escribir sie*(re en *ay7scu'as 'os ti(os de datos a' *o*ento de de4nir una nue2a tab'a) (ues si bien es cierto 'a *ayor9a de 'os *otores de 'as bases de datos 'os reconocen en *in7scu'as eisten a'.unos 5ue no 'o ;acen+
Cuando se crea una tab'a) a' dec'arar 'os ca*(os 5ue 'a constituirán) ade*ás de' ti(o de cada dato) se 'e (ueden asi.nar a'.unos atributos) en 'a si.uiente tab'a se 'istan 'os *ás co*unes+ 'T$BT" "LL $T "LL
!E,A"LT 2a'or
ER$,ILL
A"T$ICREMET
D#SC$!C%& Indica 5ue e' ca*(o (odrá 5uedar sin nin.7n contenido cuando se cree un re.istro o cuando se *odi45ue uno ya eistente Indica 5ue en ese ca*(o se debe tener asi.nado un contenido ob'i.atoria*ente en cada re.istro8 si se intenta de/ar sin contenido se (roducirá un error+ Indica e' 2a'or 5ue e' ca*(o asu*irá (or de6ecto a' crear un nue2o re.istro de 'a tab'a8 este 2a'or (odrá ser *odi4cado (or e' ca(turista+ Si e' ca*(o es a'6anu*3rico se acotará con co*i''as si*('es+ Este atributo a('ica a ca*(os nu*3ricos cuando 5uere*os 5ue se re''enen con ceros 'os d9.itos a 'a i-5uierda de' 2a'or introducido+ Este atributo se asi.na a un ca*(o nu*3rico cuando desea*os 5ue se incre*ente de 6or*a auto*ática8 es decir) cada nue2o re.istro 5ue se cree a'*acenará un 2a'or 5ue sea una unidad *ás 5ue e' re.istro anterior+ En caso de e'i*inar un re.istro) e' 2a'or 5ue ten9a en ese ca*(o no se 2o'2erá a asi.nar a nin.7n otro+
Se uti'i-a cuando 5uere*os 5ue no se (ueda re(etir e' 2a'or de un ca*(o en otro re.istro) atributo idea' (ara 'as ''a2es (rinci(a'es+ Sin "IQ"E e*bar.o) MySQL no reconoce este atributo) sino 5ue (or co*(atibi'idad 'o i.nora sin (ro2ocar un error+ A('icado a ca*(os nu*3ricos) ;ace 5ue e' *otor de 'a base de datos .enere un error si se intenta "SIE! introducir un 2a'or con si.no) 'o 5ue) en 'a (ráctica i*(edirá uti'i-ar 2a'ores ne.ati2os+ !e4ne un ca*(o co*o ''a2e (rinci(a' 'o 5ue 2a'ida PRIMARD ED 5ue no se (uedan re(etir 'os 2a'ores en dic;o ca*(o) sustituyendo e' uso de' atributo "IQ"E+ Por e/e*('o (odr9a*os de4nir una nue2a tab'a con 'as si.uientes sentencias: CREATE TA#LE I, $T E>ISTS e*('eados0 nu*ero IT $T "LL) no*bre &ARC
sa'ario ,L$AT 0H)? ER$,ILL) cate.oria C
E' SQL (er*ite 'a uti'i-ación de c'a2es 6oráneas) 'as 5ue nor*a'*ente) se asi.nan a ca*(os coincidentes con otros 5ue a su 2e- ;an sido de4nidos co*o c'a2es (ri*arias o (rinci(a'es en otras tab'as y 5ue (er*iten crear 'as re'aciones entre 'as tab'as+ Sin embaro MySQL no emplea cla*es +or,neasPara e'i*inar tab'as de una base de datos uti'i-are*os 'a instrucción !R$P TA#LE se.uida de' no*bre de 'a tab'a y a' i.ua' 5ue sucede con 'as bases de datos esta o(eración es irre2ersib'e (erdi3ndose 'os datos y 'a estructura de 'a *is*a+ DR"+ TABLE I E#ISTS nombreTabla 8 En a'.unas ocasiones será necesario *odi4car 'a estructura de una tab'a ya creada conser2ando 'a in6or*ación 5ue ya contiene) esto es (osib'e *ediante e' uso de 'a instrucción ALTER TA#LE cuya sintais .en3rica es 'a si.uiente: ALTER TA#LE nombreTabla A!! campo defnicionDelCampo,
C
!ESARR$LL$ 1+ Inicie sesión en e' a*biente de conso'a de MySQL y se'eccione co*o base de datos actua' armacia-simi y e/ecute 'as si.uientes tareas 0docu*ente cada uno de 'os e/ercicios: a+ Mostrar 'as tab'as eistentes *ediante e' co*ando S<$= b+ Crear 'a tab'a medicamentos de4nida de 'a si.uiente 6or*a: T'BL'. M#DC'M#&T"S CAMP$S TIP$ !E !AT$S ATRI#"T$S id*edica*en $T "LL IT PRIMARD ED to *edica*ento &ARC
c+ Mostrar 'a estructura de 'a tab'a medicamentos. d+ Crear 'a tab'a pro,eedores de4nida co*o si.ue: T'BL'. !$"/##D"$#S CAMP$S TIP$ !E !AT$S ATRI#"T$S $T "LL id(ro2eedor IT PRIMARD ED (ro2eedor &ARCT descri( TE>T $T "LL (resentacion &ARC
PRÁCTICA
IRES$ !E !AT$S A TA#LAS E MySQL
$#%ETI&$: Conocer 'as di6erentes 6or*as (ara a.re.ar datos a una tab'a en MySQL+ ,"!AMET$ TEÓRIC$+
'rear datos a una tabla Para a.re.ar'e in6or*ación a una tab'a) MySQL (osee 'as instrucciones L$A! !ATA e ISERT+ La (ri*era instrucción nos (er*ite car.ar 'os datos desde un arc;i2o de teto donde 'os datos ;an sido se(arados (or una tabu'ación o a'.7n otro carácter de'i*itador y dis(uestos en e' orden en 5ue se crearon 'as co'u*nas con 'a sentencia CREATE TA#LE+ Para e' caso de 'os ca*(os 5ue es necesario 5ue 5ueden 2ac9os) o 5ue no se cono-ca 'a in6or*ación en ese *o*ento) debere*os re''enar con e' 2a'or "LL indicando con en e' 'u.ar corres(ondiente+ La instrucción L$A! !ATA re5uiere ade*ás 5ue indi5ue*os co*o ter*inarán cada uno de 'os re.istros o ren.'ones (ara e' caso de' arc;i2o de teto8 (ara e''o si esta*os usando un siste*a =indos donde 'as '9neas de teto ter*inan con retorno de carro y nue2a '9nea debere*os uti'i-ar LIES TERMIATE! #D NrnO8 (ara e' caso de un siste*a $S > so'o se e*('ear9a LIES TERMIATE! #D NrO+ La sintais de esta instrucción es: L$A! !ATA L$CAL I,ILE !pat"!arc"ivo#t$t% IT$ TA#LE nombreTabla LIES TERMIATE! #D NrnO8 $(ciona'*ente (odre*os es(eci4car en 'a sentencia L$A! !ATA 'os caracteres 5ue actuarán co*o se(arador de ca*(o y 4n de '9nea) (ero 'os 2a'ores (or de6ecto son tabu'ación y nue2a '9nea+ !e ta' 6or*a 5ue si tene*os un arc;i2o ''a*ado tra/a0adores.t1t en nuestro directorio ra9- con 'a si.uiente in6or*ación
La sentencia 5ue debere*os escribir en 'a '9nea de co*andos de MySQL es L$A! !ATA L$CAL I,ILE Nc:traba/adores+ttO IT$ TA#LE e*('eados LIES TERMIATE! #D NrnO8 $btendr9a*os co*o resu'tado:
Para 2er e' contenido de 'a tab'a ;are*os una consu'ta si*('e con 'a si.uiente sentencia SELECT U ,R$M e*('eados8 Esto nos dar9a e' si.uiente resu'tado:
Pode*os obser2ar 5ue son 'os *is*os datos contenidos en e' arc;i2o de teto con 'a di6erencia de 5ue 'os datos de' ca*(o depto ;an sido truncados (or MySQL) esto es (or5ue co*(robando 'a estructura nos da*os cuenta de 5ue dic;o ca*(o es de ti(o C
La se.unda instrucción (ara a.re.ar datos a una tab'a nos (osibi'ita (ara introducir re.istro (or re.istro desde 'a '9nea de co*andos) su sintais es 'a si.uiente: &S#$T &T" nom/reTa/la /'L#S (*alor01 *alor21 *alor31 etc); Los 2a'ores deben introducirse en e' orden adecuado con res(ecto a 'os ca*(os de 'a tab'a en cuestión) ade*ás) si 'os ca*(os son de ti(o a'6anu*3rico o de 6ec;a se deben introducir de'i*itados (or co*i''as si*('es+ Por e/e*('o 'a si.uiente sentencia insertar9a un nue2o re.istro en 'a tab'a e*('eados &S#$T &T" empleados /'L#S (41 5$osita 'l*are671 0288-881 &LL1 5971 5/enta7); Producir9a 'a si.uiente sa'ida a' ;acer una consu'ta de' contenido de 'a tab'a:
Cuando desea*os *odi4car e' contenido de un ca*(o de so'o un re.istro es con2eniente uti'i-ar 'a instrucción "P!ATE 'a cua' estab'ece e' 2a'or de un ca*(o es(ec94co de' re.istro 5ue cu*('a con cierta condición deter*inada) (or e/e*('o: !D'T# empleados S#T salario:388-88 <=#$# numero:0; Actua'i-ar9a e' ca*(o salario asi.nándo'e e' 2a'or de @@+@@ de' re.istro cuyo ca*(o numero es i.ua' a 1) 'as condiciones 5ue uti'icen ca*(os a'6anu*3ricos o de ti(o 6ec;a) deberán co'ocarse entre co*i''as si*('es 0N+
En caso de no uti'i-ar 'a c'áusu'a =
En caso de 5ue 'a c'áusu'a =pro*eed pro*edor ciudad tele+ono or PiSA de Meico M3ico) !+ ,+ H 1 HGFK "ni'e2er de >a'a(a) &er+ ? Meico Medica*entos de' Cu'iacán) Pac94co Sin+ b+ E/ecute una consu'ta senci''a (ara 2er e' contenido de 'a tab'a pro,eedores. c+ "ti'i-ando e' b'oc de notas) cree un arc;i2o de teto y nó*bre'o medicinas.t1t y a'*acene 'a si.uiente in6or*ación: ? Paraceta*o' 1 Ana'.3sico Aui'iar en e' Pasti''as
Lo*oti'
Antidiarr3ico
Antiina*atori o Anties(ectora #iso'2on ? nte !etro*etor6a Anties(ectora H ? no nte J ,'ana
1
trata*iento de' do'or Aui'iar en e' trata*iento de 'a .astritis Para .o'(es y .o'(a-os Aui'iar en 'a tos Aui'iar en 'a tos
(asti''as Pasti''as Sus(ensi ón Sus(ensi ón
d+ "se 'a instrucción L$A! !ATA (ara car.ar 'os datos de' arc;i2o de teto creado en e' (aso anterior a 'a tab'a medicamentos.
e+ E/ecute una consu'ta senci''a (ara 2er e' contenido de 'a tab'a medicamentos. 6+ Actua'ice e' ca*(o presentación con e' 2a'or de N.ra.easO a todos 'os re.istros de 'a tab'a medicamentos cuyo pro,eedor sea 3+ .+ E/ecute una consu'ta senci''a (ara 2er e' contenido de 'a tab'a pro,eedores. ;+ E'i*ine todos 'os re.istros de 'a tab'a medicamentos donde e' ca*(o medicamento sea i.ua' a N(araceta*o'O+ i+ e/ecute una consu'ta senci''a (ara 2er e' contenido de 'a tab'a medicamentos.
PRÁCTICA J CREACIÓ !E C$S"LTAS E MySQL $#%ETI&$: Conocer y a('icar 'as instrucciones necesarias (ara etraer in6or*ación desde una tab'a en MySQL+ ,"!AMET$ TEÓRIC$:
#?traer in+ormaciónPara etraer in6or*ación de una tab'a uti'i-are*os 'a c'áusu'a SELECT) su sintais .enera' es: SELECT campos&eleccionados ,R$M nombreTablas =
Si 'o 5ue desea*os es conocer 7nica*ente ciertos ca*(os y no todos 'os re.istros co*('etos) en 'u.ar de usar 4 debere*os indicar 'os no*bres de 'os ca*(os) se(arados (or co*as) de 'os cua'es se 5uiere etraer 'a in6or*ación) (or e/e*('o S#L#CT nombre1 salario1 depto 9$"M empleados; os dar9a co*o sa'ida e' no*bre) e' sa'ario y e' de(arta*ento de todos 'os re.istros de 'a tab'a e*('eados+
Las condiciones de 'a c'áusu'a =
Si se deseara saber de 5u3 de(arta*entos son 'os traba/adores 5ue se tienen re.istrados en 'a tab'a empleados) (odr9a*os usar 'a si.uiente consu'ta S#L#CT depto 9$"M empleados; Lo 5ue nos dar9a e' si.uiente resu'tado
Es notorio 5ue so'o tene*os e*('eados de' de(arta*ento de &entas) sin e*bar.o MySQL de2ue'2e un resu'tado (or cada 2e- 5ue encuentra un
re.istro en 'a tab'a) (ara e2itar esto uti'i-are*os 'a c'áusu'a !ISTICT co*o se *uestra a continuación S#L#CT DST&CT depto 9$"M empleados; !ando 'a sa'ida si.uiente:
!ESARR$LL$: 1+ Inicie sesión en e' a*biente de conso'a de MySQL y se'eccione co*o base de datos actua' armacia-simi y e/ecute 'as si.uientes tareas 0docu*ente cada uno de 'os e/ercicios: a+ Muestre todos 'os re.istros de 'a tab'a pro,eedores+ b+ Crear una consu'ta 5ue *uestre e' medicamento y e' tipo de 'os re.istros en (resentación de grageas + c+ Mostrar todos 'os ca*(os de 'os *edica*entos de' ti(o Antiespectorante#
d+ Muestre todos 'os ti(os de (resentaciones de 'os *edica*entos a'*acenados en 'a tab'a medicamentos. e+ Rea'ice 'a *is*a consu'ta de' inciso anterior (ero a;ora usando 'a c'áusu'a !ISTICT+ 6+ Muestre 'os *edica*entos en (resentación de pastillas o grageas+ .+ Rea'ice una consu'ta 5ue *uestre 7nica*ente e' nombre y 'a ciudad de 'os (ro2eedores+
PRÁCTICA "S$ !E ,"CI$ES E C$S"LTAS E MySQL $#%ETI&$: Conocer y a('icar c'áusu'as adiciona'es 5ue se (ueden aWadir a 'as consu'tas (ara obtener 'a in6or*ación dis(uesta de una 6or*a es(ec94ca) con e' 4n de crear re(ortes+ ,"!AMET$ TEÓRIC$: or*a'*ente e' etraer in6or*ación de una tab'a es con 'a 4na'idad de 5ue con e''a (oder rea'i-ar a'.una o(eración adiciona') co*o (uede ser contabi'i-ar e' n7*ero de traba/adores de cada de(arta*ento) ca'cu'ar e' *onto tota' de 'a nó*ina con base en 'a su*a de 'os sa'arios de 'os e*('eados) etc+ Ade*ás) cuando se insertan 'os datos en una tab'a) nor*a'*ente no 'o ;ace*os en un orden (reciso o se ordenan 'os re.istros con res(ecto a un ca*(o nu*3rico 5ue sue'e ser e' ca*(o de ''a2e (rinci(a'8 sin e*bar.o) cuando 5uere*os *ostrar e' resu'tado de una consu'ta .enera'*ente desea*os 5ue esta in6or*ación est3 ordenada (or ta' o cua' ca*(o (or 'o 5ue se (recisa tener a'.una 6or*a de rea'i-ar esta o(eración sobre 'os datos+ Por todo 'o anterior e' *is*o SQL (osee a'.unas c'áusu'as 5ue (odre*os a.re.ar a nuestras consu'tas (ara 5ue 'os resu'tados se *uestren de 'a *anera 5ue nos sea *ás 7ti'8 (or e/e*('o a' so'icitar una consu'ta senci''a de 'a tab'a empleados obtendr9a*os a'.o co*o 'o si.uiente:
$bser2a*os 5ue MySQL *uestra 'os re.istros ta' y co*o 6ueron introducidos en 'a tab'a) sin e*bar.o (odr9a ser (osib'e 5ue 5uisi3ra*os e' resu'tado ordenados (or e' sa'ario) es decir) 5ue co'ocara (ri*ero 'os traba/adores 5ue .anan *enos y a' 4na' 'os 5ue .anan *ás) esto 'o 'o.rare*os uti'i-ando 'a c'áusu'a $R!ER #D se.uida de' no*bre de' ca*(o (or e' cua' 5uere*os ordenar) (or e/e*('o: S#L#CT @ 9$"M empleados "$D#$ B salario;
Si desea*os 5ue e' orden sea in2erso) debere*os a.re.ar 'a c'áusu'a !ESC a' 4na' de 'a sentencia) (or e/e*('o: S#L#CT @ 9$"M empleados "$D#$ B salario D#SC; $btendria*os co*o resu'tado
"n *odi4cador i*(ortante 5ue (udi3ra*os uti'i-ar es ca*biar e' (unto y co*a (or a' 4na' de cada sentencia) 'o 5ue (ro2oca 5ue e' resu'tado se *uestre 2ertica'*ente en 'u.ar de ;ori-onta'*ente) (or e/e*('o:
S#L#CT nombre1 salario1 depto 9$"M empleados "$D#$ B salario D#SC enerar9a co*o resu'tado
En ocasiones nos interesará a.ru(ar 'os re.istros (ara (oder a('icar a'.7n cá'cu'o sobre cada .ru(o) (or e/e*('o si 5uisi3ra*os ca'cu'ar e' tota' de 'os sue'dos de 'os e*('eados (or cada uno de 'os de(arta*entos usare*os 'a c'áusu'a S"M0 nombreCampo AS co*binada con 'a c'áusu'a R$"P #D8 'a (ri*era ca'cu'a 'a su*atoria de un ca*(o es(eci4cado y con 'a se.unda indica*os cuando tendr9a 5ue *ostrar dic;o resu'tado) (or e/e*('o: S#L#CT depto1 SM(salario) 'S T"T'L>S#LD" 9$"M empleados $"! B depto;
os de2o'2er9a co*o resu'tado:
$bser2a*os 5ue se a.re.a un nue2o ca*(o T"TAL-S$ELD" en e' cua' se *uestra e' tota' de 'os sue'dos (or cada de(arta*ento+ !e i.ua' *anera (ode*os ca'cu'ar 'a *edia arit*3tica de a'.7n ca*(o con 'a c'áusu'a A&0 nombreCampo) AS co*binándo'a con R$"P #D) (or e/e*('o: S#L#CT depto1 '/(salario) 'S Sueldo>Medio 9$"M empleados $"! B depto;
E' resu'tado será:
A *enudo es interesante saber cuántos re.istros tiene un .ru(o) o cuántos cu*('en con cierta condición) (ara e''o se cuenta con 'a c'áusu'a C$"T0e$presion AS 'a cua' se sue'e aco*(aWar de 'a c'áusu'a =
E' usar 'a e(resión U) (ara 'as tab'as MyISAM retorna de *anera *ás rá(ida e' tota' de re.istros) (ues dic;a in6or*ación se .uarda en un ca*(o es(ecia' de 'a tab'a+ o obstante 'a e(resión ta*bi3n (uede ser !ISTICT aco*(aWada de' no*bre de uno de 'os ca*(os) 'o 5ue retornar9a e' n7*ero de entradas di6erentes de dic;o ca*(o) (or e/e*('o: S#L#CT C"&T(DST&CT depto) 'S &M>D#!T"S 9$"M empleados; Retorna e' si.uiente resu'tado:
Cuando se uti'i-a 'a c'áusu'a =
nos (er*ite usar e' co*od9n Y (ara sustituir caracteres 5ue desconoce*os) (or e/e*('o: S#L#CT @ 9$"M empleados <=#$# depto LE# 5/F7; !e2o'2erá e' resu'tado si.uiente:
Los resu'tados son 'os re.istros cuyo 2a'or en e' ca*(o de(to co*ien-an con una N&O+ E' co*od9n se (uede usar (ara sustituir caracteres antes) entre o (osterior a 'a e(resión) co*o Yt) 2Ya ó 2Y+ La c'áusu'a #ET=EE *uestra 'os 2a'ores co*(rendidos entre un 2a'or su(erior y un 2a'or in6erior) (or e/e*('o: S#L#CT @ 9$"M empleados <=#$# salario B#T<##& 088 '&D 3888; !e2o'2er9a co*o sa'ida
E' uso de #ET=EE es e5ui2a'ente a usar 'a e(resión co*binada 0sa'ario 1@@ A! sa'arioX@@@+ ,ina'*ente) otra sentencia 5ue resu'tará 7ti' es 'a c'áusu'a LIMIT 'a cua' 'i*itará e' n7*ero de re.istros 5ue se desea *ostrar en e' resu'tado) as9: S#L#CT @ 9$"M empleados LMT 08; Mostrar9a 7nica*ente die- resu'tados) si 'a consu'ta tu2iera *ás resu'tados) 3stos se recu(erar9an con: S#L#CT @ 9$"M empleados LMT 001 28; !ESARR$LL$:
1+ Inicie una nue2a sesión de conso'a de MySQL y rea'ice 'os si.uientes (asos) no o'2ide docu*entar cada uno de 'os resu'tados obtenidos+ a+ Crear una nue2a base de datos y ''a*ar'a li/reria-"rte7a. b+ Se'eccionar'a co*o base de datos actua' y crear 'a tab'a Autores con 'a si.uiente estructura: T'BL'.'T"$#S CAMP$S TIP$ !E !AT$S ATRI#"T$S $T "LL Idautor IT PRIMARD ED Autor &ARC
TIP$ !E !AT$S TIDTE>T SMALLIT
Isbn
TIDTE>T
ATRI#"T$S $T "LL $T "LL PRIMARD ED
C'asi4cacion &ARC
n+ E/ecute una consu'ta 5ue ordene 'os 'ibros (or e' aWo de (ub'icación+ o+ Cree una consu'ta 5ue obten.a e' n7*ero de t9tu'os (or aWo de (ub'icación+ (+ Se re5uiere conocer 'a c'asi4cación de 'os 'ibros 5ue en su t9tu'o ten.an 'a (a'abra "ni+