0% encontró este documento útil (0 votos)
33 vistas6 páginas

Operadores SQL: Between e In en Consultas

El documento explica el uso de los operadores relacionales BETWEEN y IN para realizar consultas en una base de datos. Se crean tablas de ejemplo de 'libros' y 'medicamentos' y se muestran ejemplos de consultas utilizando estos operadores.

Cargado por

jessperez272
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
33 vistas6 páginas

Operadores SQL: Between e In en Consultas

El documento explica el uso de los operadores relacionales BETWEEN y IN para realizar consultas en una base de datos. Se crean tablas de ejemplo de 'libros' y 'medicamentos' y se muestran ejemplos de consultas utilizando estos operadores.

Cargado por

jessperez272
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Guía 20- Otros operadores relacionales (between - in)

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.

Ingresemos al programa "Workbench" y ejecutemos el


siguiente bloque de instrucciones SQL para utilizar los
operadores relacionales 'between' y 'in':
drop table if exists libros;

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)
);

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);

select * from libros


where precio>=20 and
precio<=40;

select * from libros


where precio between 20 and 40;

select * from libros


where autor='Borges' or
autor='Paenza';

select * from libros


where autor in('Borges','Paenza');

select * from libros


where autor<>'Borges' and
autor<>'Paenza';

select * from libros


where autor not in ('Borges','Paenza');

Que nos genera una salida similar a esta:


Problema:
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:


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 nombres y precios de los medicamentos cuyo


precio esté entre 5 y 15:
select nombre,precio from medicamentos
where precio between 5 and 15;

6- Seleccione los registros cuyo laboratorio sea "Bayer" o


"Bago":
select * from medicamentos
where laboratorio in ('Bayer','Bago');

7- Elimine los registros cuya cantidad esté entre 100 y 200:


delete from medicamentos

where cantidad between 100 and 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:
insert into autos(patente,marca,modelo,precio)
values('ACD123','Fiat 128','1970',15000);
insert into autos(patente,marca,modelo,precio)
values('ACG234','Renault 11','1990',40000);
insert into autos(patente,marca,modelo,precio)
values('BCD333','Peugeot 505','1990',80000);
insert into autos(patente,marca,modelo,precio)
values('GCD123','Renault Clio','1990',70000);
insert into autos(patente,marca,modelo,precio)
values('BCC333','Renault Megane','1998',95000);
insert into autos(patente,marca,modelo,precio)
values('BVF543','Fiat 128','1975',20000);

4- Seleccione todos los autos cuyo año sea '1970' o '1975'


usando el operador "in":
select * from autos
where modelo in ('1970','1975');

5- Seleccione todos los autos cuyo precio esté entre 50000 y


100000:
select * from autos
where precio between 50000 and 100000;

También podría gustarte