67
ESTRELLA COCOM MARIO FILIBERTO INGENIERIA EN SISTEMAS COMPUTACIONALES Ejercicio #6 Problema: Un videoclub que alquila películas en video almacena la información de sus películas en alquiler en una tabla llamada "peliculas". 1- Elimine la tabla, si existe: drop table if exists peliculas; 2- Cree la tabla: create table peliculas( titulo varchar(20), actor varchar(20), duracion integer, cantidad integer ); 3- Vea la estructura de la tabla: describe peliculas;

Estrella Mario Ejercicios BDD

Embed Size (px)

Citation preview

Page 1: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

Ejercicio #6

Problema:

Un videoclub que alquila películas en video almacena la información de sus películas en alquiler en una tabla

llamada "peliculas".

1- Elimine la tabla, si existe:

drop table if exists peliculas;

2- Cree la tabla:

create table peliculas( titulo varchar(20), actor varchar(20), duracion integer, cantidad integer );

3- Vea la estructura de la tabla: describe peliculas;

Page 2: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

4- Ingrese los siguientes registros:

insert into peliculas (titulo, actor, duracion, cantidad) values ('Mision imposible','Tom Cruise',120,3);

insert into peliculas (titulo, actor, duracion, cantidad) values ('Mision imposible 2','Tom Cruise',180,2);

insert into peliculas (titulo, actor, duracion, cantidad) values ('Mujer bonita','Julia R.',90,3);

insert into peliculas (titulo, actor, duracion, cantidad) values ('Elsa y Fred','China Zorrilla',90,2);

5- Realice un "select" mostrando solamente el título y actor de todas las películas:

select titulo,actor from peliculas;

6- Muestre el título y duración de todas las peliculas.

Page 3: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

7- Muestre el título y la cantidad de copias.

Ejercicio #7

Problema: Trabajamos con nuestra tabla "agenda".

1- Eliminamos "agenda", si existe: drop table if exists agenda;

2- Creamos la tabla, con los siguientes campos:

nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11).

3- Visualice la estructura de la tabla "agenda".(describe).

Page 4: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

4- Ingrese los siguientes registros:

'Alberto Mores','Colon 123','4234567',

'Juan Torres','Avellaneda 135','4458787',

'Mariana Lopez','Urquiza 333','4545454',

'Fernando Lopez','Urquiza 333','4545454'.

5- Seleccione todos los registros de la tabla. (select).

6- Seleccione el registro cuyo nombre sea 'Juan Torres'

7- Seleccione el registro cuyo domicilio sea 'Colon 123'.

Page 5: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

8- Muestre los datos de quienes tengan el teléfono '4545454'.

9- Elimine la tabla "agenda".

Ejercicio #8

Problema:

Un comercio que vende artículos de computación registra los datos de sus artículos en una tabla con ese

nombre

1- Elimine "articulos", si existe:

drop table if exists articulos;

Page 6: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

2- Cree la tabla, con la siguiente estructura:

create table articulos( codigo integer, nombre varchar(20), descripcion varchar(30), precio float, cantidad

integer );

3- Vea la estructura de la tabla (describe).

4- Ingrese algunos registros:

insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (1,'impresora','Epson Stylus

C45',400.80,20);

insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (2,'impresora','Epson Stylus

C85',500,30);

insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (3,'monitor','Samsung 14',800,10);

insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (4,'teclado','ingles Biswal',100,50);

insert into articulos (codigo, nombre, descripcion, precio,cantidad) values (5,'teclado','español Biswal',90,50);

Page 7: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Seleccione todos los registros de la tabla. (select).

6- Muestre los datos de las impresoras.

7- Seleccione los artículos cuyo precio sea mayor o igual a 500:

select * from articulos where precio>=500;

8- Seleccione los artículos cuya cantidad sea menor a 30:

select nombre,descripcion, precio,cantidad from artículos where cantidad<20;

Page 8: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

9- Selecciones el nombre y descripción de los artículos que no cuesten $100:

select nombre, descripción from artículos where precio<>100;

Ejercicio #9

Problema:

Trabaje con la tabla "agenda" que registra la información referente a sus amigos.

1- Elimine la tabla (drop table) si existe (if exists).

2- Cree la tabla con los siguientes campos:

apellido (cadena de 30), nombre (cadena de 20), domicilio (cadena de 30) y telefono (cadena de 11).

3- Visualice la estructura de la tabla "agenda" (describe).

Page 9: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

4- Ingrese los siguientes registros (insert into):

Mores,Alberto,Colon 123,4234567,

Torres,Juan,Avellaneda 135,4458787,

Lopez, Mariana,Urquiza 333,4545454,

Lopez,Jose,Urquiza 333,4545454,

Peralta,Susana,Gral. Paz 1234,4123456.

5- Elimine el registro cuyo nombre sea 'Juan'(delete - where).

6- Elimine los registros cuyo número telefónico sea igual a '4545454'.

Page 10: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

Ejercicio #10

Problema:

Trabaje con la tabla "agenda" que almacena los datos de sus amigos.

1- Elimine la tabla si existe.

2- Cree la tabla:

create table agenda( apellido varchar(30), nombre varchar(20), domicilio varchar(30), telefono varchar(11) );

3- Visualice la estructura de la tabla "agenda" (describe).

4- Ingrese los siguientes registros (insert into):

Mores,Alberto,Colon 123,4234567,

Torres,Juan,Avellaneda 135,4458787,

Lopez,Mariana,Urquiza 333,4545454,

Lopez,Jose,Urquiza 333,4545454,

Peralta,Susana,Gral. Paz 1234,4123456.

Page 11: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Modifique el registro cuyo nombre sea "Juan" por "Juan Jose"(update- where):

update agenda set nombre='Juan Jose' where nombre='Juan';

6- Actualice los registros cuyo número telefónico sea igual a '4545454' por '4445566':

update agenda set telefono='4445566' where telefono='4545454';

Page 12: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

7- Actualice los registros que tengan en el campo "nombre" el valor "Juan" por "Juan Jose"

Ejercicio #28

Problema:

Trabaje con la tabla llamada "medicamentos" que almacena la información de los productos que vende 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), cantidad int unsigned, primary key(codigo) );

3- Visualice la estructura de la tabla "medicamentos".

Page 13: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

4- Ingrese los siguientes registros (insert into):

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- Ordene los registros por precio, de mayor a menor.

Page 14: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

6- Ordene los medicamentos por número del campo "cantidad".

7- Ordene los registros por "laboratorio" (descendente) y cantidad (ascendente).

Ejercicio #29

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

Page 15: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

3- Visualice la estructura de la tabla "medicamentos".

4- Ingrese los siguientes registros (insert into):

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

Page 16: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Recupere los códigos y nombres de los medicamentos cuyo laboratorio sea 'Roche' y cuyo precio sea

menor a 5:

6- Recupere los medicamentos cuyo laboratorio sea 'Roche' o cuyo precio sea menor a 5:

select * from medicamentos where laboratorio='Roche' or precio<5;

7- Muestre todos los registros que no sean de "Bayer" usando el operador "not".

8- Muestre todos los medicamentos cuyo laboratorio NO sea "Bayer" y cuya cantidad sea=100:

Page 17: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

9- Muestre todos los medicamentos cuyo laboratorio sea "Bayer" y cuya cantidad NO sea=100:

select * from medicamentos where laboratorio='Bayer' and not cantidad=100;

10- Elimine todos los registros cuyo laboratorio sea igual a "Bayer" y su precio sea mayor a 10:

delete from medicamentos where laboratorio='Bayer' and precio>10;

11- Cambie la cantidad por 200, a todos los medicamentos de "Roche" cuyo precio sea mayor a 5:

update medicamentos set cantidad=20 where laboratorio='Roche' and precio>5;

Page 18: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

12- Borre los medicamentos cuyo laboratorio sea "Bayer" o cuyo precio sea menor a 3.

Ejercicio #30

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".

Page 19: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

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;

Page 20: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

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;

Ejercicio #31

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) not null, laboratorio

varchar(20), precio decimal(6,2) unsigned, cantidad int unsigned, primary key(codigo));

Page 21: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

3- Visualice la estructura de la tabla "medicamentos".

4- Ingrese los siguientes registros:

insert into medicamentos (nombre, laboratorio,precio) values('Sertal gotas','Roche',5.2);

insert into medicamentos (nombre, laboratorio,precio) values('Buscapina','Roche',4.10);

insert into medicamentos (nombre, laboratorio,precio) values('Amoxidal 500','Bayer',15.60);

insert into medicamentos (nombre, laboratorio,precio) values('Paracetamol 500','Bago',1.90);

insert into medicamentos (nombre, laboratorio,precio)values('Bayaspirina','Bayer',2.10);

insert into medicamentos (nombre, laboratorio,precio) values('Amoxidal jarabe','Bayer',5.10);

insert into medicamentos (nombre, laboratorio,precio) values('Sertal compuesto','Bayer',5.10);

insert into medicamentos (nombre, laboratorio,precio) values('Paracetamol 1000','Bago',2.90);

insert into medicamentos (nombre, laboratorio,precio) values('Amoxinil','Roche',17.80);

Page 22: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Recupere los medicamentos cuyo nombre comiencen con "Amox":

select codigo,nombre,laboratorio,precio from medicamentos where nombre like 'Amox%';

6- Recupere los medicamentos "Paracetamol" cuyo precio sea menor a 2:

select codigo,nombre,laboratorio,precio from medicamentos where nombre like 'Paracetamol%' and

precio<2;

7- Busque todos los medicamentos cuyo precio tenga .10 centavos:

select codigo,nombre,laboratorio,precio from medicamentos where precio like '%.1%';

Page 23: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

8- Muestre todos los medicamentos que no contengan la cadena "compuesto":

select codigo,nombre,laboratorio,precio from medicamentos where nombre not like'%compuesto%';

9- Elimine todos los registros cuyo laboratorio contenga la letra "y":

delete from medicamentos where laboratorio like '%y%';

10- Cambie el precio por 5, al "Paracetamol" cuyo precio es mayor a 2:

update medicamentos set precio=5 where nombre like 'Paracetamol%' and precio>2;

Page 24: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

Ejercicio #32

Trabaje con la tabla "agenda" que registra la información referente a sus amigos.

1- Elimine la tabla si existe.

2- Cree la tabla con la siguiente estructura:

create table agenda( apellido varchar(30), nombre varchar(20) not null, domicilio varchar(30), telefono

varchar(11), mail varchar(30) );

