Maison  >  Article  >  base de données  >  Comment utiliser la fonction de procédure MySQL

Comment utiliser la fonction de procédure MySQL

PHPz
PHPzavant
2023-05-28 14:46:281379parcourir

1. Connaissance de base des fonctions de la procédure MySQL

  1. Procédure MySQL

La procédure MySQL se compose de plusieurs instructions SQL, reçoit des paramètres et effectue des opérations spécifiques sur les paramètres d'entrée. La procédure MySQL est une méthode d'encapsulation de 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 uniques 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 les paramètres sont la liste des paramètres de la procédure, les instructions SQL sont les instructions MySQL à exécuter pendant la procédure.

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. Créer une fonction MySQL

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 et les paramètres sont le 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

Voici un exemple simple de procédure MySQL 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;

Dans le processus ci-dessus, 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.

  1. Exemple de fonction MySQL

Ce qui suit est un exemple simple de fonction MySQL qui prend 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) = &#39; &#39; 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.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer