Transacciones Vistas Procedimientos y Funciones

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 14

Transacciones

Instrucciones de control de transacciones:

START TRANSACTION o BEGIN: Inicia una nueva transacción.

COMMIT: Confirma la transacción actual, haciendo


permanentes sus cambios.

ROLLBACK: Revierte la transacción actual, cancelando sus


cambios.

SET autocommit: Deshabilita o habilita el modo de autocommit


predeterminado para la sesión actual.
Modo autocommit:

MySQL, por defecto, ejecuta en modo autocommit habilitado.


Cada instrucción es atómica (se comporta como si estuviera
rodeada por START TRANSACTION y COMMIT).
No se puede usar ROLLBACK para deshacer una instrucción en
modo autocommit.
Transacciones explícitas:
Desactivar el modo autocommit implícitamente usando START
TRANSACTION:
 El modo autocommit permanece desactivado hasta que la transacción
termina con COMMIT o ROLLBACK.

START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE
type=1;
UPDATE table2 SET summary=@A WHERE type=1;
COMMIT;
Vistas
Creación de Vistas:
• La instrucción CREATE VIEW crea una nueva vista.
• Ejemplo:
• CREATE VIEW view_name AS SELECT ...;
• Alteración y Eliminación de Vistas:
• ALTER VIEW: Modifica la definición de una vista.
• DROP VIEW: Elimina una vista existente.
Origen de las Vistas:
• Una vista se puede crear a partir de diversos tipos de instrucciones
SELECT.
• Puede referirse a tablas base o a otras vistas.
• Puede utilizar JOIN, UNION y subconsultas.
Procedimientos y funciones
Funciones y procedimientos
• Para automatizar tareas y realizar cálculos complejos.
• Funciones y procedimientos en MySQL son bloques de código
ejecutables desde consultas SQL o programas externos.Útiles para
automatizar tareas repetitivas y realizar cálculos complejos.
Procedimientos en MySQL
• Conjunto de instrucciones almacenadas en el servidor.
• Simplifican el trabajo de los desarrolladores y mejoran el
rendimiento.
• Ventajas:
• eficiencia, rapidez, seguridad, y reducción de tráfico.
• Aumenta la seguridad al conceder permisos específicos para la
ejecución de procedimientos.
• Menos información viaja entre la base de datos y el servidor web.
• Desventajas: complejidad de programación, dificultad en la
depuración, posible sobrecarga del servidor.
Sintaxis de MySQL CREATE PROCEDURE
• Procedimientos deben tener un nombre, parámetros opcionales,
características y una definición.
CREATE PROCEDURE nombre (parámetros)
[características] definición

CREATE PROCEDURE proc_sacar_clientes_tipo (IN tipoCliente INT)


BEGIN
SELECT * FROM clientes WHERE tipo = tipoCliente;
END

CALL proc_sacar_clientes_tipo(34);
Crear funciones en MySql
DELIMITER //
CREATE FUNCTION nombreFuncion() RETURNS tipoRetorno
BEGIN
-- Cuerpo de la función
END
//

CREATE FUNCTION holaMundo() RETURNS VARCHAR(20)


BEGIN
RETURN 'HolaMundo';
END

SELECT holaMundo();
Variables y parametros
CREATE FUNCTION holaMundo() RETURNS VARCHAR(30)
BEGIN
DECLARE salida VARCHAR(30) DEFAULT 'Hola mundo';
SET salida = 'Hola mundo con variables';
RETURN salida;
END

CREATE FUNCTION holaMundo(entrada VARCHAR(20)) RETURNS VARCHAR(20)


BEGIN
DECLARE salida VARCHAR(20);
SET salida = entrada;
RETURN salida;
END
Ejemplo avanzado
CREATE FUNCTION divide(dividendo INT, divisor INT) RETURNS INT
BEGIN
DECLARE aux INT;
DECLARE contador INT;
DECLARE resto INT;
SET contador = 0;
SET aux = 0;
WHILE (aux + divisor) <= dividendo DO
SET aux = aux + divisor;
SET contador = contador + 1;
END WHILE;
SET resto = dividendo - aux;
RETURN contador;
END

SELECT divide(20, 2);

También podría gustarte