30 - Otros operadores relacionales (between - in)


Problema:

Trabajamos con la tabla "libros" de una librería.

Eliminamos la tabla, si existe.

Creamos la tabla con la siguiente estructura:

 create table libros(
  codigo int unsigned auto_increment,
  titulo varchar(40),
  autor varchar(30),
  editorial varchar(15),
  precio decimal(5,2) unsigned,
  primary key(codigo)
 );

Ingresamos algunos registros:

 insert into libros (titulo,autor,editorial,precio)
  values('El aleph','Borges','Planeta',15.50);
 insert into libros (titulo,autor,editorial,precio)
  values('Martin Fierro','Jose Hernandez','Emece',22.90);
 insert into libros (titulo,autor,editorial,precio)
  values('Martin Fierro','Jose Hernandez','Planeta',39);
 insert into libros (titulo,autor,editorial,precio)
  values('Aprenda PHP','Mario Molina','Emece',19.50);
 insert into libros (titulo,autor,editorial,precio)
  values('Cervantes y el quijote','Borges','Paidos',35.40);
 insert into libros (titulo,autor,editorial,precio)
  values('Matematica estas ahi', 'Paenza', 'Paidos',19);

Recuperamos los registros que tienen precio mayor o igual a 20 y menor o igual a 40, usando 2 condiciones:

 select * from libros
  where precio>=20 and
  precio<=40;

Ahora usamos "between" y confirmamos que la salida es la misma:

 select * from libros
  where precio between 20 and 40;

Recuperamos los libros cuyo autor es 'Paenza' o 'Borges' usando 2 condiciones:

 select * from libros
  where autor='Borges' or
  autor='Paenza';

Usamos "in" y obtenemos el mismo resultado:

 select * from libros
  where autor in('Borges','Paenza');

Seleccionamos los libros cuyo autor no es 'Paenza' ni 'Borges' usamos:

 select * from libros
  where autor<>'Borges' and
  autor<>'Paenza';

Realizamos la misma consulta, pero esta vez con "in" :

 select * from libros
  where autor not in ('Borges','Paenza');



Retornar