Está en la página 1de 12

1

ISAE UNIVERSIDAD

LICENCIATURA EN INFORMÁTICA CON ÉNFASIS EN AUDITORIA EN


SISTEMAS

BASE DE DATOS II

PROFESOR MANUEL BEIRO

ELABORADO POR:

● HERIBERTO QUIÑONEZ
● SERGIO PALACIOS
● LUIS ROCA

TRABAJO GRUPAL FINAL

2022
2

Parte I – Confeccione la base de datos y tablas (20 puntos)

1. La base de datos se debe llamar CARS_PTY

2. Confeccione las tablas según el diagrama de entidad relación (Create Table)

CREATE TABLE clientes ( CREATE TABLE productos ( CREATE TABLE pedidos (


id_cliente VARCHAR(50) , cod_producto VARCHAR(50) , id_pedido VARCHAR(50) ,
nombre VARCHAR (50), descripcion VARCHAR (50), fecha DATE,
apellido VARCHAR (50), precio VARCHAR (50), cod_cliente VARCHAR (50)
cedula VARCHAR (25), marca VARCHAR (50) );
fec_nacimiento DATE, );
telefono VARCHAR (25),
direccion VARCHAR (50),
correo VARCHAR (50)
);

CREATE TABLE pedido_detalle (


id_pedido VARCHAR(50),
cod_producto VARCHAR(50), Parte II – Inserción de Datos -  (15 puntos)
cantidad VARCHAR (50),
Insertar los registros en las tablas utilizando los datos
total VARCHAR (50)
proporcionados en los cuadros de datos.
);

INSERT INTO clientes (id_cliente,nombre,apellido,cedula,fec_nacimiento,telefono, direccion,correo )

VALUES

('1', 'JUAN', 'REYES', '2-587-487','1998-01-15','233-2525', 'SAN FRANCISCO', 'jreyes@gmail.com'),


('2', 'YOHANA', 'PEREZ', '3-58-122','1997-08-24','255-8852', 'BETHANIA', 'yperez@msn.com'),
('3', 'CRISTEL', 'VILLAREAL', '8-758-965','1992-04-02','241-8212', 'EL CANGREJO', 'mvillareal@outlook'),
('4', 'ANA PATRICIA', 'BUSTAMANTE', '3-75-454','1989-07-08','212-8744', 'EL PAICAL',
'abustamante@gmail.com'),
('5', 'MARIO', 'RODRIGUEZ', '8-755-413','1990-09-25','212-8746', 'LOS ROBLES',
'mrodriguez01@gmail.com'),
('6', 'VANESSA', 'ESCUDERO', '3-58-968','2000-11-15','241-8215', 'BETHANIA', 'vescudero@msn.com'),
3

INSERT INTO pedidos (id_pedido,fecha,cod_cliente )

VALUES
INSERT INTO pedido_detalle (id_pedido,cod_producto,cantidad,total )

('150',
VALUES '2020-11-15','1'),
('151', '2020-11-15','6'),
('152',
('150', '2020-11-17','5'),
'1','1', '18,500.00'),
('153',
('151', '2020-11-17','3'),
'4','1','20,000.00'),
('154',
('151', '2020-11-17','5'),
'7','1','15,400.00'),
('155',
('152', '2020-11-23','7'),
'4','1','20,000.00'),
('156',
('153', '2020-11-24','1'),
'6','1','18,000.00'),
('157',
('154', '2020-11-25','3');
'2','1','26,800.00'),
('155', '3','1','24,000.00'),
('155', '7','1','15,400.00'),
('156', '6','1','18,000.00'),
('157', '4','1','20,000.00'),
('157', '5','1','17,500.00');
4

Parte III – Consultas    (15 Puntos)

Crear las siguientes consultas de la base de datos:

1.    Consulta donde se presente el nombre, apellido, teléfono y Fecha de


nacimiento de todos los clientes

SELECT nombre, apellido, telefono,fec_nacimiento


FROM clientes;

2.     Consulta donde se presente los productos con pedido mayor o igual a 25,000
dólares, ordenados ascendente

o Producto, Marca, id_pedido, monto total_pedido

SELECT productos.descripcion, productos.marca, pedidos.id_pedido,


pedido_detalle.total
FROM productos, pedidos, pedido_detalle
WHERE pedido_detalle.cod_producto=productos.cod_producto
AND pedidos.id_pedido=pedido_detalle.id_pedido
AND pedido_detalle.total >= '25,000.00';
5

3.    Consulta que presente los pedidos generados en la fecha 17/11/2020  con los
siguientes datos:

SELECT pedido_detalle.id_pedido,
clientes.nombre,clientes.apellido,productos.descripcion,pedido_detalle.cantidad,
productos.precio, pedidos.fecha
FROM pedido_detalle, clientes, productos, pedidos
WHERE pedido_detalle.id_pedido = pedidos.id_pedido
AND productos.precio = pedido_detalle.total
AND pedidos.fecha = '2020-11-17';
6

