BASE DE DATOS SQL ISFT 132
BASE DE DATOS
VIEW
STORE
PROCEDURE
TRIGGERS
¿QUÉ ES UNA VIEW?
◻Una view es una tabla virtual que muestra un
recorte de los datos que están almacenados en
otras tablas. ◻ Una view es un subconjunto de una
base de datos y se basa en una consulta que se
ejecuta.
◻ Sintaxis:
CREATE VIEW nombre_vista AS consulta_SELECT
VIEWS CARACTERÍSTICAS
◻ Privacidad de la información: Mostramos a los
usuarios con acceso a la vista únicamente la
información que creamos conveniente.
◻ Optimización del rendimiento de la base de
datos: Podemos crear de querys sobre vistas
complejas. ◻ Tablas de prueba: Para los
desarrolladores que no
tengan entornos de preproducción es muy útil
usar las vistas sin riesgo de perder información.
CREAMOS UNA VIEW
STORE PROCEDURE
◻ Conjunto de órdenes SQL agrupadas bajo el
nombre del procedimiento que se almacenan en la
base de datos. ◻ Pueden recibir y devolver
parámetros.
◻ Pueden manejar tablas, ejecutando consultas.
◻ Mejoran el rendimiento.
◻ Son reutilizables.
◻ Aumentan la seguridad, porque permite otorgar
privilegios y permisos para su ejecución.
STORE PROCEDURE
◻ Sintaxis
DELIMITER $$
CREATE PROCEDURE nombre (modo identificador tipo)
BEGIN
consultas sql;
END$$
DELIMITER ;
Modo: es opcional, puede ser [ IN,OUT,
INOUT ] Identificador: nombre del
parametro
Tipo: cualquier tipo de dato soportado por MySQL
DELIMITER
◻ Mysql toma como delimitador de sentencias
SQL el punto y coma por defecto.
◻ Cada vez que encuentra un punto y coma
intenta ejecutar la orden SQL, para evitarlo
se indica DELIMITER.
STORE PROCEDURE
1. En SQL creamos un procedimiento sin
parámetro
2.
Actualizamos nuestra base de datos
3. Ejecutamos el procedimiento con call listado_producto
STORE PROCEDURE
STORE PROCEDURE
◻ Procedimiento con parámetro
◻ CALL listado_producto_id(2)
STORE PROCEDURE
◻ INSERT
◻ CALL agregar_marca(11,”Samsung”);
STORE PROCEDURE
◻ UPDATE
◻ CALL modificar_marca(12,“EPSON")
¿QUÉ ES UN TRIGGER?
◻ Un trigger es un objeto de una base de datos que
está asociado a una tabla, y que será activado
cuando la acción asociada tiene lugar.
◻ El trigger se puede ejecutar cuando tiene lugar
una acción INSERT, UPDATE o DELETE,
siendo posible su ejecución tanto antes como
después del evento.
CREAMOS UNA TABLA ARTICULO
CREATE TABLE articulo (
id INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(20) NOT NULL,
costo FLOAT NOT NULL DEFAULT 0.0,
precio FLOAT NOT NULL DEFAULT 0.0,
PRIMARY KEY(id)
);
CREAMOS UN TRIGGER
DELIMITER $$
CREATE TRIGGER
'actualizarPrecio' BEFORE
UPDATE ON 'articulo'
FOR EACH ROW
BEGIN
IF [Link] <> [Link]
THEN SET [Link] =
[Link] * 2; END IF ;
END$$
DELIMITER ;
¿CÓMO USAR UN TRIGGER?
UPDATE articulo SET costo=5 WHERE id=1;
El motor de la base de datos lo invocará
automáticamente cada vez que se actualice un
registro de la tabla de articulo. Para comprobarlo
ejecutamos:
SELECTE * FROM articulo;