Está en la página 1de 6

DESARROLLO SUPLEMENTO 4

EJERCICIO 1

1. SE TIENE UNA BASE DE DATOS DE PELCULAS REFLEJADA POR LAS
SIGUIENTES TABLAS:

Pelcula (ttulo_pelcula, ao_pelcula, duracin, nombre_estudio)
Estrella (nombre_estrella, direccin_estrella, sexo, fecha_nacimiento)
Estudio (nombre_estudio, direccin_estudio)
Protagoniza (ttulo_pelcula, ao_pelcula, nombre_estrella)

CREATE TABLE ESTUDIO(
nombre_estudio varchar(50),
direccion_estudio varchar(50),
PRIMARY KEY (nombre_estudio)
);

CREATE TABLE PELICULA (
titulo_pelicula varchar(50),
ao_pelicula DATETIME,
duracion TIME,
nombre_estudio varchar(50) REFERENCES ESTUDIO (nombre_estudio),
PRIMARY KEY (titulo_pelicula,ao_pelicula)
);

CREATE TABLE ESTRELLA(
nombre_estrella varchar(50),
direccion_estrella varchar(50),
sexo varchar (10),
Fecha_nacimiento DATETIME,
PRIMARY KEY (nombre_estrella)
);

CREATE TABLE PROTAGONISTA(
titulo_pelicula varchar(50),
ao_pelicula DATETIME ,
nombre_estrella varchar(50),
PRIMARY KEY (titulo_pelicula,ao_pelicula, nombre_estrella)
);


Se pide realizar las siguientes consultas en SQL (Se supone que todos los datos necesarios
se encuentran almacenados en las tablas):
1.1. Encontrar la direccin de los estudios MGM
SELECT direccion_estudio
FROM ESTUDIO
WHERE nombre_estudio='MGM'


1.2. Encontrar todas las estrellas que participaron en pelculas realizadas en el 2010 o
en alguna pelcula que contenga la palabra Amor en el ttulo.

SELECT * FROM PROTAGONISTA
WHERE YEAR(ao_pelicula)=2010 OR titulo_pelicula LIKE 'AMOR%'



1.3. Quin fue la estrella masculina de El nombre de la rosa?

SELECT titulo_pelicula, nombre_estrella, sexo FROM PROTAGONISTA,
ESTRELLA
WHERE titulo_pelicula='El Nombre de la Rosa' AND sexo='M'

1.4. Qu pelculas tienen mayor duracin que Lo que el viento se llev?

SELECT * FROM PELICULA
WHERE duracion> (SELECT duracion FROM PELICULA
WHERE titulo_pelicula='lo que el viento se llev')



1.5. Encontrar el ttulo y la duracin de todas las pelculas producidas por los estudios
Disney en el ao 2020, ordenando la salida por su duracin.

SELECT titulo_pelicula,duracion FROM PELICULA
WHERE nombre_estudio='DISNEY' AND YEAR(ao_pelicula)=2020
ORDER BY duracion ASC



1.6. Encontrar todas las estrellas que son hombres o viven en Malibu (tienen Malibu
como parte de su direccin).

s


1.7. Qu estrellas distintas aparecen en las pelculas producidas por la MGM en el
2008? (Si una aparece varias veces, mostrarla slo una vez).

SELECT DISTINCT nombre_estrella FROM ESTRELLA,PELICULA
WHERE nombre_estudio='MGM' AND YEAR(ao_pelicula)=2008

1.8. Encontrar la suma de la duracin de todas las pelculas de cada estudio.

SELECT nombre_estudio, SUM(duracion)AS SUMADURACION FROM PELICULA
GROUP BY nombre_estudio








2. DADA UNA BASE DE DATOS DE ORDENADORES E IMPRESORAS CON LAS
SIGUIENTES TABLAS:
Producto (fabricante, modelo, tipo)
PC (modelo, velocidad, ram, hd, cd, precio)
Impresora (modelo, color, tipo, precio)

