Sei sulla pagina 1di 29

FUNDAMENTOS DE BASES DE DATOS

UNIDAD 5
ALGEBRA RELACIONAL

ANGELICA AVALOS CANO

Miguel Jos Gonzlez Beaurregard

5to.

A
FECHA: 01/DICIEMBRE/14.

Ejercicio 1
CREATE DATABASE INFORMATICA;
CREATE TABLE FABRICANTES(
CODIGO INT AUTO_INCREMENT PRIMARY KEY,
NOMBRE CHAR(50));
CREATE TABLE ARTICULOS(
CODIGO INT AUTO_INCREMENT PRIMARY KEY,
NOMBRE CHAR(50),
PRECIO INT,
COD_FABRICANTE INT,
FOREIGN KEY (COD_FABRICANTE) REFERENCES FABRICANTES(CODIGO));

INSERT INTO FABRICANTES(NOMBRE) VALUES('ACTECK');


INSERT INTO FABRICANTES(NOMBRE) VALUES('SONY');
INSERT INTO FABRICANTES(NOMBRE) VALUES('LENOVO');
INSERT INTO FABRICANTES(NOMBRE) VALUES('HP');
INSERT INTO FABRICANTES(NOMBRE) VALUES('TOSHIBA');
INSERT INTO ARTICULOS(NOMBRE,PRECIO,COD_FABRICANTE)
VALUES('BOCINAS',300,4);
INSERT INTO ARTICULOS(NOMBRE,PRECIO,COD_FABRICANTE)
VALUES('DISCO DURO',900,5);
INSERT INTO ARTICULOS(NOMBRE,PRECIO,COD_FABRICANTE)
VALUES('CAMARA WEB',350,1);
INSERT INTO ARTICULOS(NOMBRE,PRECIO,COD_FABRICANTE)
VALUES('TECLADO',150,3);
INSERT INTO ARTICULOS(NOMBRE,PRECIO,COD_FABRICANTE)
VALUES('TARJETA MADRE',450,2);
Obtener los nombres de los productos de la tienda.

Obtener los nombres y los precios de los productos de la tienda.

Obtener el nombre de los productos cuyo precio sea menor o igual a 200 pesos.

Obtener todos los datos de los artculos cuyo precio est entre los 60 pesos y los
120 pesos (ambas cantidades incluidas).

Obtener el nombre y el precio en pesetas (es decir, el precio en pesos multiplicado


por 166386).

Seleccionar el precio medio de todos los productos.

Obtener el precio medio de los artculos cuyo cdigo de fabricante sea 2.

Obtener el nmero de artculos cuyo precio sea mayor o igual a 180 pesos.

Obtener el nombre y precio de los artculos cuyo precio sea mayor o igual a 180
pesos y ordenarlos descendentemente por precio, y luego ascendentemente por
nombre.

Obtener un listado completo de artculo, incluyendo por cada artculo los datos del
artculo y de su fabricante.

Obtener un listado de artculo, incluyendo el nombre del artculo, su precio, y el


nombre de su fabricante.

Obtener el precio medio de los productos de cada fabricante, mostrando solo los
cdigos de fabricante.

Obtener el precio medio de los productos de cada fabricante, mostrando el nombre


del fabricante.

Obtener los nombres de los fabricantes que ofrezcan productos cuyo precio medio
sea mayor o igual a 150 pesos.

Obtener el nombre y precio del artculo ms barato.

Obtener una lista con el nombre y precio de los artculos ms caros de cada
proveedor (incluyendo el nombre del proveedor).

Aadir un nuevo producto: Altavoces de 70 pesos (del fabricante 2)

Cambiar el nombre del producto 4 a Impresora Lser

Aplicar un descuento del 10 % (multiplicar el precio por 09) a todos los productos.

Aplicar un descuento de 10 pesos a todos los productos cuyo precio sea mayor o
igual a 120 pesos.

Ejercicio 2

CREATE DATABASE TRABAJADORES;


CREATE TABLE DEPARTAMENTOS(
CODIGO INT PRIMARY KEY,
NOMBRE CHAR(50),
PRESUPUESTO INT);
CREATE TABLE EMPLEADOS(
DNI CHAR(8) PRIMARY KEY,
NOMBRE CHAR(50),
APELLIDOS CHAR(50),
COD_DEPARTAMENTO INT,
FOREIGN KEY (COD_DEPARTAMENTO) REFERENCES DEPARTAMENTOS
(CODIGO));

