Sunteți pe pagina 1din 16

BASE DE DATOS AVANZADA

Lenguaje SQL avanzado

Presentado a:

Tutor (a)
LUIS ERNESTO BONILLA

Entregado por:
EDDIE ENRIQUE LEUDO

Código:
1077460105

Grupo: 29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


ESCUELA DE CIENCIAS BÁSICAS, INGENIERÍAS Y TECNOLOGÍAS

BASE DE DATOS AVANZADA

FECHA
2019
MEDELLÍN

1
TABLA DE CONTENIDO

INTRODUCCIÓN------------------------------------------------------------------------------- Pág. 3

EJECUCIÓN DE JOINS------------------------------------------------------------------------Pág. 4

CONSULTAS AVANZADAS (COUNT) --------------------------------------------------- Pág. 8

DISPARADORES (TRIGGER) -------------------------------------------------------------- Pág.11

2
INTRODUCCIÓN

Dentro del contexto de las bases de datos relacionales se destacan dos conceptos de
inusitada importancia que son los disparadores (triggers) y los Joins. Los anteriores eventos
determinar acciones fundamentales dentro de una base de datos y le proporcionan un alto
dinamismo a la misma. En el siguiente trabajo veremos cómo interactúan estos conceptos en
un ejemplo real de una base de datos para gestión de estudiantes.

3
1. A continuación, se relacionan los aspectos necesarios para desarrollar la fase de
implementación del proyecto, para ello, se deben adelantar las siguientes acciones
sobre la base de datos:

a. Realizar una consulta por cada join, cada enlace lo lleva aun ejemplo que puede tomar
de referencia para el desarrollo de la actividad:

 [INNER] JOIN ... ON


 LEFT [OUTER] JOIN
 RIGHT [OUTER] JOIN
 FULL [OUTER] JOIN
 CROSS JOIN
 NATURAL JOIN
 [INNER] JOIN ... USING

 [INNER] JOIN ... ON

SELECT d.PUNTUACIÓN1,
e.NOMBRE
FROM NOTAS d
JOIN ESTUDIANTES e ON d.ID_ESTUDIANTE = e.ID_ESTUDIANTE
WHERE d.PUNTUACIÓN1 < 4
ORDER BY d. PUNTUACIÓN1

 LEFT [OUTER] JOIN

4
SELECT d.PUNTUACIÓN1, e.NOMBRE FROM NOTAS d LEFT OUTER JOIN
ESTUDIANTES e ON d.ID_ESTUDIANTE = e.ID_ESTUDIANTE WHERE
d.PUNTUACIÓN1 < 4 ORDER BY d.PUNTUACIÓN1;

 RIGHT [OUTER] JOIN

SELECT d.PUNTUACIÓN1, e.NOMBRE FROM NOTAS d RIGHT OUTER JOIN


ESTUDIANTES e ON d.ID_ESTUDIANTE = e.ID_ESTUDIANTE ORDER BY
d.PUNTUACIÓN1;

5
 FULL [OUTER] JOIN

SELECT d.PUNTUACIÓN1, e.NOMBRE FROM ESTUDIANTES e FULL OUTER JOIN


NOTAS d ON e.ID_ESTUDIANTE =d.ID_ESTUDIANTE ORDER BY
d.PUNTUACIÓN1, e.NOMBRE;

 CROSS JOIN

SELECT d.TITULO, Q_ASIGNATURAS FROM OFERTA_ACADÉMICA e CROSS


JOIN ASIGNATURAS d ORDER BY e.ID_OFERTA, d.ID_ASIGNATURA;

6
 NATURAL JOIN

SELECT d.TITULO, e.Q_ASIGNATURAS FROM OFERTA_ACADÉMICA e


NATURAL JOIN ASIGNATURAS d ORDER BY e.Q_ASIGNATURAS, d.TITULO;

 [INNER] JOIN ... USING

SELECT e.Q_ASIGNATURAS, d.TITULO FROM OFERTA_ACADÉMICA e JOIN


ASIGNATURAS d USING (ID_OFERTA) ORDER BY e.Q_ASIGNATURAS;

7
b. Realizar una consulta avanzada por cada función agregada.

Significado
Función
Cuenta los elementos de un grupo. Se suele indicar un
asterisco (COUNT (*)) en lugar de una expresión, ya que
COUNT(expresión)
la cuenta no varía por indicar una expresión concreta; el
resultado siempre es el número de elementos del grupo.
SUM(expresión) Suma los valores de la expresión
AVG(expresión) Calcula la media aritmética sobre la expresión indicada
MIN(expresión) Mínimo valor que toma la expresión indicada
MAX(expresión) Máximo valor que toma la expresión indicada

Consultar los siguientes ejemplos de referencia:


SQL for Beginners : The WHERE Clause
SQL for Beginners: The ORDER BY Clause
SQL for Beginners: The GROUP BY Clause and HAVING Clause

COUNT(expresión) Cuenta los elementos de un grupo. Se suele indicar un asterisco


