27 - Otros operadores relacionales (in)


Primer 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(5),
  nombre varchar2(20),
  laboratorio varchar2(20),
  precio number(6,2),
  cantidad number(3) not null,
  fechavencimiento date not null,
  primary key(codigo)
 );

3- Ingrese algunos registros:

 insert into medicamentos
  values(100,'Sertal','Roche',5.2,1,'01/02/2005');
 insert into medicamentos 
  values(230,'Buscapina',null,4.10,3,'01/03/2006');
 insert into medicamentos 
  values(280,'Amoxidal 500','Bayer',15.60,100,'01/05/2007');
 insert into medicamentos
  values(301,'Paracetamol 500','Bago',1.90,10,'01/02/2008');
 insert into medicamentos 
  values(400,'Bayaspirina','Bayer',2.10,150,'01/08/2009'); 
 insert into medicamentos 
  values(560,'Amoxidal jarabe','Bayer',5.10,250,'01/10/2010'); 

4- Recupere los nombres y precios de los medicamentos cuyo laboratorio sea "Bayer" o "Bago" empleando el operador "in" (4 registros)

5- Recupere los nombres y precios de los medicamentos cuyo laboratorio NO sea "Bayer" o "Bago" empleando el operador "in" (1 registro)
Note que los valores nulos no se incluyen.

6- Seleccione los remedios cuya cantidad se encuentre entre 1 y 5 empleando el operador "between" y luego el operador "in" (2 registros)
Note que es más conveniente emplear, en este caso, el operador "between", simplifica la consulta.

7- Recupere los registros cuyas fechas de vencimiento se encuentra entre enero de 2005 y enero del 2007 (emplee el operador apropiado) (2 registros)

8- Recupere los registros cuyo año de vencimiento sea 2005 o 2006 (emplee el operador apropiado) (2 registros)

Ver solución

 drop table medicamentos;

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

 insert into medicamentos
  values(100,'Sertal','Roche',5.2,1,'01/02/2005');
 insert into medicamentos 
  values(230,'Buscapina',null,4.10,3,'01/03/2006');
 insert into medicamentos 
  values(280,'Amoxidal 500','Bayer',15.60,100,'01/05/2007');
 insert into medicamentos
  values(301,'Paracetamol 500','Bago',1.90,10,'01/02/2008');
 insert into medicamentos 
  values(400,'Bayaspirina','Bayer',2.10,150,'01/08/2009'); 
 insert into medicamentos 
  values(560,'Amoxidal jarabe','Bayer',5.10,250,'01/10/2010'); 

 select nombre,precio from medicamentos
  where laboratorio in ('Bayer','Bago');

 select nombre,precio from medicamentos
  where laboratorio not in ('Bayer','Bago');

 select *from medicamentos
  where cantidad between 1 and 5;
 select *from medicamentos
  where cantidad in (1,2,3,4,5);

 select *from medicamentos
  where fechavencimiento between '01/01/2005' and '01/01/2007';

 select *from medicamentos
  where extract(year from fechavencimiento) in (2005,2006);

 


Retornar