INSERT INTO DEPARTAMENTOS VALUES(1, 'PERSONAL', 69000);


INSERT INTO DEPARTAMENTOS VALUES(2, 'COMERCIAL', 40000);
INSERT INTO DEPARTAMENTOS VALUES(3, 'PRODUCCION', 150000);
INSERT INTO DEPARTAMENTOS VALUES(4, 'ADMINISTRACION', 57000);
INSERT INTO DEPARTAMENTOS VALUES(5, 'SUMINISTROS', 87000);

INSERT INTO EMPLEADO VALUES('12345678', 'ARTURO', 'PEREZ', 3);


INSERT INTO EMPLEADO VALUES('87654321', 'FREDYAN', 'MARTINEZ', 1);
INSERT INTO EMPLEADO VALUES('09876543', 'MIGUEL', 'GONZALEZ', 2);
INSERT INTO EMPLEADO VALUES('01234567', 'JORGE', 'LOPEZ', 5);
INSERT INTO EMPLEADO VALUES('24681012', 'IRVING', 'PEREZ', 4);
Obtener los apellidos de los empleados.

Obtener los apellidos de los empleados sin repeticiones.

Obtener todos los datos de los empleados que se apellidan Lpez.

Obtener todos los datos de los empleados que se apellidan Lpez y los que se
apellidan Prez.

Obtener todos los datos de los empleados que trabajan para el departamento 14.

Obtener todos los datos de los empleados que trabajan para el departamento 17 y
para el departamento 15.

Obtener todos los datos de los empleados cuyo apellido comience por P.

Obtener el presupuesto total de todos los departamentos.

Obtener el nmero de empleados en cada departamento.

Obtener un listado completo de empleados, incluyendo por cada empleado los


datos del empleado y de su departamento.

Obtener un listado completo de empleados, incluyendo el nombre y apellidos del


empleado junto al nombre y presupuesto de su departamento.

Obtener los nombres y apellidos de los empleados que trabajen en departamentos


cuyo presupuesto sea mayor de 60.000 pesos.

Obtener los datos de los departamentos cuyo presupuesto es superior al


presupuesto medio de todos los departamentos.

Obtener los nombres (nicamente los nombres) de los departamentos que tienen
ms de dos empleados.

Aadir un nuevo departamento: Calidad, con presupuesto de 40.000 pesos y


cdigo 11. Aadir un empleado vinculado al departamento recin creado: Esther
Vzquez, DNI: 89267109.

Aplicar un recorte presupuestario del 10 % a todos los departamentos.

Reasignar a los empleados del departamento de investigacin (cdigo 15) al


departamento de informtica (cdigo 14).

Despedir a todos los empleados que trabajan para el departamento de informtica


(cdigo 14).

Despedir a todos los empleados que trabajen para departamentos cuyo


presupuesto sea superior a los 60.000 pesos.
Despedir a todos los empleados.
Ejercicio 4

CREATE DATABASE CINE;

CREATE TABLE PELICULAS(


CODIGO INT AUTO_INCREMENT PRIMARY KEY,
NOMBRE CHAR(50),

CALIFICACION_EDAD INT);

CREATE TABLE SALAS(


CODIGO INT AUTO_INCREMENT PRIMARY KEY,
NOMBRE CHAR(50),
COD_PELICULA INT,
FOREIGN KEY (COD_PELICULA) REFERENCES PELICULAS(CODIGO));
INSERT INTO PELICULAS (NOMBRE, CALIFICACION_EDAD) VALUES
('RESIDENT EVIL', 18);
INSERT INTO PELICULAS (NOMBRE, CALIFICACION_EDAD) VALUES
('UNDISPUTED 3', 15);
INSERT INTO PELICULAS (NOMBRE, CALIFICACION_EDAD) VALUES
('AVENGERS', 17);
INSERT INTO PELICULAS (NOMBRE, CALIFICACION_EDAD) VALUES ('22
JUMP STREET', 14);
INSERT INTO PELICULAS (NOMBRE, CALIFICACION_EDAD) VALUES ('EVIL
DEAD', 18);

INSERT INTO SALAS (NOMBRE, COD_PELICULA) VALUES ('SALA 1',5);


INSERT INTO SALAS (NOMBRE, COD_PELICULA) VALUES ('SALA 2',3);
INSERT INTO SALAS (NOMBRE, COD_PELICULA) VALUES ('SALA 3',1);
INSERT INTO SALAS (NOMBRE, COD_PELICULA) VALUES ('SALA 4',5);
INSERT INTO SALAS (NOMBRE, COD_PELICULA) VALUES ('SALA 5',2);

Mostrar el nombre de todas las pelculas.

Mostrar
las distintas calicaciones de edad que existen.

Mostrar todas las pelculas que no han sido calicadas.

Mostrar todas las salas que no proyectan ninguna pelcula.

Mostrar la informacin de todas las salas y, si se proyecta alguna pelcula en la


sala, mostrar tambin la informacin de la pelcula.

Mostrar la informacin de todas las pelculas y, si se proyecta en alguna sala,


mostrar tambin la informacin de la sala.

Mostrar los nombres de las pelculas que no se proyectan en ninguna sala.

Aadir una nueva pelcula Uno, Dos, Tres, para mayores de 7 aos.

Hacer constar que todas las pelculas no calicadas han sido calicadas no
recomendables para menores de 13 aos.

Eliminar todas las salas que proyectan pelculas recomendadas para todos los
pblicos.

Ejercicio 6
CREATE DATABASE PIEZAS_Y_PROVEEDORES;

CREATE TABLE PIEZAS(


CODIGO INT AUTO_INCREMENT PRIMARY KEY,
NOMBRE CHAR(50));
CREATE TABLE PROVEEDORES(
ID CHAR(4) PRIMARY KEY,
NOMBRE CHAR(50));
CREATE TABLE SUMINISTRA(
COD_PIEZA INT,
ID_PROVEEDOR CHAR(4),
PRECIO INT,
FOREIGN KEY (COD_PIEZA) REFERENCES PIEZAS(CODIGO),
FOREIGN KEY (ID_PROVEEDOR) REFERENCES PROVEEDORES(ID));

INSERT INTO PIEZAS (NOMBRE) VALUES('CANDADOS ');


INSERT INTO PIEZAS (NOMBRE) VALUES('LLAVES');
INSERT INTO PIEZAS (NOMBRE) VALUES('TORNILLOS');
INSERT INTO PIEZAS (NOMBRE) VALUES('CLAVOS');
INSERT INTO PIEZAS (NOMBRE) VALUES(' TUERCAS');
INSERT INTO PROVEEDORES VALUES('PHPO', 'PHILLIPS');
INSERT INTO PROVEEDORES VALUES('QWEP', 'FANAL');
INSERT INTO PROVEEDORES VALUES('ASDQ', 'TRUPER');
INSERT INTO PROVEEDORES VALUES('ZXCR', 'BLACK & DECKER');
INSERT INTO PROVEEDORES VALUES('RBT', 'SUSAN CALVIN CORP');
INSERT INTO SUMINISTRA VALUES(5,'QWEP', 7);
INSERT INTO SUMINISTRA VALUES(3,'ASDQ', 10);
INSERT INTO SUMINISTRA VALUES(4,'RBT', 3);
INSERT INTO SUMINISTRA VALUES(1,'ZXCR', 5);
INSERT INTO SUMINISTRA VALUES(2,'PHPO', 2);

Obtener los nombres de todas las piezas.

Obtener todos los datos de todos los proveedores.

Obtener el
precio medio

al que se nos suministran las piezas.

Obtener los nombres de los proveedores que suministran la pieza 1.

Obtener los nombres de las piezas suministradas por el proveedor cuyo cdigo es
HAL.

Obtener los nombres de los proveedores que suministran las piezas ms caras,
indicando el nombre de la pieza y el precio al que la suministran.

Hacer constar en la

base de datos que la empresa Skellington Supplies (cdigo TNBC) va a empezar


a suministrarnos tuercas (cdigo 1) a 7 pesos cada tuerca.

Aumentar los precios en una unidad.

Hacer constar en la base de datos que la empresa Susan Calvin Corp.(RBT) no


va a suministrarnos ninguna pieza (aunque la empresa en s va a seguir
constando en nuestra base de datos).

Hacer constar en la base de datos que la empresa Susan Calvin Corp.(RBT) ya


no va a suministrarnos clavos (cdigo 4)

Potrebbero piacerti anche