3- Ingrese los siguientes registros:

insert into agenda values('Perez','Juan','Sarmiento 345','4334455','[email protected]');

insert into agenda values('Garcia','Ana','Urquiza 367','4226677','[email protected]');

insert into agenda values('Lopez','Juan','Avellaneda 900',null,'[email protected]');

insert into agenda values('Juarez','Mariana','Sucre 123','0525657687','[email protected]');

insert into agenda values('Molinari','Lucia','Peru 1254','4590987','[email protected]');

insert into agenda values('Ferreyra','Patricia','Colon 1534','4585858',null);

insert into agenda values('Perez','Susana','San Martin 333',null,null);

insert into agenda values('Perez','Luis','Urquiza 444','0354545256','[email protected]');

insert into agenda values('Lopez','Maria','Salta 314',null,'[email protected]');

Page 25: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

4- Busque todos los mails que contengan la cadena "gmail":

select *from agenda where mail regexp 'gmail';

5- Busque los nombres que no tienen "z" ni "g":

Page 26: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

6- Busque los apellidos que tienen por lo menos una de las letras de la "v" hasta la "z" (v,w,x,y,z):

7- Seleccione los apellidos que terminen en "ez":

select * from agenda where apellido regexp 'ez$';

Page 27: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

8- Seleccione los apellidos, nombres y domicilios de los amigos cuyos apellidos contengan 2 letras "i":

select apellido,nombre,domicilio from agenda where nombre regexp 'i.*i';

9- Seleccione los teléfonos que tengan 7 caracteres exactamente:

select * from agenda where telefono regexp '^.......$';

10- Seleccione el nombre y mail de todos los amigos cuyos mails tengan al menos 20 caracteres:

select nombre,mail from agenda where mail regexp '....................';

Ejercicio #33

Problema:

Un comercio que tiene un stand en una feria registra en una tabla llamada "visitantes" algunos datos de las

personas que visitan o compran en su stand para luego enviarle publicidad de sus productos.

Page 28: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

1- Elimine la tabla "visitantes", si existe.

2- Créela con la siguiente estructura:

create table visitantes( nombre varchar(30), edad tinyint unsigned, sexo char(1),domicilio varchar(30),

ciudad varchar(20), telefono varchar(11),montocompra decimal (6,2) unsigned );

3- Ingrese algunos registros:

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Susana Molina',

28,'f','Colon 123','Cordoba',null,45.50);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Marcela

Mercado',36,'f','Avellaneda 345','Cordoba','4545454',0);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Alberto

Garcia',35,'m','Gral. Paz 123','Alta Gracia','03547123456',25);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Teresa

Garcia',33,'f','Gral. Paz 123','Alta Gracia','03547123456',0);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Roberto

Perez',45,'m','Urquiza 335','Cordoba','4123456',33.20);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Marina

Torres',22,'f','Colon 222','Villa Dolores','03544112233',25);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Julieta

Gomez',24,'f','San Martin 333','Alta Gracia','03547121212',53.50);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Roxana

Lopez',20,'f','Triunvirato 345','Alta Gracia',null,0);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Liliana

Garcia',50,'f','Paso 999','Cordoba','4588778',48);

Page 29: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Juan

Torres',43,'m','Sarmiento 876','Cordoba','4988778',15.30);

4- Solicite la cantidad de visitantes al stand (10 registros):

select count(*) from visitantes;

5- Solicite la cantidad de visitantes que tienen teléfono (valor no nulo) (8 registros):

select count(telefono) from visitantes;

Recuerde que no es lo mismo contar todos los registros que contar los que tienen teléfono, porque

en el segundo caso no considera los registros con valor nulo en el campo "telefono".

Page 30: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

6- Muestre la cantidad de visitantes de sexo masculino que acudieron al stand (3):

select count(*) from visitantes where sexo='m';

7- Muestre la cantidad de mujeres mayores de 25 años que acudieron al stand (4):

select count(*) from visitanteswhere sexo='f' and edad>25;

8- Muestre la cantidad de visitantes que no son de "Cordoba" (5):

select count(*) from visitantes where ciudad<>'Cordoba';

9- Muestre la cantidad de visitantes que realizaron alguna compra (7):

select count(*) from visitantes where montocompra<>0;

Page 31: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

10- Muestre la cantidad de visitantes que no realizaron compras (3):

select count(*) from visitantes where montocompra=0;

Ejercicio #34

Problema:

Un comercio que tiene un stand en una feria registra en una tabla llamada "visitantes" algunos datos de las

personas que visitan o compran en su stand para luego enviarle publicidad de sus productos.

1- Elimine la tabla "visitantes", si existe.

2- Créela con la siguiente estructura:

create table visitantes(nombre varchar(30),edad tinyint unsigned,sexo char(1),domicilio varchar(30),ciudad

varchar(20),telefono varchar(11), montocompra decimal (6,2) unsigned );

Note que no tiene clave primaria, no la necesita.

3- Ingrese algunos registros:

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Susana Molina',

28,'f','Colon 123','Cordoba',null,45.50);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Marcela

Mercado',36,'f','Avellaneda 345','Cordoba','4545454',0);

Page 32: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Alberto

Garcia',35,'m','Gral. Paz 123','Alta Gracia','03547123456',25);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Teresa

