Curso de SQL en MySQL, Capítulo 12: En este capítulo aprenderás a realizar Vistas, Procedimientos Almacenados y Trigges en MySQL.
Base de Datos (tiendita): https://mega.nz/#!yYFnjKZZ!pztvF5iMmXsgjo6_lhP5GmQ2kSqF1yu6GRC3if83R8Q
Vistas
Las vistas son como tablas virtuales que contienen los resultados de una consulta, pero solo se guarda la consulta no los datos.
Para crear una vista utilizamos la sentencia CREATE VIEW, para modificarla ALTER VIEW, para eliminarla DROP VIEW y para seleccionarla o mostrar los datos se utiliza SELECT FROM como a una tabla:
-- Crear Vistas CREATE VIEW nombre_vista AS SELECT * FROM tabla -- Ejemplo CREATE VIEW vista_producto_categoria AS SELECT p.idProducto, p.nombre, p.precio, p.existencia, c.nombre AS categoria FROM productos AS p INNER JOIN categoria AS c ON p.idCategoria=c.id; -- Consultar Vistas SELECT * FROM vista_producto_categoria; -- Modificar Vista ALTER VIEW vista_producto_categoria AS SELECT p.idProducto, p.nombre, p.precio, p.existencia, p.fecha_alta, c.nombre AS categoria FROM productos AS p INNER JOIN categoria AS c ON p.idCategoria=c.id; -- Eliminar Vista DROP VIEW vista_producto_categoria;
Procedimientos Almacenados
Un procedimiento es un conjunto de instrucciones que se guardan en el servidor para un posterior uso, ya que se ejecutarán frecuentemente.
-- Crear procedimiento almacenado que seleccione todos los productos y reciba un parámetro para filtrar por categoria. DELIMITER // CREATE PROCEDURE productosXcategoria (IN id INT) BEGIN SELECT * FROM productos WHERE idCategoria=id; END// DELIMITER ; -- Ejecutar Procedimiento Almacenado CALL productosXcategoria(2); -- Consultar como se creó un Procedimiento Almacenado SHOW CREATE procedure productosXcategoria; -- Eliminar un Procedimiento almacenado DROP PROCEDURE IF EXISTS productosXcategoria;
Triggers
Un Trigger es un programa almacenado creado para ejecutarse automáticamente cuando ocurra un evento en la base de datos como INSERT, UPDATE y/o DELETE.
-- Crear Trigger que se ejecute antes de cualquier inserción de la tabla categoria e Inserte los mismo datos de la tabla categoria a la tabla temp DELIMITER | CREATE TRIGGER tempTrigger BEFORE INSERT ON categoria FOR EACH ROW BEGIN INSERT INTO temp(nombre) VALUE( NEW.nombre); END | -- Mostrar como se creó el Trigger SHOW CREATE TRIGGER tempTrigger; -- Mostrar todos los Triggers que existen en la Base de Datos SHOW TRIGGERS; -- Eliminar Trigger DROP TRIGGER tempTrigger;
Tutorial en Vídeo: