MySql5.0 et versions ultérieures prennent en charge les procédures stockées. J'ai récemment eu le temps d'étudier cela.
Format:
Nom du processus CREATE PROCEDURE ([paramètres du processus[,...]]) |
Nom de la fonction CREATE FUNCTION ([paramètres de la fonction[,...]]) |
Paramètres de procédure :
[ IN OUT | INOUT ] Nom du paramètre Type de paramètre
Paramètres de fonction :
Nom du paramètre Type de paramètre
Type de retour :
Type de données MYSQL valide
Caractéristiques :
LANGAGE SQL |
Corps de procédure/corps de fonction : Le format est le suivant :
COMMENCER |
Je ne me soucie pas ici des fonctionnalités propriétaires. Celles-ci sont incompatibles avec la spécification SQL, donc le contenu pertinent de la caractéristique (fonctionnalité) n'est pas pris en compte.
//
Il y a plusieurs points à noter pendant le processus de développement :
1. Commentaires de procédure stockée : MySQL prend en charge l'utilisation de commentaires -- ou /**/, où le premier est un commentaire de ligne et le second est un commentaire de segment
2. Les variables sont d'abord déclarées avec declare. Les variables temporaires peuvent être directement modifiées avec le préfixe @ pour référence.
3. Lors de l'édition directement à l'aide du gestionnaire d'administrateur MySQL, vous pouvez
cependant
saisir directement le texte de fonction suivant :dans le script, comme MySQL par défaut est " ; » est le délimiteur, alors chaque phrase du corps de la procédure
est compilée par MySQL en tant que procédure stockée et le processus de compilation signalera une erreur ; par conséquent, le mot clé DELIMITER doit être utilisé pour déclarer à l'avance que
le délimiteur sera restauré lorsque le délimiteur de segment actuel sera épuisé. Comme indiqué ci-dessous :
DÉLIMITEUR $$ |
4. MySQL prend en charge un grand nombre de fonctions intégrées, dont certaines sont cohérentes avec les grandes bases de données commerciales telles que Oracle, Informix, Sybase, etc., mais il existe également des fonctions avec des noms incohérents mais des fonctions cohérentes ou d'autres avec des fonctions cohérentes ; des noms mais des fonctions différentes. Ceci est particulièrement utile pour les administrateurs de base de données qui ont quitté le développement de bases de données et qui doivent y prêter attention.
5. Débogage de procédures ou de fonctions stockées : Je n'ai pas encore étudié les différents kits d'outils fournis par MySQL, et je ne suis pas sûr qu'il fournisse des outils de débogage. Cependant, les erreurs de compilation sont relativement faciles à trouver quant au débogage des processus métiers, vous pouvez le faire. utiliser une comparaison La méthode stupide consiste à créer une table de débogage et à insérer un enregistrement à chaque point du processus dans le corps du package pour observer le processus d'exécution du programme. C'est aussi une méthode plus pratique et plus stupide. ^_^
Voici deux exemples qui fournissent un algorithme de chiffrement de chaîne. Chaque fois que vous l'appelez avec les mêmes paramètres d'entrée, vous obtiendrez un résultat de chiffrement différent.
L'algorithme est relativement simple et peu puissant. Ils sont mis en œuvre sous la forme de fonctions et de procédures comme suit :
(1) Fonction
par exemple :
/**/ |
CREATE FUNCTION fun_addmm(inpass varchar(10)) RETURNS varchar(11)
BEGIN
déclarer string_in varchar(39)
;déclarer string_out
varchar(78)
;déclarer outpass varchar(30) default ';
déclarer len tinyint;
/*déclare i tinyint;*/
(2) Processus
CRÉER UNE PROCÉDURE `pro_addmm`(IN inpass varchar(10),OUT outpass varchar(11)) |
Les résultats d'exécution sont les suivants :
mysql> appelez pro_addmm('zhouys',@a); |
L'algorithme de cryptage présente plusieurs faiblesses :
1. Il ne prend pas en charge les majuscules et les minuscules.
2. Il ne prend pas en charge le chinois.
3. La force de cryptage n'est pas suffisante
. Les personnes intéressées peuvent étudier comment écrire la fonction de décryptage, donc je vais gagner. Je n’entrerai pas dans les détails ici.