-
CREAR PROCEDIMIENTO
Cree un procedimiento almacenado que almacene una tabla en una base de datos MySQL.
CREAR FUNCIÓN
Cree una función definida por el usuario, especialmente un procedimiento almacenado que devuelva datos.
ALTERAR EL PROCEDIMIENTO
Los cambios en un procedimiento almacenado preespecificado creado con CREATE PROCEDURE no afectan los procedimientos almacenados relacionados ni la funcionalidad almacenada. .
ALTERAR FUNCIÓN
Los cambios a un procedimiento almacenado preespecificado creado con CREATE FUNCTION no afectan los procedimientos almacenados relacionados ni las funciones almacenadas. .
PROCEDIMIENTO DE BAJA
Elimine uno o más procedimientos almacenados de una tabla MySQL.
FUNCIÓN DE GOTA
Eliminar una o más funciones almacenadas de una tabla MySQL.
MOSTRAR CREAR PROCEDIMIENTO
Devuelve el texto de un procedimiento almacenado preespecificado creado mediante CREATE PROCEDURE. Esta declaración es una extensión de MySQL a la especificación SQL:2003.
MOSTRAR CREAR FUNCIÓN
Devuelve el texto de un procedimiento almacenado preespecificado creado utilizando CREATE FUNCTION. Esta declaración es una extensión de MySQL a la especificación SQL:2003.
MOSTRAR ESTADO DEL PROCEDIMIENTO
Devuelve las características de un procedimiento almacenado preespecificado, incluido el nombre, tipo, creador, fecha de creación y fecha de modificación. Esta declaración es una extensión de MySQL a la especificación SQL:2003.
MOSTRAR ESTADO DE FUNCIÓN
Devuelve las características de una función almacenada especificada previamente, incluido el nombre, el tipo, el creador, la fecha de creación y la fecha de cambio. Esta declaración es una extensión de MySQL a la especificación SQL:2003.
LLAMAR
Llame a un procedimiento almacenado preespecificado creado usando CREATE PROCEDURE.
COMENZAR... FINALIZAR
Contiene un conjunto de múltiples declaraciones ejecutadas.
DECLARAR
Se utiliza para especificar variables locales, entornos, procesadores y punteros.
COLOCAR
Se utiliza para cambiar los valores de las variables del servidor local y global.
SELECCIONAR... EN
Columna utilizada para almacenar variables de visualización.
ABIERTO
Se utiliza para abrir un puntero.
BUSCAR
Utilice un puntero específico para obtener la siguiente columna.
CERCA
Se utiliza para cerrar y abrir el puntero.
SI
Una declaración if-then-else-end if.
CASO...CUANDO
La estructura de una declaración de caso.
BUCLE
Una estructura de bucle simple; se puede salir usando la declaración LEAVE.
DEJAR
Se utiliza para salir de declaraciones IF, CASE, LOOP, REPEAT y WHILE.
ITERAR
Se utiliza para reiniciar el ciclo.
REPETIR
El bucle se prueba al final.
MIENTRAS
Un bucle que se prueba al principio.
DEVOLUCIONES
Devuelve el valor de un procedimiento almacenado.
MySQL 5.0 admite declaraciones de procedimientos almacenados.
1. Cree un procedimiento almacenado
1.Gramática básica:
crear procedimiento sp_name()
comenzar
.........
fin
2.Paso de parámetros
2. Llame al procedimiento almacenado.
1.Sintaxis básica: llamar a sp_name()
Nota: Se deben agregar paréntesis después del nombre del procedimiento almacenado, incluso si el procedimiento almacenado no tiene parámetros pasados.
3. Eliminar procedimientos almacenados
1.Gramática básica:
soltar procedimiento sp_name//
2. Precauciones
(1) No puede eliminar otro procedimiento almacenado en un procedimiento almacenado, solo puede llamar a otro procedimiento almacenado
4. Bloques, condiciones, bucles.
1. Definición de bloque, de uso común
comenzar
...
fin;
También puedes darle un alias al bloque, como por ejemplo:
etiqueta:comenzar
...........
etiqueta final;
Puede usar dejar etiqueta; para saltar fuera del bloque y ejecutar el código después del bloque.
2.Declaración condicional
si condición entonces
declaración
demás
declaración
terminar si;
3. Declaración de bucle
(1) bucle while
[etiqueta:] MIENTRAS expresión DO
declaraciones
FINALIZAR MIENTRAS [etiqueta];
(2).bucle bucle
[etiqueta:] BUCLE
declaraciones
FINALIZAR BUCLE [etiqueta];
(3).repetir hasta el bucle
[etiqueta:] REPETIR
declaraciones
HASTA expresión
FINALIZAR REPETIR [etiqueta];
5. Otros comandos de uso común
1.mostrar el estado del procedimiento
Muestra la información básica de todos los procedimientos almacenados en la base de datos, incluida la base de datos a la que pertenece, el nombre del procedimiento almacenado, hora de creación, etc.
2.mostrar el procedimiento de creación sp_name
Sintaxis de creación de procedimientos almacenados:
CREAR PROCEDIMIENTO nombre_procedimiento ([parámetro[,...])
[IDIOMA SQL]
[ [NO] DETERMINISTA ]
[{CONTIENE SQL|MODIFICA DATOS SQL|LEE DATOS SQL|NO SQL}]
[SEGURIDAD SQL {DEFINIDOR|INVOCADOR}]
[COMENTARIO cadena_comentario]
declaraciones_procedimiento
Puede usar MOSTRAR ESTADO DE PROCEDIMIENTO o MOSTRAR CREAR PROCEDIMIENTO para ver la información del procedimiento almacenado. Además, la tabla del sistema INFORMACIÓN_SCHEMA.ROUTINES también contiene información sobre los procedimientos almacenados. De manera similar, las funciones también se pueden ver de la misma manera (MOSTRAR ESTADO DE FUNCIÓN).
Creación de funciones
CREAR FUNCIÓN nombre_función (parámetro[,...])
DEVUELVE tipo de datos
[IDIOMA SQL]
[ [NO] DETERMINISTA ]
[{CONTIENE SQL | NO SQL | MODIFICA DATOS SQL | LEE DATOS SQL}]
[SEGURIDAD SQL {DEFINIDOR|INVOCADOR}]
[COMENTARIO cadena_comentario]
Cuerpo de la declaración
Las funciones son básicamente las mismas que las de los procedimientos almacenados. Las principales diferencias son:
1. Usar RETURNS para especificar el tipo de devolución
2. La función debe devolver un valor y usar RETURN en el cuerpo de la declaración (nota: use RETURNS para especificar el tipo de retorno y RETURN para el valor de retorno)
3. Los parámetros no distinguen entre IN y OUT, todos son de tipo IN.
ejemplo:
CREAR FUNCIÓN cust_status(in_status CHAR(1))
DEVUELVE VARCHAR(20)
COMENZAR DECLARAR long_status VARCHAR(20);
IF in_status="O" ENTONCES SET long_status="Atrasado";
ELSEIF in_status="U" ENTONCES SET long_status="Actualizado";
ELSEIF in_status="N" ENTONCES SET long_status="new";
FINALIZAR SI;
RETORNO(estado_largo);
FIN;
Llamar:
SELECCIONAR cust_status('O');
desencadenar
CREAR [DEFINER={usuario|CURRENT_USER}] TRIGGER nombre_disparador
{ANTES|DESPUÉS} {ACTUALIZAR|INSERTAR|ELIMINAR}
EN nombre_tabla
PARA CADA FILA
declaraciones_activadoras
Significado: La operación trigger_statements se activa antes (antes) o después (después) de que se realicen las operaciones de actualización, inserción y eliminación en la tabla nombre_tabla.
ejemplo:
mysql> CREAR DISPARADOR account_balance_au
DESPUÉS DE LA ACTUALIZACIÓN EN account_balance PARA CADA FILA
COMENZAR
DECLARAR INT ficticio;
SI NUEVO.saldo<0 ENTONCES
ESTABLECER NUEVO.equilibrio=NULL;
FINALIZAR SI;
FIN
El disparador anterior significa: después de actualizar la tabla balance_cuenta, si el saldo del valor actualizado es menor que 0, cámbielo a NULL.
Nota: Si es OLD.balance, significa el valor original antes de la actualización.