Garcia',33,'f','Gral. Paz 123','Alta Gracia','03547123456',0);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Roberto

Perez',45,'m','Urquiza 335','Cordoba','4123456',33.20);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Marina

Torres',22,'f','Colon 222','Villa Dolores','03544112233',25);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Julieta

Gomez',24,'f','San Martin 333','Alta Gracia','03547121212',53.50);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Roxana

Lopez',20,'f','Triunvirato 345','Alta Gracia',null,0);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Liliana

Garcia',50,'f','Paso 999','Cordoba','4588778',48);

insert into visitantes (nombre,edad, sexo,domicilio,ciudad,telefono,montocompra) values ('Juan

Torres',43,'m','Sarmiento 876','Cordoba','4988778',15.30);

4- Solicite la cantidad de visitantes al stand (10 registros):

Page 33: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Muestre la suma de la compra de todos los visitantes de "Alta Gracia" (78.5):

select sum(montocompra) from visitantes where ciudad='Alta Gracia';

6- Muestre el valor máximo de las compras efectuadas (53.50):

select max(montocompra) from visitantes;

7- Muestre la edad menor de los visitantes (20):

select min(edad) from visitantes;

8- Muestre el promedio de edades de los visitantes (33.66):

select avg(edad) from visitantes;

Page 34: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

9- Muestre el promedio del monto de compra (24.55):

select avg(montocompra) from visitantes;

Ejercicio #35

Problema:

Una empresa tiene registrados sus clientes en una tabla llamada "clientes".

1- Elimine la tabla "clientes", si existe.

2- Créela con la siguiente estructura:

create table clientes (codigo int unsigned auto_increment,nombre varchar(30) not null, domicilio varchar(30),

ciudad varchar(20), provincia varchar (20), telefono varchar(11),primary key (código));

3- Ingrese algunos registros:

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Lopez Marcos', 'Colon 111',

'Córdoba','Cordoba','null');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Perez Ana', 'San Martin 222', 'Cruz

del Eje','Cordoba','4578585');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Garcia Juan', 'Rivadavia 333', 'Villa

Maria','Cordoba','4578445');

Page 35: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Perez Luis', 'Sarmiento 444',

'Rosario','Santa Fe',null);

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Pereyra Lucas', 'San Martin 555',

'Cruz del Eje','Cordoba','4253685');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Gomez Ines', 'San Martin 666', 'Santa

Fe','Santa Fe','0345252525');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Torres Fabiola', 'Alem 777', 'Villa del

Rosario','Cordoba','4554455');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Lopez Carlos', 'Irigoyen 888', 'Cruz

del Eje','Cordoba',null);

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Ramos Betina', 'San Martin 999',

'Cordoba','Cordoba','4223366');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Lopez Lucas', 'San Martin 1010',

'Posadas','Misiones','0457858745');

4- Obtenga el total de los registros (10):

Page 36: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Obtenga el total de los registros que no tienen valor nulo en los teléfonos (8):

select count(telefono) from clientes;

6- Obtenga la cantidad de clientes agrupados por ciudad y provincia, ordenados por provincia:

select ciudad,provincia, count(*) from clientes group by ciudad, provincia order by provincia;

Ejercicio #36

Problema:

Una empresa tiene registrados sus clientes en una tabla llamada "clientes".

1- Elimine la tabla "clientes", si existe.

2- Créela con la siguiente estructura:

create table clientes (codigo int unsigned auto_increment, nombre varchar(30) not null, domicilio varchar(30),

ciudad varchar(20), provincia varchar (20),telefono varchar(11), primary key(codigo));

Page 37: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

3- Ingrese algunos registros:

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Lopez Marcos', 'Colon 111',

'Córdoba','Cordoba','null');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Perez Ana', 'San Martin 222', 'Cruz

del Eje','Cordoba','4578585');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono)values ('Garcia Juan', 'Rivadavia 333', 'Villa

Maria','Cordoba','4578445');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Perez Luis', 'Sarmiento 444',

'Rosario','Santa Fe',null);

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Pereyra Lucas', 'San Martin 555',

'Cruz del Eje','Cordoba','4253685');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Gomez Ines', 'San Martin 666', 'Santa

Fe','Santa Fe','0345252525');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Torres Fabiola', 'Alem 777', 'Villa del

Rosario','Cordoba','4554455');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Lopez Carlos', 'Irigoyen 888', 'Cruz

del Eje','Cordoba',null);

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Ramos Betina', 'San Martin 999',

'Cordoba','Cordoba','4223366');

insert into clientes (nombre,domicilio,ciudad,provincia,telefono) values ('Lopez Lucas', 'San Martin 1010',

'Posadas','Misiones','0457858745');

Page 38: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

4- Obtenga el total de los registros agrupados por provincia:

select provincia, count(*) from clientes group by provincia;

5- Obtenga el total de los registros agrupados por ciudad y provincia:

6- Obtenga el total de los registros agrupados por ciudad y provincia sin considerar los que tienen

menos de 2 clientes: select ciudad, provincia, count(*) from clientes group by ciudad, provincia having

count(*)>1;

Page 39: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

7- Obtenga el total de los registros sin teléfono nulo, agrupados por ciudad y provincia sin considerar los que

tienen menos de 2 clientes:

select ciudad, provincia, count(*) from clients where telefono is not null group by ciudad,provincia having

count(*)>1;

Ejercicio #62

Problema:

Una empresa tiene registrados sus clientes en una tabla llamada "clientes", también tiene una tabla

"provincias" donde registra los nombres de las provincias.

1- Elimine la tabla "clientes" y "provincias", si existen:

drop table if exists clientes, provincias;

2- Créelas con las siguientes estructuras:

create table clientes ( codigo int unsigned auto_increment, nombre varchar(30) not null, domicilio

varchar(30), ciudad varchar(20),codigoprovincia tinyint unsigned, telefono varchar(11), primary key(codigo );

create table provincias( codigo tinyint unsigned auto_increment, nombre varchar(20), primary key (codigo) );

3- Ingrese algunos registros para ambas tablas:

insert into provincias (nombre) values('Cordoba');

Page 40: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

insert into provincias (nombre) values('Santa Fe');

insert into provincias (nombre) values('Corrientes');

insert into provincias (nombre) values('Misiones');

insert into provincias (nombre) values('Salta');

insert into provincias (nombre) values('Buenos Aires');

insert into provincias (nombre) values('Neuquen');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Lopez Marcos', 'Colon 111', 'Córdoba',1,'null');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Perez Ana', 'San Martin 222', 'Cruz del Eje',1,'4578585');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Garcia Juan', 'Rivadavia 333', 'Villa Maria',1,'4578445');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Perez Luis', 'Sarmiento 444', 'Rosario',2,null);

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Pereyra Lucas', 'San Martin 555', 'Cruz del Eje',1,'4253685');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

Page 41: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

values ('Gomez Ines', 'San Martin 666', 'Santa Fe',2,'0345252525');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Torres Fabiola', 'Alem 777', 'Villa del Rosario',1,'4554455');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Lopez Carlos', 'Irigoyen 888', 'Cruz del Eje',1,null);

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Ramos Betina', 'San Martin 999', 'Cordoba',1,'4223366');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Lopez Lucas', 'San Martin 1010', 'Posadas',4,'0457858745');

4- Obtenga los datos de ambas tablas, use alias:

select c.nombre,c.domicilio,c.ciudad,p.nombre,c.telefono from clientes as c join provincias as p on

c.codigoProvincia=p.codigo;

Page 42: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Obtenga la misma información anterior pero ordenada por nombre del cliente:

select c.nombre,c.domicilio,c.ciudad,p.nombre,c.telefono from clientes as c join provincias as p on

c.codigoProvincia=p.codigo order by c.nombre;

Page 43: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

6- Omita la referencia a las tablas en la condición "on" para verificar que la sentencia no se

ejecuta porque el nombre del campo "codigo" es ambiguo (ambas tablas lo tienen):

select c.nombre,c.domicilio,c.ciudad,p.nombre,c.telefonofrom clientes as c join provincias as p on

codigoProvincia=codigo

Ejercicio #63

Problema:

Una empresa tiene registrados sus clientes en una tabla llamada "clientes", también tiene una tabla "provincias" donde registra los nombres de las provincias.

1- Elimine la tabla "clientes" y "provincias", si existen:

drop table if exists clientes, provincias;

2- Créelas con las siguientes estructuras:

create table clientes ( codigo int unsigned auto_increment, nombre varchar(30) not null,domicilio varchar(30), ciudad varchar(20),codigoprovincia tinyint unsigned,telefono varchar(11),primary key(codigo));

create table provincias(codigo tinyint unsigned auto_increment,nombre varchar(20),primary key (codigo));

En este ejemplo, el campo "codigoprovincia" de "clientes" es una clave foránea, se emplea para enlazar la tabla "clientes" con "provincias".

Page 44: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

3- Ingrese algunos registros para ambas tablas:

insert into provincias(codigo,nombre) values(1,'Cordoba');

insert into provincias(codigo,nombre) values(2,'Santa Fe');

insert into provincias(codigo,nombre) values(30,'Misiones');

insert into provincias(codigo,nombre) values(13,'Salta');

insert into provincias(codigo,nombre) values(15,'Buenos Aires');

insert into provincias(codigo,nombre) values(20,'Neuquen');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Lopez Marcos', 'Colon 111', 'Córdoba',1,'null');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Perez Ana', 'San Martin 222', 'Cruz del Eje',1,'4578585');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Garcia Juan', 'Rivadavia 333', 'Villa Maria',1,'4578445');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Perez Luis', 'Sarmiento 444', 'Rosario',2,null);

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

Page 45: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

values ('Ramos Betina', 'San Martin 999', 'Bahia Blanca',15,'4223366');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Lopez Lucas', 'San Martin 1010', 'Posadas',30,'0457858745');

4- Enlace las tablas:

Page 46: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Modifique el campo "codigoprovincia" a "char(1)":

alter table clientes modify codigoprovincia char(1);

6- Vea cómo afectó el cambio a la tabla "clientes":

select * from clientes; El cliente de "Bahia Blanca" con código de provincia "15" ("Buenos Aires") ahora tiene "1" ("Cordoba") y el cliente con código de provincia "30" ("Misiones") ahora almacena "3" (valor inexistente en "provincias").

7- Realice un "left join" buscando coincidencia de códigos en la tabla "provincias":

select c.nombre,c.ciudad,p.nombre from clientes as c left join provincias as p on c.codigoprovincia=p.codigo;

