MySql5.0 y versiones posteriores admiten procedimientos almacenados. Recientemente tuve tiempo de estudiar esto.
Formato:
CREAR PROCEDIMIENTO nombre del proceso ([parámetros del proceso[,...]]) |
CREAR FUNCIÓN nombre de la función ([parámetros de función[,...]]) |
Parámetros del procedimiento:
[IN | OUT | INOUT ] Nombre del parámetro Tipo de parámetro
Parámetros de función:
Nombre del parámetro Tipo de parámetro
Tipo de retorno:
Tipo de datos MYSQL válido
Características:
IDIOMA SQL |
Cuerpo del procedimiento/cuerpo de la función: El formato es el siguiente:
COMENZAR |
Aquí no me importan las características patentadas. Estas son incompatibles con la especificación SQL, por lo que no se considera el contenido relevante de la característica.
//
Hay varios puntos a tener en cuenta durante el proceso de desarrollo:
1. Comentarios de procedimiento almacenado: MySQL admite el uso de comentarios -- o /**/, donde el primero es un comentario de línea y el segundo es un comentario de segmento
2. Las variables se declaran primero con declare. Las variables temporales se pueden modificar directamente con el prefijo @ como referencia.
3. Sin embargo, al editar directamente usando el administrador de MySQL, puede ingresar directamente el siguiente texto de función
si importa automáticamente los procedimientos o funciones almacenados
.en el script, debido a que MySQL por defecto es " ";" es el delimitador, MySQL compila cada oración del cuerpo del procedimiento
como un procedimiento almacenado y el proceso de compilación informará un error; por lo tanto, se debe usar la palabra clave DELIMITER para Declare de antemano que
el delimitador se restaurará cuando se agote el delimitador de segmento actual. Como se muestra a continuación:
DELIMITADOR $$ |
4. MySQL admite una gran cantidad de funciones integradas, algunas de las cuales son consistentes con grandes bases de datos comerciales como Oracle, Informix, Sybase, etc., pero también hay algunas funciones con nombres inconsistentes pero funciones consistentes o algunas con consistentes; nombres pero funciones diferentes. Esto es especialmente útil para los administradores de bases de datos que se han transferido desde el desarrollo de bases de datos y deben prestarles atención.
5. Depuración de funciones o procedimientos almacenados: todavía no he estudiado los diversos kits de herramientas proporcionados por MySQL y no estoy seguro de si proporciona herramientas de depuración. Sin embargo, los errores de compilación son relativamente fáciles de encontrar en cuanto a la depuración de procesos comerciales. usar una comparación La forma más estúpida es crear una tabla de depuración e insertar un registro en cada punto del proceso en el cuerpo del paquete para observar el proceso de ejecución del programa. Este también es un método más conveniente y estúpido. ^_^
Los siguientes son dos ejemplos que proporcionan un algoritmo de cifrado de cadenas. Cada vez que lo llame con los mismos parámetros de entrada, obtendrá un resultado de cifrado diferente.
El algoritmo es relativamente simple y no sólido. Se implementan en forma de funciones y procedimientos de la siguiente manera:
(1) Función,
por ejemplo:
/**/ |
CREAR FUNCIÓN fun_addmm(inpass varchar(10)) DEVUELVE varchar(11)
COMENZAR
declarar string_in varchar(39);
declarar string_out varchar(78);
declarar offset tinyint(2);
declarar
outpass varchar(30) default ';
/*declarar i tinyint;*/
(2) Proceso
CREAR PROCEDIMIENTO `pro_addmm`(IN pass varchar(10),OUT pass varchar(11)) |
Los resultados de la ejecución son los siguientes:
mysql> llamar a pro_addmm('zhouys',@a); |
El algoritmo de cifrado tiene varias debilidades:
1. No admite mayúsculas ni minúsculas
. 2. No admite chino.
3. La potencia del cifrado no es suficiente
. Las personas interesadas pueden estudiar cómo escribir la función de descifrado, así que ganaré. No entraré en detalles aquí.