CREATE TABLE PRODUCTO(
fabricante varchar(50),
modelo varchar(50),
tipo varchar (50)
PRIMARY KEY (fabricante,modelo)
);

CREATE TABLE PC (
modelo varchar(50),
velocidad int,
ram int,
hd int,
cd int,
precio float,
PRIMARY KEY (modelo)
);

CREATE TABLE IMPRESORA (
modelo varchar(50),
color varchar (20),
tipo varchar (50),
precio float,
PRIMARY KEY (modelo)
);

Realizar en SQL las siguientes consultas:

2.1. Encontrar el modelo, velocidad y tamao de disco duro (hd) de todas las PCs
cuyo precio sea inferior a $1600.

SELECT modelo,velocidad, hd FROM PC
WHERE precio<1600

2.2. Repetir la consulta de (a), pero cambiando el nombre a las columnas velocidad
como Megaherzios y hd como Gigabytes.

SELECT modelo,velocidad AS Megaherzios, hd AS Gigabytes
FROM PC
WHERE precio<1600








2.3. Encontrar todas las filas de la tabla de Impresoras que son en color. El valor de la
columna color es booleano con los valores V y F.

SELECT * FROM IMPRESORA
WHERE color='V'


2.4. Encontrar la velocidad media de las PCs.

SELECT AVG (velocidad)AS VMEDIA FROM PC


2.5. Decir los fabricantes y la velocidad de las PCs con disco duro de tamao mayor o
igual a 1 Gigabyte.

SELECT fabricante, velocidad FROM PRODUCTO,PC
WHERE hd>=1
2.6. Encontrar los fabricantes de las PCs con velocidad superior a 160 MHz.

SELECT fabricante FROM PRODUCTO,PC
WHERE velocidad<160

3. DADAS LAS SIGUIENTES TABLAS, DAR UNA EXPRESIN SQL PARA CADA
UNA DE LAS SIGUIENTES CONSULTAS:

Vive (nombre, calle, ciudad)
Trabaja (nombre, compaa, salario)
Situada (compaa, ciudad)
Dirige (nombre, nombre_director)

CREATE TABLE VIVE(
nombre varchar(50),
calle varchar(50),
ciudadV varchar(50),
PRIMARY KEY (nombre)
);
CREATE TABLE SITUADA(
compaia varchar(50),
ciudadS varchar (50),
PRIMARY KEY (compaia)
);
CREATE TABLE TRABAJA(
nombre varchar(50)REFERENCES VIVE (nombre),
compaia varchar(50)REFERENCES SITUADA (compaia),
salario float,
PRIMARY KEY (nombre,compaia)
);
CREATE TABLE DIRIGE(
nombre varchar(50)REFERENCES VIVE (nombre),
nombre_director varchar (50),
PRIMARY KEY (nombre,nombre_director)
);

3.1. Encontrar el nombre y la ciudad de todos los empleados que trabajan en El Corte
Ingls.
SELECT nombre,ciudad FROM VIVE, SITUADA
WHERE compaia='El Corte Ingles'

3.2. Encontrar todos los empleados que viven en la misma ciudad que la compaa en
la que trabajan.
SELECT nombre, calle, ciudadS FROM VIVE , SITUADA
WHERE ciudadV=ciudadS

3.3. Encontrar el salario y la compaa de todos los directores.

SELECT nombre_director, salario,compaia FROM DIRIGE,TRABAJA
WHERE nombre=nombre_director

3.4. Encontrar a todos los empleados que viven en la misma ciudad y en la
misma calle que su director.

SELECT nombre ,calle, ciudadV FROM VIVE ,DIRIGE
WHERE ciudadV=(SELECT ciudadV FROM VIVE, DIRIGE WHERE
nombre=nombre_director)AND
calle=(SELECT calle FROM VIVE, DIRIGE WHERE nombre=nombre_director)