Icono del sitio Códigos de Programación

Curso MySQL 12: Vistas, Procedimientos Almacenados y Triggers

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:

Salir de la versión móvil