o id_pedido, Nombre cliente, producto, cantidad, precio

4. Consulta que presente el nombre del cliente, la cantidad y monto total pedido.

o   nombre, apellido, cantidad y  monto total

SELECT NOMBRE, APELLIDO, cantidad, Total


FROM pedidos
INNER JOIN clientes
ON pedidos.cod_cliente = clientes.id_cliente
INNER JOIN pedido_detalle
ON pedidos.id_pedido = pedido_detalle.id_pedido

5. Consulta que presente el total pedido por marca: (Agrupado por Marca)
o Marca, cantidad total , monto total

SELECT productos.marca, pedido_detalle.cantidad, pedido_detalle.total


FROM cars_pty.productos as b inner join cars_pty.pedido_detalle
GROUP BY marca;
7

Parte IV - Vistas (20 puntos)

Crear las siguientes vistas

5.1 Vista vw_pedidos  

      Con la siguiente salida:

 Cod_producto, Nombre_producto, marca, cantidad total por producto,

Total del pedido por producto

CREATE view vw_pedidos as

SELECT pedido_detalle.cod_producto,productos.descripcion, productos.marca,


pedido_detalle.total, cantidad
FROM pedido_detalle, productos
WHERE pedido_detalle.total = pedido_detalle.cantidad * productos.precio;

SELECT * FROM vw_pedidos;


8

5.2 Vista vw_produccion_marca

      Con la siguiente salida:

 Marca, cantidad total por marca, total del pedido por marca

CREATE view vw_produccion_marca as

SELECT productos.marca, pedido_detalle.total, cantidad


FROM pedido_detalle, productos
WHERE pedido_detalle.total = pedido_detalle.cantidad * productos.precio
GROUP BY marca;

SELECT * FROM vw_produccion_marca;


9

5.3 Vista vw_clientes

      La vista debe presentar los datos de los clientes que tengan pedidos en la base de datos.

      Con la siguiente salida:

 Nombre del cliente, apellido, cantidad total, Total del pedido

CREATE view vw_clientes as

SELECT clientes.nombre, clientes.apellido, cantidad, pedido_detalle.total


FROM pedido_detalle, clientes, productos
WHERE pedido_detalle.total = pedido_detalle.cantidad * productos.precio;

SELECT * FROM vw_clientes;


10

Parte V - Store Procedure (20 puntos)


6.1 Confeccione un Store Procedure con dos parámetros de entrada:

 - Fecha inicial
 - Fecha Final

 Y el Store Procedure debe presentar sólo los datos de los Pedidos realizados en ese
periodo de tiempo

 La salida del Store Procedure será:

DELIMITER $$;

CREATE PROCEDURE
SP_PEDIDOS_FECHA
(fec_ini date,
fec_fin date
)

BEGIN

SELECT pedidos.fecha, productos.descripcion,clientes.nombre, clientes.apellido,


cantidad, total
FROM pedidos, productos, clientes, pedido_detalle;

END

select pedidos.fecha, productos.descripcion, clientes.nombre, clientes.apellido,


pedido_detalle.cantidad, pedido_detalle.total
from clientes, pedido_detalle, pedidos, productos
where pedido_detalle.id_pedido = pedidos.id_pedido;
call SP_PEDIDOS_FECHA ('2020-11-15', '2020-11-17')
11

--> Fecha, Nombre del producto, Nombre y apellido del cliente, cantidad, Total

6.2. Se desea poder aumentarles el precio a los productos fácilmente. Por eso solicita
un programa para aumentar un porcentaje de incremento a un producto en especial. Para
ello se debe realizar las siguientes operaciones:

 Confeccione un Store Procedure que tenga como parámetros:

 cod_producto
 pje_incremento

Y la salida del Store Procedure será el producto afectado con su precio anterior y nuevo
precio:

--> Código de producto, Nombre del producto, precio anterior, nuevo precio

DELIMITER $$;
CREATE PROCEDURE SP_PRODUCTOS_AUMENTO
(p_cod_producto INT,
pje_incremento NUMERIC (12,2)
)
BEGIN
DECLARE V_PRECIO_ANT NUMERIC (12,2);
SELECT PRECIO INTO pje_incremento
FROM PRODUCTOS WHERE COD_PRODUCTO = P_COD_PRODUCTO;

UPDATE PRODUCTOS
SET precio = pje_incremento
WHERE COD_PRODUCTO = P_COD_PRODUCTO;

SELECT 'Precio modificado',Cod_producto, descripcion, precio, nuevo_precio


FROM PRODUCTOS
WHERE COD_PRODUCTO = P_COD_PRODUCTO;

END;

select productos.cod_producto,productos.descripcion,precio, precio 'Precio modificado'


from productos;
call SP_PRODUCTOS_AUMENTO(1,18,500.00)
12

También podría gustarte