Problemas Manual Clase 8 de BD
Problemas Manual Clase 8 de BD
Problemas Manual Clase 8 de BD
Problema:
4- Mediante un formulario en HTML y con PHP Ingrese los siguientes registros (insert
into):
insert into medicamentos (nombre, laboratorio,precio,cantidad)
values('Sertal','Roche',5.2,100);
insert into medicamentos (nombre, laboratorio,precio,cantidad)
values('Buscapina','Roche',4.10,200);
insert into medicamentos (nombre, laboratorio,precio,cantidad)
values('Amoxidal 500','Bayer',15.60,100);
insert into medicamentos (nombre, laboratorio,precio,cantidad)
values('Paracetamol 500','Bago',1.90,200);
insert into medicamentos (nombre, laboratorio,precio,cantidad)
values('Bayaspirina','Bayer',2.10,150);
insert into medicamentos (nombre, laboratorio,precio,cantidad)
values('Amoxidal jarabe','Bayer',5.10,250);
5- Recupere los códigos y nombres de los medicamentos cuyo laboratorio sea 'Roche' y
cuyo precio sea menor a 5:
select codigo,nombre
from medicamentos
where laboratorio='Roche' and
precio<5;
Quedó seleccionado 1 registro, es el único que cumple con ambas condiciones.
6- Recupere los medicamentos cuyo laboratorio sea 'Roche' o cuyo precio sea menor a
5:
select * from medicamentos
where laboratorio='Roche' or
precio<5;
Note que la salida es diferente, hemos cambiado el operador de la sentencia anterior.
Ahora se recuperaron todos los registros cuyo laboratorio es igual a 'Roche' y todos los
registros cuyo precio es menor a 5. Aquellos registros que no cumplieron con la
condición 1 (no son de "Roche") ni con la condicion2 (no cuestan menos de 5) no
aparecen.
7- Muestre todos los registros que no sean de "Bayer" usando el operador "not".
8- Muestre todos los medicamentos cuyo laboratorio NO sea "Bayer" y cuya cantidad
sea=100:
select * from medicamentos
where not laboratorio='Bayer' and
cantidad=100;
9- Muestre todos los medicamentos cuyo laboratorio sea "Bayer" y cuya cantidad NO
sea=100:
select * from medicamentos
where laboratorio='Bayer' and
not cantidad=100;
Analice estas 2 últimas sentencias. El operador "not" afecta a la condición a la cual
antecede, no a las siguientes. Los resultados de estas 2 sentencias son diferentes.
10- Elimine todos los registros cuyo laboratorio sea igual a "Bayer" y su precio sea
mayor a 10:
delete from medicamentos
where laboratorio='Bayer' and
precio>10;
Sólo 1 registro debe ser eliminado, el que cumple con ambas condiciones.
11- Cambie la cantidad por 200, a todos los medicamentos de "Roche" cuyo precio sea
mayor a 5:
update medicamentos set cantidad=200
where laboratorio='Roche' and
precio>5;
Un solo registro fue actualizado porque sólo uno cumplió con las condiciones
especificadas.
12- Borre los medicamentos cuyo laboratorio sea "Bayer" o cuyo precio sea menor a 3.
Antes veamos cuáles cumplen con la condición, los registros 5 y 6 son de "Bayer,
cumplen con la primera condición, los registros 4 y 5 cumplen con la segunda
condición, es decir, se borrarán 3 registros: el 4 porque cumple con la segunda
condición, el 5 porque cumple con ambas y el 6 porque cumple con la primera.
Digitemos:
delete from medicamentos
where laboratorio='Bayer' or
precio<3;
Otros problemas:
A) Trabajamos con la tabla "peliculas" de un video club que alquila películas en video.
4- Recupere los registros cuyo actor sea "Tom Cruise" or "Richard Gere". (3 registros).
5- Recupere los registros cuyo actor sea "Tom Cruise" y "Richard Gere".
(ninguno cumple ambas condiciones).
6- Cambie la duración a 200, de las películas cuyo actor sea "Daniel R." y cuya
duración sea 180.
(1 registro afectado).
8- Borre todas las películas donde el actor NO sea "Tom Cruise" y cuya duración sea
mayor o igual a 100:
delete from peliculas
where not actor='Tom Cruise' and
duracion<=100;
Deben borrarse 2 registros.
B) En una página web se solicitan los siguientes datos para guardar información de sus
visitas:
nombre, mail, pais.
4- Muestre los datos de las visitas del país o países que ud quiera ingresado después
del mes de septiembre:
5- Elimine todos los registros cuyo pais no sea el que ud quiera seleccionar y que
hayan visitado la página antes de las 16 hs.:
Problema:
5- Recupere los nombres y precios de los medicamentos cuyo precio esté entre 5 y 15:
select nombre,precio from medicamentos
where precio between 5 and 15;
Otros problemas:
4- Seleccione todos los autos cuyo año sea '2010' o '2015' usando el operador "in":
select * from autos
where modelo in ('2010','2015');
5- Seleccione todos los autos cuyo precio esté entre 50000 y 100000:
select * from autos
where precio between 50000 and 100000;
Otros problemas:
5- Actualice el valor del campo "actor" cambiando por 'R. Gere- J. Roberts', de la
película cuyo código es 5:
update peliculas set actor='R. Gere-J. Roberts'
where codigo=5;
6- Seleccione todas las películas en las cuales trabaje el actor "Gere". Use "like". (2
registros seleccionados).
7- Recupere los registros que NO contengan la letra "y" en el título y contenga "ch" en
el campo "actor" (2 registros):
select * from peliculas
where titulo not like '%y%' and
actor like '%ch%';
8- Seleccione las películas que comiencen con "M" y cuya duración sea menor a 150 (3
registros):
select * from peliculas
where titulo like 'M%' and
duracion<150;
9- Cambie el valor de la duración a 100 en las películas en las cuales el campo "actor"
comience con "D":
update peliculas set duracion=100
where actor like 'D%';
10- Recupere los registros que cumplan la condición del punto anterior, para verificar
el cambio de la duración:
select * from peliculas
where actor like 'D%';
B) Trabaje con la tabla "usuarios" que almacena el nombre y clave de cada usuario.
4- Ingrese los varios registros de tal manera que aplique el contexto de este tema:
8.4. Regexp
Problema:
Trabaje con la tabla "agenda" que registra la información referente a sus amigos.
6- Busque los apellidos que tienen por lo menos una de las letras de la "v" hasta la "z"
(v,w,x,y,z):
10- Seleccione el nombre y mail de todos los amigos cuyos mails tengan al menos 20
caracteres:
Otros problemas:
Un almacén de UNILAGO que vende artículos de computación registra los datos de sus
artículos en una tabla con ese nombre.
5-Busque los artículos en los cuales el campo "descripcion" no tienen "H" ni "W":
select * from articulos
where descripcion not regexp '[hw]';
6- Seleccione las descripciones que contengan una letra "s" seguida de un caracter
cualquiera y luego una "n":
select * from articulos
where descripcion regexp 's.n';
Busque otras formas de hacer consultas por todos los ejercicios de este documento