Page 47: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

8- Intente modificar la clave primaria en "provincias" para que se corresponda

con "codigoprovincia" de "clientes" alter table provincias modify codigo char(1);

Ejercicio #64

Problema:

Una empresa tiene registrados sus clientes en una tabla llamada "clientes", también tiene una tabla

"provincias" donde registra los nombres de las provincias.

1- Elimine las tablas "clientes" y "provincias", si existen:

drop table if exists clientes, provincias;

2- Créelas con las siguientes estructuras:

create table clientes ( codigo int unsigned auto_increment,nombre varchar(30) not null,domicilio

varchar(30),ciudad varchar(20),codigoProvincia tinyint unsigned, telefono varchar(11),primary key(codigo));

create table provincias(codigo tinyint unsigned auto_increment, nombre varchar(20), primary key (codigo) );

3- Ingrese algunos registros para ambas tablas:

insert into provincias (nombre) values('Cordoba');

insert into provincias (nombre) values('Santa Fe');

insert into provincias (nombre) values('Corrientes');

Page 48: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

insert into provincias (nombre) values('Misiones');

insert into provincias (nombre) values('Salta');

insert into provincias (nombre) values('Buenos Aires');

insert into provincias (nombre) values('Neuquen');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Lopez Marcos', 'Colon 111', 'Córdoba',1,'null');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Perez Ana', 'San Martin 222', 'Cruz del Eje',1,'4578585');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Garcia Juan', 'Rivadavia 333', 'Villa Maria',1,'4578445');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Perez Luis', 'Sarmiento 444', 'Rosario',2,null);

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Pereyra Lucas', 'San Martin 555', 'Cruz del Eje',1,'4253685');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Gomez Ines', 'San Martin 666', 'Santa Fe',2,'0345252525');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

Page 49: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

values ('Torres Fabiola', 'Alem 777', 'Villa del Rosario',1,'4554455');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Lopez Carlos', 'Irigoyen 888', 'Cruz del Eje',1,null);

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Ramos Betina', 'San Martin 999', 'Cordoba',1,'4223366');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono)

values ('Lopez Lucas', 'San Martin 1010', 'Posadas',4,'0457858745');

4- Queremos saber de qué provincias no tenemos clientes:

select p.codigo,p.nombre from provincias as p left join clientes as c on c.codigoProvincia=p.codigo where

c.codigoprovincia is null;

Page 50: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Queremos saber de qué provincias si tenemos clientes, sin repetir el nombre de la provincia:

select distinct p.codigo,p.nombre from provincias as p left join clientes as c on c.codigoProvincia=p.codigo

where c.codigoprovincia is not null;

6- Omita la referencia a las tablas en la condición "on”

select distinct codigo,p.nombre from provincias as p left join clientes as c on c.codigoProvincia=p.codigo

where c.codigoprovincia is not null;

Ejercicio #65

Problema:

Un club dicta clases de distintos deportes. En una tabla llamada "socios" guarda los datos de sus socios y en

una tabla denominada "inscriptos" almacena la información necesaria para las inscripciones de los socios a

los distintos deportes.

1- Elimine las tablas si existen.

2- Cree las tablas:

create table socios( documento char(8) not null,nombre varchar(30), domicilio varchar(30), primary

key(documento));

create table inscriptos( documento char(8) not null, deporte varchar(15) not null, año year,matricula char(1),

primary key(documento,deporte,año) );

Page 51: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

3- Ingrese algunos registros para ambas tablas:

insert into socios values('22333444','Juan Perez','Colon 234');

insert into socios values('23333444','Maria Lopez','Sarmiento 465');

insert into socios values('24333444','Antonio Juarez','Caseros 980');

insert into socios values('25333444','Marcelo Pereyra','Sucre 349');

insert into inscriptos values ('22333444','natacion','2005','s');

insert into inscriptos values ('22333444','natacion','2006','n');

insert into inscriptos values ('23333444','natacion','2005','s');

insert into inscriptos values ('23333444','tenis','2006','s');

insert into inscriptos values ('23333444','natacion','2006','s');

insert into inscriptos values ('24333444','tenis','2006','n');

insert into inscriptos values ('24333444','basquet','2006','n');

Page 52: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

4- Realice un "left join" de la tabla "socios" a "inscriptos" buscando coincidencia de "documento":

select s.documento,nombre,i.deporte,i.año,i.matricula from socios as s left join inscriptos as i on

s.documento=i.documento;

Note que el socio que no está inscripto en ningún deporte tiene la fila seteada a "null".

Page 53: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Realice un "right join" para obtener la misma salida anterior:

select s.documento,nombre,i.deporte,i.año,i.matricula from inscriptos as i right join socios as s on

s.documento=i.documento;

6- Ingrese una inscripción de alguien que no sea socio (documento que no se encuentre en la

tabla "socios"):

insert into inscriptos values ('26333444','basquet','2006','n');

7- Realice un "right join" desde la tabla "socios" a "inscriptos" buscando coincidencia de documento:

select nombre,i.documento,deporte,i.año,i.matricula from socios as s right join inscriptos as i on

s.documento=i.documento;

Note que la persona con documento "26333444" no se encuentra en "socios", la columna "nombre"

(correspondiente a la tabla "socios") contiene "null".

Page 54: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

