intro a sql y mysql - ejercicio 1 - ejercicio resuelto con 1 tabla.pdf

Upload: nino-fernando-pineda-agama

Post on 07-Jan-2016

243 views

Category:

Documents


0 download

TRANSCRIPT

  • IntroaSQLyMySQLEjercicio1Ejercicioresueltocon1tablaVamosaaplicarbuenapartedeloqueconocemosparahacerunejercicioderepasoquehagadistintasmanipulacionesaunanicatabla.Serunatablaquecontengadatosdeproductos:cdigo,nombre,precioyfechadealta,paraquepodamostrabajarcondatosdetexto,numricosydetipofecha.

    Lospasosquerealizaremos(porsialguienseatreveaintentarloantesdeverlasolucin)sern:

    CrearlabasededatosComenzarausarlaIntroducir3datosdeejemploMostrartodoslosdatosMostrarlosdatosquetienenunciertonombreMostrarlosdatosquecomienzanporunaciertainicialVersloelnombreyelpreciodelosquecumplenunacondicin(precio>22)Verelpreciomediodeaquelloscuyonombrecomienzacon"Silla"Modificarlaestructuradelatablaparaaadirunnuevocampo:"categora"Darelvalor"utensilio"alacategoradetodoslosproductosexistentesModificarlosproductosquecomienzaporlapalabra"Silla",paraquesucategorasea"silla"

    IntroaSQLyMySQLEjercicio1Ejercicioresueltocon1tabla MENU

    Estesitiowebusacookiesdetercerosparaanalizareltrficoypersonalizarlosanuncios.Sinoestdeacuerdo,abandoneelsitioynosiganavegandoporl.

    NuevoLexusCT200hlexusperu.com.pe/es/TecnologadeFrenadaRegenerativa:DelFrenadoaEnergaElctrica

  • Verlalistacategoras(sinqueaparezcandatosduplicados)Verlacantidaddeproductosquetenemosencadacategora

    DamosporsentadoqueMySQLestinstalado.Elprimerpasoescrearlabasededatos:

    CREATEDATABASEproductos1;

    Ycomenzarausarla:

    USEproductos1;

    Paracrearlatablaharamos:

    CREATETABLEproductos(codigovarchar(3),nombrevarchar(30),preciodecimal(6,2),fechaaltadate,PRIMARYKEY(codigo));

    Paraintroducirvariosdatosdeejemplo:

    INSERTINTOproductosVALUES('a01','Afilador',2.50,'20071102');INSERTINTOproductosVALUES('s01','Sillamod.ZAZ',20,'20071103');INSERTINTOproductosVALUES('s02','Sillamod.XAX',25,'20071103');

  • Podemosvertodoslosdatosparacomprobarquesoncorrectos:

    SELECT*FROMproductos;

    ydeberamosobtener

    +++++|codigo|nombre|precio|fechaalta|+++++|a01|Afilador|2.50|20071102||s01|Sillamod.ZAZ|20.00|20071103||s02|Sillamod.XAX|25.00|20071103|+++++

    Paraverquproductossellaman"Afilador":

    SELECT*FROMproductosWHEREnombre='Afilador';

    +++++|codigo|nombre|precio|fechaalta|+++++|a01|Afilador|2.50|20071102|+++++

    SiqueremossabercualescomienzanporS:

    SELECT*FROMproductosWHEREnombreLIKE'S%';

  • +++++|codigo|nombre|precio|fechaalta|+++++|s01|Sillamod.ZAZ|20.00|20071103||s02|Sillamod.XAX|25.00|20071103|+++++

    Siqueremosvercualestienenunpreciosuperiora22,yademsnodeseamosvertodosloscampos,sinosloelnombreyelprecio:

    SELECTnombre,precioFROMproductosWHEREprecio>22;

    +++|nombre|precio|+++|Sillamod.XAX|25.00|+++

    Preciomediodelassillas:

    SELECTavg(precio)FROMproductosWHERELEFT(nombre,5)='Silla';

    ++|avg(precio)|++|22.500000|++

    Estodemirarlasprimerasletrasparasabersiesunasillaono...quiznosealamejoropcin.Parecemsrazonableaadirunnuevodato:la"categora".Vamosamodificarlaestructuradelatablaparahacerlo:

  • ALTERTABLEproductosADDcategoriavarchar(10);

    Comprobamosquhaocurridoconun"select"quemuestretodoslosdatos:

    SELECT*FROMproductos;

    ++++++|codigo|nombre|precio|fechaalta|categoria|++++++|a01|Afilador|2.50|20071102|NULL||s01|Sillamod.ZAZ|20.00|20071103|NULL||s02|Sillamod.XAX|25.00|20071103|NULL|++++++

    Ahoramismo,todaslascategorastienenelvalorNULL,yesonoesmuytil.Vamosadarelvalor"utensilio"alacategoradetodoslosproductosexistentes

    UPDATEproductosSETcategoria='utensilio';

    Yyaqueestamos,modificaremoslosproductosquecomienzaporlapalabra"Silla",paraquesucategorasea"silla"

    UPDATEproductosSETcategoria='silla'WHERELEFT(nombre,5)='Silla';

  • ++++++|codigo|nombre|precio|fechaalta|categoria|++++++|a01|Afilador|2.50|20071102|utensilio||s01|Sillamod.ZAZ|20.00|20071103|silla||s02|Sillamod.XAX|25.00|20071103|silla|++++++

    Paraverlalistacategoras(sinqueaparezcandatosduplicados),deberemosusarlapalabra"distinct"

    SELECTDISTINCTcategoriaFROMproductos;

    ++|categoria|++|utensilio||silla|++

    Finalmente,paraverlacantidaddeproductosquetenemosencadacategora,deberemosusar"count"yagruparlosdatoscon"groupby",as:

    SELECTcategoria,count(*)FROMproductosGROUPBYcategoria;

    +++|categoria|count(*)|+++|silla|2||utensilio|1|+++

  • 2015NachoCabanes(http://www.nachocabanes.com)46342visitasdesdeel07Nov2007

    ndice(index.php) Anterior(index.php) Posterior(sqle2.php) NachoCabanes.com(../../)

    FreeITHelpdeskSoftware