Académique Documents
Professionnel Documents
Culture Documents
GRUPO
301125A_474
CEAD Tunja
2018
1
INTRODUCCIÓN
Actualmente la el almacenamiento y organización de la información ha sido una gran necesidad
y desafío del mercado
las bases de datos han representado la manera de satisfacer estas necesidades básicas
como el almacenamiento y organización de la misma
sin embargo esto ha requerido de una curva de aprendizaje que permita el diseño e integración a
cualquier necesidad, en este curso obtendremos los conocimientos para comprender estas bases
de datos y ser capaces de diseñarlas y trabajaras
2
Tabla Contenido
Tabla Contenido .......................................................................................... ¡Error! Marcador no definido.
Objetivos ....................................................................................................................................................... 4
Objetivo General ....................................................................................................................................... 4
Objetivos Específicos................................................................................................................................ 4
Actividades por desarrollar ........................................................................................................................... 5
b. Realizar una consulta avanzada por cada función agregada. ................................................................ 8
Consulta con la función count ............................................................................................................... 8
Creando el primer Procedimiento ....................................................................................................... 10
Segundo procedimiento....................................................................................................................... 11
Tercer procedimiento .......................................................................................................................... 12
Cuarto procedimiento.............................................................................................................................. 13
Quinto Procedimiento ......................................................................................................................... 14
Crear 5 triggers ....................................................................................................................................... 14
Primer trigger .......................................................................................................................................... 15
Segundo Trigger.................................................................................................................................. 15
Tercer Trigger ......................................................................................................................................... 16
Cuarto Trigger ......................................................................................................................................... 17
Link Carpeta de Drive ................................................................................................................................. 18
CONCLUSIONES ...................................................................................................................................... 19
3
Objetivos
Objetivo General
4
Actividades por desarrollar
Ok
a. Realizar una consulta por cada join, cada enlace lo lleva aun ejemplo que puede tomar de
referencia para el desarrollo de la actividad:
5
• RIGHT [OUTER] JOIN
Este Tipo de Consulta no se encuentra soportada por MySQL, por lo que no puedo mostrar ejemplo, esta
consulta es y en MySQL se puede realizar como una unión entre el left join y Right Join
• CROSS JOIN
6
• NATURAL JOIN
El natural JOIN nos permite unir 2 tablas por el campo en común aun sin indicarlo explícitamente
Permite unir 2 tablas mediante un campo en común de las tablas en este caso se debe especificar
7
b. Realizar una consulta avanzada por cada función agregada.
Función Significado
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
b. Realizar una consulta avanzada por cada función agregada.
Consulta con la función count
Ejemplo: Contar el número de libros que posee la tabla libros.
La consulta sql queda de la siguiente manera:
8
Consulta con la función sum
Ejemplo: Determinar el número de pedidos realizados.
La consulta sql queda de la siguiente manera:
9
Consulta con la función max
Ejemplo: Determinar el libro o libros que más ejemplares tiene en la tienda.
La consulta sql queda de la siguiente manera:
10
CALL libroxid(2)
Segundo procedimiento
DELIMITER //
CREATE PROCEDURE librosxpedido(in id INT)
BEGIN
11
SELECT * FROM libro l INNER JOIN detalle_pedido dp ON dp.id_libro=l.id WHERE
dp.id_pedido=id;
END//
DELIMITER ;
CALL librosxpedido(2);
Tercer procedimiento
DELIMITER //
CREATE PROCEDURE pedidoxcliente(in id INT)
BEGIN
SELECT * FROM pedido p INNER JOIN cliente c ON p.id_cliente=c.id WHERE p.id_cliente=id;
END//
DELIMITER ;
12
Cuarto procedimiento
DELIMITER //
DELIMITER ;
CALL libroxisbn('0-385-50420-1');
13
Quinto Procedimiento
CALL libroxcliente(4);
Crear 5 triggers
14
Primer trigger
CREATE TRIGGER validacantpedido BEFORE INSERT ON detalle_pedido FOR EACH ROW BEGIN
IF NEW.cantidad < 0 THEN SET NEW.cantidad=0; END IF; END
INSERT INTO `libreria`.`detalle_pedido` (`id`, `cantidad`, `id_libro`, `id_pedido`) VALUES ('10', '-1',
'1', '1');
Segundo Trigger
DELIMITER #
CREATE TRIGGER validadetpedido BEFORE INSERT ON detalle_pedido
FOR EACH ROW BEGIN
IF NEW.id_cliente < 1 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = "No Se referencio Libro ni Pedido";
END IF;
END #
DELIMITER ;
15
INSERT INTO `libreria`.`detalle_pedido` (`id`, `cantidad`, `id_libro`, `id_pedido`) VALUES ('11', '-1', '-
1', '0')
Aunque rebota primero el error de mysql debido a que la clave debe existir el control funciona
Tercer Trigger
Creamos un trigger que va a estar asociada a la tabla libros con la acción INSERTAR de tipo
AFTER
Y en la nueva tabla queda registrado este nuevo libro y la fecha en que fue insertado
16
Cuarto Trigger
Creación de Tiggers donde resta el stock del libro en el momento que se vende.
17
Link Carpeta de Drive
https://drive.google.com/open?id=1JRCQxGgNv27rM6i_yQnXRzJ1QBgNaijo
18
CONCLUSIONES
• Con este ejercicio es posible reconocer la amplitud y plenitud del lenguaje en gestión de bases de
datos
• Se repasan muchas de las sentencias necesarias para la gestión de los datos
19
REFERENCIAS BIBLIOGRÁFICAS
•https://bibliotecavirtual.unad.edu.co:2538/lib/unadsp/reader.action?ppg=77&docID=3195347&t
m=1536025429841
• https://oracle-base.com/articles/misc/sql-for-beginners-joins#inner-join-on
• https://dev.mysql.com/doc/
20