Ejercicio #66

Problema:

Una empresa de seguridad almacena los datos de sus guardias de seguridad en una tabla llamada

"guardias". también almacena los distintos sitios que solicitaron sus servicios en una tabla llamada "tareas".

1- Elimine las tablas "guardias" y "tareas" si existen.

2- Cree las siguientes tablas:

create table guardias(documento char(8),nombre varchar(30), sexo char(1), /* 'f' o 'm' */domicilio

varchar(30),primary key (documento));

create table tareas( codigo tinyint unsigned auto_increment,domicilio varchar(30),descripcion

varchar(30),horario char(2), /* 'AM' o 'PM'*/primary key (codigo) );

3- Ingrese los siguientes registros:

insert into guardias values('22333444','Juan Perez','m','Colon 123');

insert into guardias values('23333444','Lorena Viale','f','Sarmiento 988');

insert into guardias values('24333444','Alberto Torres','m','San Martin 567');

insert into guardias values('25333444','Luis Ferreyra','m','Chacabuco 235');

insert into guardias values('26333444','Irma Gonzalez','f','Mariano Moreno 111');

Page 55: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

insert into tareas (domicilio,descripcion,horario)

values('Colon 1111','vigilancia exterior','AM');

insert into tareas (domicilio,descripcion,horario)

values('Urquiza 234','vigilancia exterior','PM');

insert into tareas (domicilio,descripcion,horario)

values('Peru 345','vigilancia interior','AM');

insert into tareas (domicilio,descripcion,horario)

values('Avellaneda 890','vigilancia interior','PM');

Page 56: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Obtenga la misma salida realizando un simple "join" sin parte "on":

select nombre,t.domicilio,descripcion from guardias join tareas as t;

Ejercicio #67

Problema:

Un club dicta clases de distintos deportes. En una tabla llamada "socios" guarda los datos de sus socios y en

una tabla denominada "inscriptos" almacena la información necesaria para las inscripciones de los socios a

los distintos deportes.

Page 57: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

1- Elimine las tablas si existen.

2- Cree las tablas:

create table socios( documento char(8) not null,nombre varchar(30), domicilio varchar(30), primary

key(documento) );

create table inscriptos( documento char(8) not null, deporte varchar(15) not null,año year, matricula char(1),

/*si esta paga ='s' sino 'n'*/ primary key(documento,deporte,año) );

3- Ingrese algunos registros para ambas tablas:

insert into socios values('22333444','Juan Perez','Colon 234');

insert into socios values('23333444','Maria Lopez','Sarmiento 465');

insert into socios values('24333444','Antonio Juarez','Caseros 980');

insert into socios values('25333444','Marcelo Pereyra','Sucre 349');

insert into inscriptos values ('22333444','natacion','2005','s');

insert into inscriptos values ('22333444','natacion','2006','n');

insert into inscriptos values ('23333444','natacion','2005','s');

insert into inscriptos values ('23333444','tenis','2006','s');

insert into inscriptos values ('23333444','natacion','2006','s');

insert into inscriptos values ('24333444','tenis','2006','n');

Page 58: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

insert into inscriptos values ('24333444','basquet','2006','n');

4- Realice un "natural join" de ambas tablas:

select nombre,i.*from socios as s natural join inscriptos as i;

5- Obtenga el mismo resultado con un "join":

select nombre,i.* from socios as s join inscriptos as I on s.documento=i.documento;

6- Realice un "left join" de la tabla "socios" a "inscriptos" buscando coincidencia de "documento":

select nombre,i.* from socios as s left join inscriptos as I on s.documento=i.documento;

Note que el socio que no está inscripto en ningún deporte tiene la fila seteada a "null".

Page 59: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

7- Realice un "natural left join" para obtener la misma salida anterior:

select nombre,i.* from socios as s natural left join inscriptos as i;

8- Realice un "natural right join" para obtener la misma salida anterior:

select nombre,i.* from inscriptos as i natural right join socios as s;

Page 60: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

Ejercicio #69

Problema:

Una empresa tiene registrados sus clientes en una tabla llamada "clientes", también tiene una tabla

"provincias" donde registra los nombres de las provincias de las cuales son oriundos los clientes.

1- Elimine la tabla "clientes" y "provincias", si existen:

drop table if exists clientes, provincias;

2- Créelas con las siguientes estructuras:

create table clientes (codigo int unsigned auto_increment, nombre varchar(30) not null, domicilio

varchar(30), ciudad varchar(20), codigoprovincia tinyint unsigned, telefono varchar(11), primary key(codigo)

);

create table provincias(codigo tinyint unsigned auto_increment, nombre varchar(20), primary key (codigo) );

3- Ingrese algunos registros para ambas tablas:

insert into provincias (nombre) values('Cordoba');

insert into provincias (nombre) values('Santa Fe');

insert into provincias (nombre) values('Corrientes');

insert into provincias (nombre) values('Misiones');

insert into provincias (nombre) values('Salta');

Page 61: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

insert into provincias (nombre) values('Buenos Aires');

insert into provincias (nombre) values('Neuquen');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Lopez Marcos', 'Colon 111',

'Córdoba',1,'null');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Perez Ana', 'San Martin 222',

'Cruz del Eje',1,'4578585');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Garcia Juan', 'Rivadavia 333',

