Está en la página 1de 25

UNIDAD 2 - BASES DE DATOS TRANSACCIONALES Y RELACIONALES

FASE 2 - IMPLEMENTACIÓN DE LENGUAJE PLSQL

PARTICIPANTES:

WILMER ARAUJO ANDRADE - CC. 1117493445


JOHN FREDY RODRIGUEZ - CC. 16188366
DEIBYS MAURICIO OQUENDO CARDONA - CC. 1128475025
FRANCISCO JAVIER BLANCO - CC: 1152189277
JUAN SEBASTIAN CABRERA - CC: 1080935498

GRUPO No.

301125_11

Tutor:
EURIPIDES TRIANA

Universidad Nacional Abierta y a Distancia – UNAD


Escuela Ciencias básicas, tecnología e ingeniería
Programa Ingeniería de Sistemas
Base de datos avanzada 301125
Periodo 16-01
Colombia
2020

TABLA DE CONTENIDO
INTRODUCCIÓN.......................................................................................................................................3
RESULTADO DE LA ACTIVIDAD..........................................................................................................4
Publicación del rol escogido por el estudiante..........................................................................4
Consultas con JOINS..........................................................................................................................4
Consultas con funciones...................................................................................................................5
Procedimientos Almacenados..........................................................................................................5
Disparadores o Trigger......................................................................................................................6
Evidencias de la participación en el foro.....................................................................................6
CONCLUSIONES.......................................................................................................................................9
BIBLIOGRAFÍA........................................................................................................................................10
INTRODUCCIÓN

El objetivo de esta actividad es desarrollar consultas avanzadas,


procedimientos almacenados y disparadores utilizando un SGBD para
automatizar el despliegue de la información de acuerdo con las necesidades
de la organización, obteniendo conocimientos de las bases de datos para una
mejor administración e implementación para una organización, esta actividad
se va a desarrollar tanto de forma individual y colaborativo.

Se realizará una implementación con el lenguaje PLSQL donde cada


estudiante realizará la participación pertinente, dando su aporte al trabajo
colaborativo y adquiriendo habilidades en el manejo de las bases de datos.
RESULTADO DE LA ACTIVIDAD

Publicación del rol escogido por el estudiante.

Nombre Estudiante Rol Valoración del


Desempeño del Rol
Deibys Mauricio Oquendo Cardona Moderador Calificar de 1 a 5
Francisco Javier Blanco Grajales Colaborador Calificar de 1 a 5
Juan Sebastian Cabrera Muñoz Evaluador Calificar de 1 a 5
John Fredy Rodriguez Creativo Calificar de 1 a 5
Estudiante 5 Investigador Calificar de 1 a 5

Importante: el grupo debe presentar todos los ejercicios independientemente de los


estudiantes que participen en el trabajo.

Consultas con JOINS

[INNER] JOIN ... ON:


Código: SELECT * FROM `concesionario` join vehiculo ID_CONCESIONARIO

Resultado de la consulta:

LEFT [OUTER] JOIN:


Código:
Select * from auto a
left join ventas b
on a.id_auto=b.id_auto;
Resultado de la consulta:

RIGHT [OUTER] JOIN:


Código: SELECT a.*,b.* FROM vendedor a RIGHT JOIN ventas b on
a.ID_VENDEDOR = b.ID_VENDEDOR
Resultado de la consulta:

FULL [OUTER] JOIN:


Código:
SELECT
*
FROM
auto a
FULL JOIN ventas b ON a.id_auto = b.id_auto;
Resultado de la consulta:
CROSS JOIN:
Código:
SELECT
*
FROM
auto a
CROSS JOIN ventas b ;
Resultado de la consulta:

NATURAL JOIN:
Código:
SELECT
a.id,
a.marca,
a.id_auto,
b.matricula,
a.color,
b.fecha_entrega
FROM
auto a
JOIN ventas b ON a.id_auto = b.id_auto;

Resultado de la consulta:

[INNER] JOIN ... USING:


Código:
SELECT
*
FROM
auto a
INNER JOIN ventas b using (id_auto);
Resultado de la consulta:
Consultas con funciones

COUNT(expresión)
Código: select Count(1) from cliente;

Resultado de la consulta:

SUM(expresión)
Código:
SELECT
sum (valor)
FROM
ventas;
Resultado de la consulta:

AVG(expresión)
Código: SELECT AVG(precio) 'Precio Promedio' FROM ventas

Resultado de la consulta:
MIN(expresión)
Código:
SELECT
min (valor)
FROM
ventas;
Resultado de la consulta:

