Sunteți pe pagina 1din 5

Ejercicio1Ejercicioresueltocon1tabla

Vamosaaplicarbuenapartedeloqueconocemosparahacerunejercicioderepasoquehagadistintas
manipulacionesaunanicatabla.Serunatablaquecontengadatosdeproductos:cdigo,nombre,
precioyfechadealta,paraquepodamostrabajarcondatosdetexto,numricosydetipofecha.
Lospasosquerealizaremos(porsialguienseatreveaintentarloantesdeverlasolucin)sern:

Crearlabasededatos
Comenzarausarla
Introducir3datosdeejemplo
Mostrartodoslosdatos
Mostrarlosdatosquetienenunciertonombre
Mostrarlosdatosquecomienzanporunaciertainicial
Versloelnombreyelpreciodelosquecumplenunacondicin(precio>22)
Verelpreciomediodeaquelloscuyonombrecomienzacon"Silla"
Modificarlaestructuradelatablaparaaadirunnuevocampo:"categora"
Darelvalor"utensilio"alacategoradetodoslosproductosexistentes
Modificarlosproductosquecomienzaporlapalabra"Silla",paraquesucategorasea"silla"
Verlalistacategoras(sinqueaparezcandatosduplicados)
Verlacantidaddeproductosquetenemosencadacategora

Elprimerpasoescrearlabasededatos:
create database productos1;

Ycomenzarausarla:
use productos1;

Paracrearlatablaharamos:
create table productos (
codigo varchar(3),
nombre varchar(30),
precio decimal(6,2),
fechaalta date,
primary key (codigo)
);

Paraintroducirvariosdatosdeejemplo:
insert into productos values ('a01','Afilador', 2.50, '2007-11-02');
insert into productos values ('s01','Silla mod. ZAZ', 20, '2007-11-03');
insert into productos values ('s02','Silla mod. XAX', 25, '2007-11-03');

Podemosvertodoslosdatosparacomprobarquesoncorrectos:
select * from productos;

ydeberamosobtener
+--------+----------------+--------+------------+
| codigo | nombre
| precio | fechaalta |
+--------+----------------+--------+------------+

| a01
| Afilador
|
2.50 | 2007-11-02 |
| s01
| Silla mod. ZAZ | 20.00 | 2007-11-03 |
| s02
| Silla mod. XAX | 25.00 | 2007-11-03 |
+--------+----------------+--------+------------+

Paraverquproductossellaman"Afilador":
select * from productos where nombre='Afilador';
+--------+----------+--------+------------+
| codigo | nombre
| precio | fechaalta |
+--------+----------+--------+------------+
| a01
| Afilador |
2.50 | 2007-11-02 |
+--------+----------+--------+------------+

SiqueremossabercualescomienzanporS:
select * from productos where nombre like 'S%';
+--------+----------------+--------+------------+
| codigo | nombre
| precio | fechaalta |
+--------+----------------+--------+------------+
| s01
| Silla mod. ZAZ | 20.00 | 2007-11-03 |
| s02
| Silla mod. XAX | 25.00 | 2007-11-03 |
+--------+----------------+--------+------------+

Siqueremosvercualestienenunpreciosuperiora22,yademsnodeseamosvertodosloscampos,
sinosloelnobreyelprecio:
select nombre, precio from productos where precio > 22;
+----------------+--------+
| nombre
| precio |
+----------------+--------+
| Silla mod. XAX | 25.00 |
+----------------+--------+

Preciomediodelassillas:
select avg(precio) from productos where left(nombre,5) = 'Silla';
+-------------+
| avg(precio) |
+-------------+
|
22.500000 |
+-------------+

Estodemirarlasprimerasletrasparasabersiesunasillaono...quiznosealamejoropcin.Parece
msrazonableaadirunnuevodato:la"categora".Vamosamodificarlaestructuradelatablapara
hacerlo:
alter table productos add categoria varchar(10);

Comprobamosquhaocurridoconun"select"quemuestretodoslosdatos:
select * from productos;

+--------+----------------+--------+------------+-----------+
| codigo | nombre
| precio | fechaalta | categoria |
+--------+----------------+--------+------------+-----------+
| a01
| Afilador
|
2.50 | 2007-11-02 | NULL
|
| s01
| Silla mod. ZAZ | 20.00 | 2007-11-03 | NULL
|
| s02
| Silla mod. XAX | 25.00 | 2007-11-03 | NULL
|
+--------+----------------+--------+------------+-----------+

Ahoramismo,todaslascategorastienenelvalorNULL,yesonoelmuytil.Vamosadarelvalor
"utensilio"alacategoradetodoslosproductosexistentes
update productos set categoria='utensilio';