'Villa Maria',1,'4578445');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Perez Luis', 'Sarmiento 444',

'Rosario',2,null);

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Pereyra Lucas', 'San Martin

555', 'Cruz del Eje',1,'4253685');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Gomez Ines', 'San Martin

666', 'Santa Fe',2,'0345252525');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Torres Fabiola', 'Alem 777',

'Villa del Rosario',1,'4554455');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Lopez Carlos', 'Irigoyen 888',

'Cruz del Eje',1,null);

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Ramos Betina', 'San Martin

999', 'Cordoba',1,'4223366');

insert into clientes (nombre,domicilio,ciudad,codigoProvincia,telefono) values ('Lopez Lucas', 'San Martin

1010', 'Posadas',4,'0457858745');

Page 62: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

4- Agrupe por nombre de provincia y cuente la cantidad de clientes por provincia usando un "join":

select p.nombre, count(c.codigoprovincia) as 'cant. clientes' from provincias as p join clientes as c on

p.codigo=c.codigoprovincia group by p.nombre;

sólo aparecen las provincias en las cuales tenemos clientes.

5- Agrupe por nombre de provincia y cuente la cantidad de clientes por provincia usando un "left

join": select p.nombre, count(c.codigoprovincia) as 'cant. clientes' from provincias as p left join clientes as c

on p.codigo=c.codigoprovincia group by p.nombre;

Muestra todas las provincias.

Page 63: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

6- Agrupe por nombre de provincia y muestre la cantidad de clientes por provincia usando un "join" de las

provincias en las cuales tenemos 2 o más clientes:

select p.nombre, count(c.codigoprovincia) as 'cant. clientes' from provincias as p join clientes as c on

p.codigo=c.codigoprovincia group by p.nombre having count(c.codigoprovincia)>=2;

Ejercicio #70

Problema:

Un video club que alquila películas en video guarda información de sus películas en alquiler, sus socios y los

alquileres en 3 tablas llamadas "peliculas", "socios" y "alquileres" respectivamente.

1- Elimine las tablas si existen.

2- Créelas con las siguientes estructuras:

create table peliculas ( codigo smallint unsigned auto_increment, titulo varchar(30) not null, actores

varchar(40), duracion tinyint unsigned, primary key (codigo) );

Page 64: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

create table socios(codigo smallint unsigned auto_increment, documento char(8), nombre varchar(30),

domicilio varchar(30), primary key (codigo) );

create table alquileres( codigopelicula smallint unsigned not null, codigosocio smallint unsigned not null,

fechaprestamo date not null, fechadevolucion date, primary key (codigopelicula,fechaprestamo));

3- Ingrese los siguientes registros para las 3 tablas.

insert into peliculas (titulo,actores,duracion)values('Elsa y Fred','China Zorrilla',90);

insert into peliculas (titulo,actores,duracion) values('Mision imposible','Tom Cruise',120);

insert into peliculas (titulo,actores,duracion) values('Mision imposible 2','Tom Cruise',180);

insert into peliculas (titulo,actores,duracion)values('Harry Potter y la piedra filosofal','Daniel H.',120);

insert into peliculas (titulo,actores,duracion) values('Harry Potter y la camara secreta','Daniel H.',150);

insert into socios (documento,nombre) values('22333444','Juan Lopez');

insert into socios (documento,nombre) values('23333444','Diana Perez');

insert into socios (documento,nombre) values('24333444','Luis Fuentes');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(1,1,'2006-07-02');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(2,1,'2006-07-02');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(3,1,'2006-07-12');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(1,2,'2006-08-02');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(3,2,'2006-08-12');

Page 65: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(4,2,'2006-08-02');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(1,3,'2006-09-02');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(2,3,'2006-08-02');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(3,3,'2006-08-15');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(4,3,'2006-08-22');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(4,1,'2006-08-25');

insert into alquileres (codigopelicula,codigosocio,fechaprestamo) values(1,3,'2006-08-25');

4- Muestre toda la información de los "alquileres" (nombre de la película, nombre del socio, fecha

de préstamo y de devolución):

select titulo,nombre,fechaprestamo,fechadevolucion from alquileres as a join peliculas as p on

a.codigopelicula=p.codigo join socios as s on s.codigo=a.codigosocio;

Page 66: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

5- Muestre la cantidad de veces que se alquiló cada película:

select p.titulo,count(*) from peliculas as p join alquileres as a on p.codigo=a.codigopelicula group by p.titulo;

6- Muestre la cantidad de películas que alquiló cada socio:

select s.nombre,count(a.codigopelicula) from socios as s join alquileres as a on s.codigo=a.codigosocio

group by s.nombre;

Page 67: Estrella Mario Ejercicios BDD

ESTRELLA COCOM MARIO FILIBERTO

INGENIERIA EN SISTEMAS COMPUTACIONALES

7- Muestre la cantidad de películas DISTINTAS que alquiló cada socio:

select s.nombre,count(distinct a.codigopelicula) from socios as s join alquileres as a on

s.codigo=a.codigosocio group by s.nombre;

8- Muestre la cantidad de películas alquiladas por mes por cada socio ordenado por mes:

select s.nombre, monthname(a.fechaprestamo) as mes, count(a.codigopelicula) from socios as s join

alquileres as a on s.codigo=a.codigosocio group by s.nombre, mes order by mes;