Scripts SQL

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:
 
Crear BDD

Luego procedimos a la solución de los ejercicios planteados:

/*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";

Archivo SQL

Solución a los ejercicios

A continuación presentamos un video tutorial para la creacion de los scripts en Oracle 10g para Linux

Video de Scripts 

1 comentario:

  1. Recientemente me encontré con tu blog y he estado leyendo a lo largo. Yo pensaba que iba a dejar mi primer comentario.

    business analysis

    ResponderEliminar