Hemos visto los operadores relacionales:
= (igual), <> (distinto), > (mayor), < (menor), >= (mayor o igual), <= (menor o igual), is null/is not null (si un valor es NULL o no).
Existen otros que simplifican algunas consultas:
Para recuperar de nuestra tabla "libros" los registros que tienen precio mayor o igual a 20 y menor o igual a 40, usamos 2 condiciones unidas por el operador lógico "and":
select * from libros where precio>=20 and precio<=40;
Podemos usar "between":
select * from libros where precio between 20 and 40;
"between" significa "entre". Averiguamos si el valor de un campo dado (precio) está entre los valores mínimo y máximo especificados (20 y 40 respectivamente).
Si agregamos el operador "not" antes de "between" el resultado se invierte.
Para recuperar los libros cuyo autor sea 'Paenza' o 'Borges' usamos 2 condiciones:
select * from libros where autor='Borges' or autor='Paenza';
Podemos usar "in":
select * from libros where autor in('Borges','Paenza');
Con "in" averiguamos si el valor de un campo dado (autor) está incluido en la lista de valores especificada (en este caso, 2 cadenas).
Para recuperar los libros cuyo autor no sea 'Paenza' ni 'Borges' usamos:
select * from libros where autor<>'Borges' and autor<>'Paenza';
También podemos usar "in" :
select * from libros where autor not in ('Borges','Paenza');
Con "in" averiguamos si el valor del campo está incluido en la lista, con "not" antecediendo la condición, invertimos el resultado.
Problema:
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');
Problema Propuesto:
Trabaje con la tabla llamada "medicamentos" de una farmacia. 1- Elimine la tabla, si existe. 2- Cree la tabla con la siguiente estructura:
create table medicamentos( codigo int unsigned auto_increment, nombre varchar(20), laboratorio varchar(20), precio decimal(5,2) unsigned, cantidad int unsigned, primary key(codigo) ); 3- Visualice la estructura de la tabla "medicamentos". 4- Ingrese los siguientes registros:
(nombre,laboratorio,precio,cantidad) Sertal,Roche,5.2,100 Buscapina,Roche,4.10,200 Amoxidal 500,Bayer,15.60,100 Paracetamol 500,Bago,1.90,200 Bayaspirina,Bayer,2.10,150 Amoxidal jarabe,Bayer,5.10,250 5- Recupere los nombres y precios de los medicamentos cuyo precio
esté entre 5 y 15: 6- Seleccione los registros cuyo laboratorio sea "Bayer" o "Bago": 7- Elimine los registros cuya cantidad esté entre 100 y 200:
Otros problemas:
Una concesionaria de autos vende autos usados y almacena
la información en una tabla llamada "autos". 1- Elimine la tabla "autos" si existe. 2- Cree la tabla con la siguiente estructura:
create table autos( patente char(6), marca varchar(20), modelo char(4), precio decimal(8,2) unsigned, primary key(patente) );
3- Ingrese los siguientes registros:
(patente,marca,modelo,precio) ACD123,Fiat 128,1970,15000 ACG234,Renault 11,1990,40000 BCD333,Peugeot 505,1990,80000 GCD123,Renault Clio,1990,70000 BCC333,Renault Megane,1998,95000 BVF543,Fiat 128,1975,20000 4- Seleccione todos los autos cuyo año sea '1970' o '1975'
usando el operador "in": 5- Seleccione todos los autos cuyo precio esté entre 50000 y 100000:
No hay comentarios:
Publicar un comentario