MAX(expresión)
Código:
SELECT
max (valor)
FROM
ventas;
Resultado de la consulta:
Procedimientos Almacenados
Procedimiento 1
Código: Create Procedure n1(num int(1)
SELECT * FROM `cliente` WHERE cliente.ID_CLIENTE= num
CALL n1(2)
Resultado de la consulta:

Procedimiento 2
Código:
CREATE PROCEDURE usp_AgregarAutomovil

@marca varchar(45),@modelo varchar(45),@color varchar(45),@precio int,@descuento int,


@hp int,@cilindrada int,@observaciones varchar(45)
AS
BEGIN
insert into automovil (marca,modelo,color,precio,descuento,hp,cilindrada,onbservaciones)
values (
@marca,@modelo,@color,@precio,@descuento,@hp,@cilindrada,@observaciones)
END

Resultado de la consulta:

Procedimiento 3
Código: CREATE PROCEDURE C1 (VALOR INT(2))

SELECT *
FROM vehiculo
WHERE vehiculo.ID_CONCESIONARIO = VALOR

Resultado de la consulta:

Procedimiento 4
Código:
CREATE PROCEDURE usp_ActulizarPreciocilindradaAutomovil

@marca varchar(45),@precio int,@cilindrada int


AS
if(@precio<>'0'and @marca<>''and @cilindrada='0')
BEGIN
update automovil set precio=@precio where marca = @marca
END
else if (@precio='0'and @marca<>''and @cilindrada<>'0')
BEGIN
update automovil set cilindrada=@cilindrada where marca = @marca
END

Resultado de la consulta:

Procedimiento 5
Código:
CREATE PROCEDURE usp_EliminaEmpleado

@dni varchar(45)
AS
DELETE FROM vendedor WHERE dni = @dni

Resultado de la
consulta:
Disparadores o Trigger
Trigger 1
Código:

Resultado de la consulta:

Trigger 2
Código:

Resultado de la consulta:

Trigger 3
Código: DROP TRIGGER IF EXISTS
`ACTUALIZACION_FINANCIERAS_BU`;CREATE
DEFINER=`root`@`localhost` TRIGGER
`ACTUALIZACION_FINANCIERAS_BU` BEFORE UPDATE ON
`financieras` FOR EACH ROW INSERT INTO financieras_actualizacion
(ANTERIOR_ID_ENTIDAD, ANTERIO
R_NOM_ENTIDAD,ANTERIOR_TEL_ASESOR,ANTERIOR_NOM_ASESOR,ANTE
RIOR_APE_ASESOR,NUEVO
_ID_ENTIDAD,
NUEVO_NOM_ENTIDAD,NUEVO_TEL_ASESOR,NUEVO_APE_ASESOR,NUEVO
_NOM_ASES OR) VALUES
(OLD.ID_ENTIDAD,OLD.NOM_ENTIDAD,OLD.TEL_ASESOR,OLD.NOM_ASES
OR,OLD.APE_ASE
SOR,NEW.ID_ENTIDAD,NEW.NOM_ENTIDAD,NEW.TEL_ASESOR,NEW.APE_A
SESOR,NEW.NOM_ASESOR,
NOW())
Resultado de la consulta:
Trigger 4
Código:

Resultado de la consulta:

Trigger 5
Código:

Resultado de la consulta:

Evidencias de la participación en el foro


Se espera que cada estudiante presente las evidencias de su participación en
el foro con relación al Desarrollo Fase 1 - Unidad 1, al igual que comentarios
significativos a los aportes de los demás compañeros del grupo.

Nombre Estudiante 1:
Imagen 1 Imagen 2

Nombre Estudiante 2:
Imagen 1 Imagen 2

Nombre Estudiante 3:
Imagen 1 Imagen 2

Nombre Estudiante 4:
Imagen 1 Imagen 2

Nombre Estudiante 5:
Imagen 1 Imagen 2
[INNER] JOIN ... ON: Francisco Javier Blanco
Código:
SELECT *
FROM Automovil AS Aut
INNER JOIN Marca AS Ma ON Aut.id_Bastidores = Ma.IdAutomovil

Resultado de la consulta:

LEFT [OUTER] JOIN: Francisco Javier Blanco


Código:
SELECT *
FROM MetodoPago AS mp
LEFT JOIN MetodoPagoAutomivil AS mpa ON mp.Id = mpa.IdMetodoPago
LEFT JOIN Automovil AS Aut ON mpa.IdAutomovil = Aut.id_Bastidores

Resultado de la consulta:

RIGHT [OUTER] JOIN: Francisco Javier Blanco


Código:

SELECT *
FROM MetodoPago AS mp
RIGHT JOIN MetodoPagoAutomivil AS mpa ON mp.Id = mpa.IdMetodoPago
RIGHT JOIN Automovil AS Aut ON mpa.IdAutomovil = Aut.id_Bastidores

Resultado de la consulta:
FULL [OUTER] JOIN: Francisco Javier Blanco
Código:
SELECT *
FROM MetodoPago AS mp
FULL OUTER JOIN MetodoPagoAutomivil AS mpa ON mp.Id = mpa.IdMetodoPago
FULL OUTER JOIN Automovil AS Aut ON mpa.IdAutomovil = Aut.id_Bastidores
FULL OUTER JOIN Marca AS ma ON Aut.id_Bastidores = ma.IdAutomovil

Resultado de la consulta:

Consultas con funciones

COUNT(expresión) : Francisco Javier Blanco


Código:

SELECT COUNT(1)
FROM MetodoPago AS mp
FULL OUTER JOIN MetodoPagoAutomivil AS mpa ON mp.Id = mpa.IdMetodoPago
FULL OUTER JOIN Automovil AS Aut ON mpa.IdAutomovil = Aut.id_Bastidores
FULL OUTER JOIN Marca AS ma ON Aut.id_Bastidores = ma.IdAutomovil

Resultado de la consulta:

SUM(expresión): Francisco Javier Blanco


Código:

SELECT SUM(Precio) as 'Total Valor'


FROM Solicitud_Ventas

Resultado de la consulta:
AVG(expresión): Francisco Javier Blanco
Código:

SELECT AVG(Precio) as 'Precio promedio'


FROM Solicitud_Ventas

Resultado de la consulta:

MIN(expresión): Francisco Javier Blanco


Código:

SELECT MIN(Precio) as 'Precio Minimo'


FROM Solicitud_Ventas

Resultado de la consulta:

MAX(expresión): Francisco Javier Blanco


Código:

SELECT MAX(Precio) as 'Precio MAximo'


FROM Solicitud_Ventas

Resultado de la consulta:
Procedimientos Almacenados
Procedimiento 1: Francisco Javier Blanco
Código:
USE [consesionarioAutos]
GO
CREATE PROCEDURE InsertMArca(
@Id int,
@Descripcion nvarchar(45),
@IdAutomovil int
)
AS
BEGIN
UPDATE [dbo].[Marca]
SET [Descripcion] = @Descripcion
,[IdAutomovil] = @IdAutomovil
WHERE Id = @Id
SELECT 'El registro se actualizo con exito.'
END

Resultado de la consulta:
Procedimiento 2: Francisco Javier Blanco
Código:

USE [consesionarioAutos]
GO
CREATE PROCEDURE ConsultarAutoMetodoPago(
@IdMetodoPago int
)
AS
BEGIN
SELECT *
FROM MetodoPago AS mp
FULL OUTER JOIN MetodoPagoAutomivil AS mpa ON mp.Id = mpa.IdMetodoPago
FULL OUTER JOIN Automovil AS Aut ON mpa.IdAutomovil = Aut.id_Bastidores
FULL OUTER JOIN Marca AS ma ON Aut.id_Bastidores = ma.IdAutomovil
WHERE mpa.IdMetodoPago = @IdMetodoPago
END

Resultado de la consulta:

Procedimiento 3

Resultado de la consulta:

Procedimiento 4
Código:

Resultado de la consulta:

Procedimiento 5
Código:

Resultado de la consulta:
Disparadores o Trigger
Trigger 1: Francisco Javier Blanco
Código:

CREATE TRIGGER TR_InsertPagoAuto ON [dbo].[Solicitud_Ventas]


FOR INSERT
AS
IF(SELECT precio FROM inserted) < 0
BEGIN
print 'Precio debe ser mayor a cero'
ROLLBACK
END

Resultado de la consulta:

Trigger 2
Código:

Resultado de la consulta:

Trigger 3
Resultado de la consulta:

Trigger 4
Código:

Resultado de la consulta:

Trigger 5
Código:

Resultado de la consulta:
CONCLUSIONES
Francisco Javier Blanco:
1. Con el desarrollo de esta guía aprendí y mejoré mi conocimiento sobre
la implementación del lenguaje PLSQL lo que me será de mucha ayuda
en mi entorno laboral.

2. Aprendí a utilizar Trigger lo cual no sabia hasta antes de realizar esta


guía, y entendí que son de gran ayuda al momento de realizar y
desarrollar una base de datos.
BIBLIOGRAFÍA

w3schools.com. SQL COUNT(), AVG() and SUM() Functions. Recuperado de


https://www.w3schools.com/sql/sql_count_avg_sum.asp

w3schools.com. SQL FULL OUTER JOIN Keyword. Recuperado de


https://www.w3schools.com/sql/sql_join_full.asp

w3resource. SQL Cross Join. Recuperado de


https://www.w3schools.com/sql/sql_join_full.asp

Uso de INNER JOINs con USING, ON o WHERE (where tabla.column )


Recuperado de
https://es.stackoverflow.com/questions/72558/uso-de-inner-joins-con-using-on-o-where-where-tabla-
column

Como crear un trigger en SQL Server - Remigio Huarcaya Almeyda

https://www.youtube.com/watch?v=Idw0NibfWpo

También podría gustarte