(COUNT (*)) en lugar de una expresión, ya que la cuenta no varía por indicar una
expresión concreta; el resultado siempre es el número de elementos del grupo.
SELECT d.TITULO, COUNT(*) AS Q_CRUCE_NOTAS_ESTUDIANTES FROM
NOTAS d JOIN ESTUDIANTES e ON d.ID_ESTUDIANTE = e.ID_ESTUDIANTE
GROUP BY d.TITULO ORDER BY Q_CRUCE_NOTAS_ESTUDIANTES DESC;

SUM(expresión) Suma los valores de la expresión

8
SELECT d.TITULO, SUM(d.PUNTUACIÓN1) AS SUMA_TOTALNOTAS_Y_CRUCE
FROM NOTAS d LEFT JOIN ESTUDIANTES e ON d.ID_ESTUDIANTE =
e.ID_ESTUDIANTE
GROUP BY d.TITULO ORDER BY SUMA_TOTALNOTAS_Y_CRUCE DESC;

AVG(expresión) Calcula la media aritmética sobre la expresión indicada

SELECT d.TITULO, AVG(d.PUNTUACIÓN1) AS


MEDIA_NOTASESTUDIANTES_Y_CRUCE
FROM NOTAS d RIGHT JOIN ESTUDIANTES e ON d.ID_ESTUDIANTE
=Ze.ID_ESTUDIANTE GROUP BY d.TITULO ORDER BY
MEDIA_NOTASESTUDIANTES_Y_CRUCE DESC NULLS LAST;

9
MIN(expresión) Mínimo valor que toma la expresión indicada

SELECT d.TITULO, MIN(d.PUNTUACIÓN1) AS


NOTAMIN_TABLANOTAS_Y_TABLAESTU FROM NOTAS d FULL OUTER JOIN
ESTUDIANTES e ON d.ID_ESTUDIANTE = e.ID_ESTUDIANTE GROUP BY
d.TITULO
ORDER BY NOTAMIN_TABLANOTAS_Y_TABLAESTU DESC NULLS LAST;

MAX(expresión) Máximo valor que toma la expresión indicada


SELECT d.TITULO, MAX(d.PUNTUACIÓN1) AS NOTAMAX_CRUCE FROM
NOTAS d JOIN ESTUDIANTES e USING (ID_ESTUDIANTE) GROUP BY d.TITULO
ORDER BY NOTAMAX_CRUCE DESC NULLS LAST;

10
c. Realizar cinco procedimientos almacenados y cinco disparadores o triggers para
realizar la actividad consultar los ejemplos que se encuentran en el siguiente enlace.
https://oracle-base.com/articles/misc/introduction-to-plsql

TRIGGER 3: CREATE OR REPLACE TRIGGER ESTUDIANTES_MENSAJE AFTER


UPDATE OF NOMBRE ON ESTUDIANTES FOR EACH ROW BEGIN
DBMS_OUTPUT.PUT_LINE('Se estan actualizando los datos de los estudiantes');
END;

11
TRIGGER 4: CREATE OR REPLACE TRIGGER COPIAR_BACKUP_ESTUDIANTES
AFTER DELETE ON ESTUDIANTES FOR EACH ROW BEGIN INSERT INTO
BACKUP_ESTUDIANTES (ID_ESTUDIANTE, NOMBRE, DEPARTAMENTO,
TITULO) VALUES (:old.ID_ESTUDIANTE, :old.NOMBRE, : old.DEPARTAMENTO, :
old.TITULO);END;

12
TRIGGER 5: CREATE OR REPLACE TRIGGER SEGURIDAD_TABLA BEFORE
DELETE ON TABLA_PRUEBA FOR EACH ROW BEGIN Raise_Application_Error(-
20099, 'No se puede borrar esta tabla.');END;

13
Link de acceso a Google Drive
https://drive.google.com/drive/folders/1hCR1B2pEbJgR3xUVlbl4h3PEcATsEqCF?usp=s
haring

14
CONCLUSIÓN

Es evidente que a través de los disparadores y Joins se gestionan de forma más sistemática
los datos de las diversas tablas de una base, estos proporcionan dinamismo a la misma y
facilitan al usuario final el acceso a la información completa de forma más efectiva.

15
BIBLIOGRAFÍA

Camuña Rodríguez, J. (2014) Lenguajes de definición y modificación de datos SQL


(UF1472). Madrid, ESPAÑA: IC Editorial. Pág. 59 -62 Recuperado
dehttp://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?ppg=65&docID=4184
070&tm=1531496292249

Camuña Rodríguez, J. (2014) Lenguajes de definición y modificación de datos SQL


(UF1472). Madrid, ESPAÑA: IC Editorial. Pág. 59 -62 Recuperado
dehttp://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?ppg=65&docID=4184
070&tm=1531496292249

Quintana, G., M., M., & Aliaga, J. l.(2010). Aprende SQL. Castellón de la Plana, ES:
Universitat Jaume I. Servei de Comunicació iPublicacions. Recuperado
de http://bibliotecavirtual.unad.edu.co:2460/lib/unadsp/reader.action?ppg=112&docID=321
8178&tm=1531497265422

16

S-ar putea să vă placă și