Yyaqueestamos,modificaremoslosproductosquecomienzaporlapalabra"Silla",paraquesu
categorasea"silla"
update productos set categoria="silla" where left(nombre,5) = 'Silla';
+--------+----------------+--------+------------+-----------+
| codigo | nombre
| precio | fechaalta | categoria |
+--------+----------------+--------+------------+-----------+
| a01
| Afilador
|
2.50 | 2007-11-02 | utensilio |
| s01
| Silla mod. ZAZ | 20.00 | 2007-11-03 | silla
|
| s02
| Silla mod. XAX | 25.00 | 2007-11-03 | silla
|
+--------+----------------+--------+------------+-----------+

Paraverlalistacategoras(sinqueaparezcandatosduplicados),deberemosusarlapalabra"distinct"
select distinct categoria from productos;
+-----------+
| categoria |
+-----------+
| utensilio |
| silla
|
+-----------+

Finalmente,paraverlacantidaddeproductosquetenemosencadacategora,deberemosusar"count"y
agruparlosdatoscon"groupby",as:
select categoria, count(*) from productos group by categoria;
+-----------+----------+
| categoria | count(*) |
+-----------+----------+
| silla
|
2 |
| utensilio |
1 |
+-----------+----------+

Ejercicio2Ejerciciopropuestocon1tabla
QueremoscrearunabasededatosparaalmacenarinformacinsobrePDAs.
Enunprimeracercamiento,usaremosunanicatablallamadaPDA,quetendrcomocampos:
Cdigo
Nombre
SistemaOperativo
Memoria(mb)
Bluetooth(s/n)
1Crearlatabla.
2Introducirenellalosdatos:
ptx,PalmTungstenTX,PalmOS,128,s
p22,PalmZire22,PalmOS,16,n
i3870,CompaqIpaq3870,WindowsPocketPC2002,64,s
Realizarlasconsultas
3Equiposconmasde64mbdememoria.
4Equiposcuyosistemaoperativonosea"PalmOS".
5Equiposcuyosistemaoperativocontengalapalabra"Windows".
6Listadesistemasoperativos(sinduplicados)
7Nombreycdigodelequipoquemsmemoriatiene.
8Nombreymarca(supondremosquelamarcaeslaprimerapalabradelnombre,hastaelprimer
espacio)decadaequipo,ordenadopormarcayacontinuacinpornombre.
9Equiposconmenosmemoriaquelamedia.
10Cantidaddeequiposconcadasistemaoperativo.
11Sistemasoperativosparalosquetengamos2omsequiposenlabasededatos.
12AadiralatablaPDAuncampo"precio",convalorNULLpordefecto.
13Modificareldatodelequipoconcdigo"p22",paraindicarquesuprecioes119,50.Listarlos
equiposcuyoprecionoconocemos.

Ejercicio3Ejercicioresueltocon2tablas
1Crearunabasededatosllamada"deportes",yenelladostablas:jugadoryequipo.Deljugadorse
deseaalmacenar:codigo(txt12),nombre,apellido1,apellido2,demarcacion(ej:delantero).Decada
equipo:codigo(txt8),nombre,deporte(ej:baloncesto).Cadaequipoestarformadaporvarios
jugadores,ysupondremosquecadajugadorslopuedeformarpartedeunequipo.
2Introducirlosdatos:
Enequipos:
rcm,RealCampello,baloncesto
can,Canoa,natacion
ssj,SportingdeSanJuan,futbol
Enjugadores:
rml,Ral,Martnez,Lpez,pivot(juegaenelRealCampello)
rl,Ral,Lpez,,saltador(delCanoa)
jl,Jordi,Lpez,,nadadorcrawl(delCanoa)
rol,Roberto,Linares,,base(juegaenelRealCampello)
3Crearunaconsultaquemuestre:nombrededeportista,primerapellido,demarcacin,nombrede
equipo(paratodoslosjugadoresdelabasededatos).
4Crearunaconsultaquemuestreelnombredelosequiposparalosquenosabemoslosjugadores.
5Crearunaconsultaquemuestrenombreyapellidosdelosjugadorescuyoprimerosegundoapellido
es"Lpez".
6Crearunaconsultaquemuestrenombreyapellidosdelosnadadores.
7Crearunaconsultaquemuestrelacantidaddejugadoresquehayencadaequipo.
8Crearunaconsultaquemuestrelacantidaddejugadoresquehayencadadeporte.
9Crearunaconsultaquemuestreelequipoquemsjugadorestiene.
10Aadiralatabladejugadoresuncampoenelquepoderalmacenarlaantigedad(enaos),que
tengacomovalorpordefectoNULL,ymodificarlafichade"RobertoLinares"paraindicarquesu
antigedadesde4aos.

S-ar putea să vă placă și