26 - Otros operadores relacionales (between)


Primer problema:

En una página web se guardan los siguientes datos de las visitas: número de visita, nombre, mail, pais, fechayhora de la visita.

1- Elimine la tabla "visitas" y créela con la siguiente estructura:

  drop table visitas;

 create table visitas (
  nombre varchar2(30) default 'Anonimo',
  mail varchar2(50),
  pais varchar2(20),
  fecha date
 );

2- Ingrese algunos registros:

 insert into visitas
  values ('Ana Maria Lopez','AnaMaria@hotmail.com','Argentina','10/10/2006');
 insert into visitas
  values ('Gustavo Gonzalez','GustavoGGonzalez@gotmail.com','Chile','10/10/2006');
 insert into visitas
  values ('Juancito','JuanJosePerez@hotmail.com','Argentina','11/10/2006');
 insert into visitas 
  values ('Fabiola Martinez','MartinezFabiola@hotmail.com','Mexico','12/10/2006');
 insert into visitas
  values ('Fabiola Martinez','MartinezFabiola@hotmail.com','Mexico','12/09/2006');
 insert into visitas
  values ('Juancito','JuanJosePerez@gmail.com','Argentina','12/09/2006');
 insert into visitas 
  values ('Juancito','JuanJosePerez@hotmail.com','Argentina','15/09/2006');
 insert into visitas 
  values ('Federico1','federicogarcia@xaxamail.com','Argentina',null);

3- Seleccione los usuarios que visitaron la página entre el '12/09/2006' y '11/10/2006' (6 registros)
Note que incluye los de fecha mayor o igual al valor mínimo y menores o iguales al valor máximo, y que los valores nulos no se incluyen.

Ver solución

  drop table visitas;

 create table visitas (
  nombre varchar2(30) default 'Anonimo',
  mail varchar2(50),
  pais varchar2(20),
  fecha date
 );

 insert into visitas
  values ('Ana Maria Lopez','AnaMaria@hotmail.com','Argentina','10/10/2006');
 insert into visitas
  values ('Gustavo Gonzalez','GustavoGGonzalez@gotmail.com','Chile','10/10/2006');
 insert into visitas
  values ('Juancito','JuanJosePerez@hotmail.com','Argentina','11/10/2006');
 insert into visitas 
  values ('Fabiola Martinez','MartinezFabiola@hotmail.com','Mexico','12/10/2006');
 insert into visitas
  values ('Fabiola Martinez','MartinezFabiola@hotmail.com','Mexico','12/09/2006');
 insert into visitas
  values ('Juancito','JuanJosePerez@gmail.com','Argentina','12/09/2006');
 insert into visitas 
  values ('Juancito','JuanJosePerez@hotmail.com','Argentina','15/09/2006');
 insert into visitas 
  values ('Federico1','federicogarcia@xaxamail.com','Argentina',null);

 select *from visitas
  where fecha between '12/09/2006' and '11/10/2006';

 

Segundo problema:

Trabaje con la tabla llamada "medicamentos" de una farmacia.

1- Elimine la tabla y créela con la siguiente estructura:

 drop table medicamentos;

 create table medicamentos(
  codigo number(6) not null,
  nombre varchar2(20),
  laboratorio varchar2(20),
  precio number(6,2),
  cantidad number(4),
  fechavencimiento date not null,
  primary key(codigo)
 );

2- Ingrese algunos registros:

 insert into medicamentos
  values(102,'Sertal','Roche',5.2,10,'01/02/2010');
 insert into medicamentos 
  values(120,'Buscapina','Roche',4.10,200,'01/12/2007');
 insert into medicamentos 
  values(230,'Amoxidal 500','Bayer',15.60,100,'28/12/2007');
 insert into medicamentos
  values(250,'Paracetamol 500','Bago',1.90,20,'01/02/2008');
 insert into medicamentos 
  values(350,'Bayaspirina','Bayer',2.10,150,'01/12/2009'); 
 insert into medicamentos 
  values(456,'Amoxidal jarabe','Bayer',5.10,250,'01/10/2010'); 

3- Recupere los nombres y precios de los medicamentos cuyo precio esté entre 5 y 15 (2 registros)

4- Seleccione los registros cuya cantidad se encuentre entre 100 y 200 (3 registros)

5- Recupere los remedios cuyo vencimiento se encuentre entre la fecha actual y '01/01/2008' inclusive (2 registros)

6- Elimine los remedios cuyo vencimiento se encuentre entre el año 2007 y 2008 inclusive (3 registros)


Ver solución
 drop table medicamentos;

 create table medicamentos(
  codigo number(6) not null,
  nombre varchar2(20),
  laboratorio varchar2(20),
  precio number(6,2),
  cantidad number(4),
  fechavencimiento date not null,
  primary key(codigo)
 );

 insert into medicamentos
  values(102,'Sertal','Roche',5.2,10,'01/02/2010');
 insert into medicamentos 
  values(120,'Buscapina','Roche',4.10,200,'01/12/2007');
 insert into medicamentos 
  values(230,'Amoxidal 500','Bayer',15.60,100,'28/12/2007');
 insert into medicamentos
  values(250,'Paracetamol 500','Bago',1.90,20,'01/02/2008');
 insert into medicamentos 
  values(350,'Bayaspirina','Bayer',2.10,150,'01/12/2009'); 
 insert into medicamentos 
  values(456,'Amoxidal jarabe','Bayer',5.10,250,'01/10/2010'); 

 select nombre,precio from medicamentos
  where precio between 5 and 15;

 select *from medicamentos
  where cantidad between 100 and 200;

 select *from medicamentos
  where fechavencimiento between sysdate and '01/01/2008';

 delete from medicamentos
  where extract(year from fechavencimiento) between '2007' and '2008';

Retornar