Una vez terminada la instalación y configuración del entorno e interfaz
del DBMS lo que resta es ingresar el código SQL en el software SQL
Developer, el cual tiene una interfaz muy similar a la del SQL Sever
2008 que utilizamos para los laboratorios.
En este artículo resolvemos los ejercicios planteados en el archivo "BDPEDIDOS-PARATODOS_DBMS.sql".
Primero se adaptó el lenguaje del Script dado para nuestro DBMS (Oracle):
Enlace para Descargar el Archivo SQL:
En este artículo resolvemos los ejercicios planteados en el archivo "BDPEDIDOS-PARATODOS_DBMS.sql".
Primero se adaptó el lenguaje del Script dado para nuestro DBMS (Oracle):
Enlace para Descargar el Archivo SQL:
/*PROYECTO BASES DE DATOS
DBMS: ORACLE 10g
INTEGRANTES:
Santiago Sandoval
Carlos Muñoz
Lenin Samaniego
Inti Pilatuña
Jorge Suarez*/
--1. Actualizar el precio unitario de los productos de la categoría CARNICOS, subiéndolos en un 10%
select * from categorias;
select * from productos order by categoriaid;
update productos
set preciounit = preciounit * 1.10
where categoriaid in
(select categoriaid from categorias
where nombrecat = "CARNICOS");
--2. Actualizar el teléfono celular del proveedor cuyo contacto es
--MANUEL ANDRADE, con el valor 099010291
--099234567
select * from proveedores;
WHERE CELUPROV = "099234567";
update proveedores
set celuprov = '099010291'
where contacto = "MANUEL ANDRADE";
--3. Borrar el producto YOGURT DE SABORES
select * from productos;
delete from productos
where descripcion = "YOGURT DE SABORES";
--4. Realizar las siguientes consultas:
--4.1 Mostrar todas las órdenes: el id de la orden, el apellido y nombre del empleado
--que la atendió el nombre de la compañía cliente y la fecha de orden
select * from ordenes;
select * from empleados;
select * from clientes;
select ORDENID,APELLIDO,NOMBRE,NOMBRECIA,FECHAORDEN
from ordenes o join empleados e
on o.empleadoid = e.empleadoid
join clientes c
on o.clienteid = c.clienteid
order by ordenid;
--4.2 Mostrar la suma total de cada tipo de producto pedidos en todas las órdenes.
select * from detalle_ordenes;
select * from productos;
select do.PRODUCTOID, SUM(CANTIDAD) AS 'TOTAL PRODUCTO'
from detalle_ordenes do join productos p
on do.productoid = p.productoid
group by do.productoid;
--4.3 Mostrar el número de órdenes atendidas por cada empleado, incluidos los que tienen 0 órdenes.
select * from ordenes WHERE EMPLEADOID = 2;
select * from empleados;
select e.EMPLEADOID, COUNT(*) as "ORDENES POR EMPLEADO"
from empleados e join ordenes o
on e.empleadoid = o.empleadoid
group by e.EMPLEADOID;
--4.4 Muestre los proveedores y la suma de dinero vendido en los productos de ese proveedor. */
select * from proveedores;
select * from detalle_ordenes ORDER by productoid;
select * from productos;
select NOMBREPROV, sum(CANTIDAD*PRECIOUNIT) as 'TOTAL VENDIDO'
from detalle_ordenes do join productos p
on do.productoid = p.productoid
join proveedores pr
on p.proveedorid = pr.proveedorid;
group by NOMBREPROV;
--5. Realizar el siguiente procedimiento almacenado.
--5.1 Escriba un procedimiento almacenado que reciba como parámetro un código de proveedor y
--devuelve el número de órdenes en las que están incluidos productos de ese proveedor.
select * from proveedores;
select * from detalle_ordenes order by productoid;
select * from productos;
drop procedure num_ordenes;
CREATE PROCEDURE num_ordenes @codprov int AS
SELECT 'NUMERO ORDENES' = COUNT(*)
FROM detalle_ordenes do join productos p
ON do.productoid = p.productoid
WHERE p.proveedorid = @codprov
RETURN;
Exec num_ordenes 20;
--5.2 Escriba un procedimiento almacenado que reciba como parámetro un nombre de una categoría y
--devuelve el código del producto de esa categoría que tiene más unidades vendidas.
select * from categorias;
select * from productos;
select * from detalle_ordenes;
DROP PROCEDURE masvendido;
CREATE PROCEDURE masvendido @nomcat varchar(80) AS
SELECT 'MAS VENDIDO' = do.productoid
FROM detalle_ordenes do join productos p
ON do.productoid = p.productoid
WHERE cantidad >
(select MAX(SUM(CANTIDAD))
from detalle_ordenes do join productos p
on do.productoid = p.productoid
join categorias c
on p.categoriaid = c.categoriaid
where c.nombrecat = @nomcat)
RETURN;
Exec masvendido "LACTEOS";
DBMS: ORACLE 10g
INTEGRANTES:
Santiago Sandoval
Carlos Muñoz
Lenin Samaniego
Inti Pilatuña
Jorge Suarez*/
--1. Actualizar el precio unitario de los productos de la categoría CARNICOS, subiéndolos en un 10%
select * from categorias;
select * from productos order by categoriaid;
update productos
set preciounit = preciounit * 1.10
where categoriaid in
(select categoriaid from categorias
where nombrecat = "CARNICOS");
--2. Actualizar el teléfono celular del proveedor cuyo contacto es
--MANUEL ANDRADE, con el valor 099010291
--099234567
select * from proveedores;
WHERE CELUPROV = "099234567";
update proveedores
set celuprov = '099010291'
where contacto = "MANUEL ANDRADE";
--3. Borrar el producto YOGURT DE SABORES
select * from productos;
delete from productos
where descripcion = "YOGURT DE SABORES";
--4. Realizar las siguientes consultas:
--4.1 Mostrar todas las órdenes: el id de la orden, el apellido y nombre del empleado
--que la atendió el nombre de la compañía cliente y la fecha de orden
select * from ordenes;
select * from empleados;
select * from clientes;
select ORDENID,APELLIDO,NOMBRE,NOMBRECIA,FECHAORDEN
from ordenes o join empleados e
on o.empleadoid = e.empleadoid
join clientes c
on o.clienteid = c.clienteid
order by ordenid;
--4.2 Mostrar la suma total de cada tipo de producto pedidos en todas las órdenes.
select * from detalle_ordenes;
select * from productos;
select do.PRODUCTOID, SUM(CANTIDAD) AS 'TOTAL PRODUCTO'
from detalle_ordenes do join productos p
on do.productoid = p.productoid
group by do.productoid;
--4.3 Mostrar el número de órdenes atendidas por cada empleado, incluidos los que tienen 0 órdenes.
select * from ordenes WHERE EMPLEADOID = 2;
select * from empleados;
select e.EMPLEADOID, COUNT(*) as "ORDENES POR EMPLEADO"
from empleados e join ordenes o
on e.empleadoid = o.empleadoid
group by e.EMPLEADOID;
--4.4 Muestre los proveedores y la suma de dinero vendido en los productos de ese proveedor. */
select * from proveedores;
select * from detalle_ordenes ORDER by productoid;
select * from productos;
select NOMBREPROV, sum(CANTIDAD*PRECIOUNIT) as 'TOTAL VENDIDO'
from detalle_ordenes do join productos p
on do.productoid = p.productoid
join proveedores pr
on p.proveedorid = pr.proveedorid;
group by NOMBREPROV;
--5. Realizar el siguiente procedimiento almacenado.
--5.1 Escriba un procedimiento almacenado que reciba como parámetro un código de proveedor y
--devuelve el número de órdenes en las que están incluidos productos de ese proveedor.
select * from proveedores;
select * from detalle_ordenes order by productoid;
select * from productos;
drop procedure num_ordenes;
CREATE PROCEDURE num_ordenes @codprov int AS
SELECT 'NUMERO ORDENES' = COUNT(*)
FROM detalle_ordenes do join productos p
ON do.productoid = p.productoid
WHERE p.proveedorid = @codprov
RETURN;
Exec num_ordenes 20;
--5.2 Escriba un procedimiento almacenado que reciba como parámetro un nombre de una categoría y
--devuelve el código del producto de esa categoría que tiene más unidades vendidas.
select * from categorias;
select * from productos;
select * from detalle_ordenes;
DROP PROCEDURE masvendido;
CREATE PROCEDURE masvendido @nomcat varchar(80) AS
SELECT 'MAS VENDIDO' = do.productoid
FROM detalle_ordenes do join productos p
ON do.productoid = p.productoid
WHERE cantidad >
(select MAX(SUM(CANTIDAD))
from detalle_ordenes do join productos p
on do.productoid = p.productoid
join categorias c
on p.categoriaid = c.categoriaid
where c.nombrecat = @nomcat)
RETURN;
Exec masvendido "LACTEOS";
Archivo SQL
A continuación presentamos un video tutorial para la creacion de los scripts en Oracle 10g para Linux
Video de Scripts
Recientemente me encontré con tu blog y he estado leyendo a lo largo. Yo pensaba que iba a dejar mi primer comentario.
ResponderEliminarbusiness analysis