Maison  >  Article  >  base de données  >  fonction de procédure mysql

fonction de procédure mysql

王林
王林original
2023-05-08 19:38:36846parcourir

MySQL est un système de gestion de base de données relationnelle couramment utilisé, qui fournit une variété de fonctions et de procédures aux utilisateurs. Parmi eux, les procédures et fonctions MySQL sont des programmes écrits sur le serveur de base de données. Dans cet article, nous approfondirons les connaissances de base, l'utilisation et les exemples des fonctions de procédure MySQL.

1. Connaissance de base des fonctions des procédures MySQL

  1. Procédures MySQL

Les procédures MySQL sont un ensemble d'instructions SQL qui peuvent accepter des paramètres et effectuer certaines opérations sur les paramètres d'entrée. Les procédures MySQL peuvent être considérées comme des instructions SQL encapsulées. Elles peuvent exécuter plusieurs instructions SQL pour réaliser des fonctions spécifiques.

Le processus MySQL présente les caractéristiques suivantes :

(1) Le processus MySQL est exécuté côté serveur.

(2) Les procédures MySQL peuvent recevoir des paramètres d'entrée et renvoyer des paramètres de sortie.

(3) Les procédures MySQL peuvent créer et mettre à jour des tables, insérer et mettre à jour des données dans la base de données.

(4) Les procédures MySQL peuvent contenir des instructions de flux de contrôle, des boucles, des branches et des gestionnaires d'exceptions.

(5) Le processus MySQL prend en charge les fonctions et sous-processus définis par l'utilisateur.

  1. Fonctions MySQL

Les fonctions MySQL sont un ensemble d'instructions de requête unique définies dans MySQL. Ils acceptent un ou plusieurs paramètres d’entrée et renvoient une ou plusieurs valeurs. Les fonctions peuvent être utilisées pour calculer, comparer, transformer et manipuler des données.

Les fonctions MySQL ont les caractéristiques suivantes :

(1) Les fonctions MySQL sont exécutées côté serveur.

(2) La fonction MySQL peut recevoir des paramètres d'entrée et renvoyer des paramètres de sortie.

(3) Les fonctions MySQL ne peuvent renvoyer qu'une seule valeur et ne peuvent pas effectuer d'opérations telles que l'insertion, la mise à jour et la suppression.

(4) Les fonctions MySQL ne peuvent pas contenir d'instructions de flux de contrôle, de boucles, de branches et de gestionnaires d'exceptions.

(5) La fonction MySQL prend en charge les fonctions et sous-fonctions définies par l'utilisateur.

2. Comment utiliser les fonctions de procédure MySQL

Dans MySQL, les utilisateurs peuvent utiliser les instructions CREATE PROCEDURE et CREATE FUNCTION pour créer des procédures et des fonctions.

  1. Créer une procédure MySQL

Voici la syntaxe pour créer une procédure MySQL :

CREATE PROCEDURE nom_procédure ([paramètres])
BEGIN

  [SQL statements]

END;

où, nom_procédure est le nom de la procédure, et paramètres est la liste des paramètres de la procédure, les instructions SQL sont des instructions MySQL à exécuter pendant le processus.

Par exemple, nous créons une procédure MySQL simple qui reçoit deux paramètres d'entrée et renvoie leur somme :

CREATE PROCEDURE add(IN a INT, IN b INT)
BEGIN

  SELECT a+b;

END;

  1. Create MySQL function

Voici la syntaxe pour créer une fonction MySQL :

CREATE FUNCTION function_name([parameters]) RETURNS data_type
BEGIN

  [SQL statements]

END;

où function_name est le nom de la fonction, settings est la liste des paramètres de la fonction , data_type est le type de données renvoyé par la fonction et les instructions SQL sont les instructions MySQL à exécuter dans la fonction.

Par exemple, nous créons une fonction MySQL simple qui reçoit un paramètre d'entrée et renvoie son carré :

CREATE FUNCTION square(x INT) RETURNS INT
BEGIN

  RETURN x*x;

END;

3. Exemples de fonctions procédurales MySQL

    .
  1. Exemple de procédure MySQL

Ce qui suit est un exemple de procédure MySQL simple qui affiche chaque nom de table et nombre de lignes dans la base de données actuelle sur la console :

CREATE PROCEDURE table_count()
BEGIN

  DECLARE done INT DEFAULT FALSE;
  DECLARE t_name CHAR(32);
  DECLARE t_count INT;
  DECLARE cur CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE();
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
  OPEN cur;
  repeat
        FETCH cur INTO t_name;
        IF NOT done THEN
              SET @sql = CONCAT('SELECT COUNT(*) INTO "', t_name, '_count" FROM ', t_name);
              PREPARE stmt FROM @sql;
              EXECUTE stmt;
              DEALLOCATE PREPARE stmt;
              SET @out = CONCAT(t_name, ': ', t_name, '_count');
              SELECT @out;
        END IF;
  until done END REPEAT;
  CLOSE cur;

END ; processus, nous utilisons des curseurs pour parcourir toutes les tables de la base de données et utilisons du SQL dynamique pour obtenir le nombre de lignes dans chaque table et l'afficher sur la console.

Exemple de fonction MySQL
  1. Ce qui suit est un exemple simple de fonction MySQL qui reçoit une chaîne et renvoie la première lettre de chaque mot qu'elle contient :

CREATE FUNCTION get_initials(str VARCHAR(255)) RETURNS VARCHAR(255 )

BEGIN

  DECLARE len INT DEFAULT 0;
  DECLARE i INT DEFAULT 0;
  DECLARE initial CHAR(1);
  DECLARE initials VARCHAR(255) DEFAULT '';
  SET len = LENGTH(str);
  WHILE i<=len DO
        SET initial = SUBSTRING(str, i, 1);
        IF i = 1 OR SUBSTRING(str, i-1, 1) = ' ' THEN
              SET initials = CONCAT(initials, initial);
        END IF;
        SET i = i + 1;
  END WHILE;
  RETURN initials;

END;

Dans la fonction ci-dessus, nous parcourons la chaîne d'entrée et divisons chaque mot en fonction des espaces, obtenons sa première lettre et les concaténons ensemble comme valeur de retour de la fonction.

Résumé

La fonction de procédure MySQL est une fonction très importante de MySQL, qui peut aider les développeurs et les administrateurs de bases de données à effectuer facilement des tâches de traitement de données complexes. Dans cet article, nous présentons les connaissances de base, l'utilisation et des exemples des fonctions de procédure MySQL. Grâce à ces informations, vous pourrez mieux comprendre et maîtriser les fonctions procédurales de MySQL et exploiter pleinement leurs avantages dans le développement réel.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn