Maison base de données tutoriel mysql Que sont les procédures stockées et les fonctions stockées dans MySQL ?

Que sont les procédures stockées et les fonctions stockées dans MySQL ?

Oct 15, 2020 am 11:36 AM
mysql

Dans MySQL, les procédures stockées et les fonctions stockées sont un ensemble d'instructions SQL définies dans la base de données. Parmi elles, les fonctions stockées peuvent renvoyer des valeurs de fonction via des instructions return et sont principalement utilisées pour calculer et renvoyer une valeur tandis que les procédures stockées ne renvoient pas directement de valeurs et sont principalement utilisées pour effectuer des opérations ;

Que sont les procédures stockées et les fonctions stockées dans MySQL ?

(Tutoriel recommandé : Tutoriel vidéo MySQL)

Procédure de stockage dans MySQL

L'écriture de procédures stockées n'est pas une tâche simple, mais l'utilisation de procédures stockées peut simplifier les opérations et réduire les étapes d'exploitation redondantes. En même temps, cela peut également réduire les erreurs pendant l'opération et améliorer l'efficacité. vous devriez donc apprendre à utiliser les procédures stockées autant que possible.

Ce qui suit présente principalement comment créer une procédure stockée.

Vous pouvez utiliser l'instruction CREATE PROCEDURE pour créer une procédure stockée Le format de syntaxe est le suivant :

CREATE PROCEDURE <过程名> ( [过程参数[,…] ] ) <过程体>
Copier après la connexion

[Paramètres de procédure[,…]] Format<🎜. >

[ IN | OUT | INOUT ] <参数名> <类型>
Copier après la connexion

La syntaxe est la suivante :

1) Nom de la procédure

Le nom de la procédure stockée, créée dans la base de données courante par défaut. Si vous devez créer une procédure stockée dans une base de données spécifique, faites précéder le nom du nom de la base de données, db_name.sp_name.

Il convient de noter que le nom doit essayer d'éviter de choisir le même nom que la fonction intégrée MySQL, sinon une erreur se produira.

2) Paramètres du processus

stocke la liste des paramètres de la procédure. Parmi eux, est le nom du paramètre et est le type du paramètre (peut être n'importe quel type de données MySQL valide). Lorsqu'il existe plusieurs paramètres, séparez-les par des virgules dans la liste des paramètres. Une procédure stockée peut ne pas avoir de paramètres (dans ce cas, il faut quand même ajouter une paire de parenthèses après le nom de la procédure stockée), ou bien elle peut avoir un ou plusieurs paramètres.

Les procédures stockées MySQL prennent en charge trois types de paramètres, à savoir les paramètres d'entrée, les paramètres de sortie et les paramètres d'entrée/sortie, qui sont identifiés respectivement par les trois mots-clés IN, OUT et INOUT. Parmi eux, les paramètres d'entrée peuvent être transmis à une procédure stockée, les paramètres de sortie sont utilisés lorsque la procédure stockée doit renvoyer un résultat d'opération, et les paramètres d'entrée/sortie peuvent servir à la fois de paramètres d'entrée et de paramètres de sortie.

Il convient de noter que le nom du paramètre ne doit pas être le même que le nom de la colonne de la table de données. Sinon, bien qu'aucun message d'erreur ne soit renvoyé, l'instruction SQL de la procédure stockée prendra en compte le nom du paramètre. comme nom de colonne, provoquant une erreur.

3) Corps de la procédure

La partie principale de la procédure stockée, également appelée corps de la procédure stockée, contient les instructions SQL qui doivent être exécutées lorsque la procédure est appelée. Cette section commence par le mot-clé BEGIN et se termine par le mot-clé END. S'il n'y a qu'une seule instruction SQL dans le corps de la procédure stockée, l'indicateur BEGIN-END peut être omis.

Dans la création de procédures stockées, une commande MySQL très importante est souvent utilisée, à savoir la commande DELIMITER. Surtout pour les utilisateurs qui exploitent la base de données MySQL via la ligne de commande, ils doivent apprendre à utiliser cette commande.

Dans MySQL, lorsque le serveur traite des instructions SQL, le point-virgule est utilisé par défaut comme marque de fin d'instruction. Cependant, lors de la création d'une procédure stockée, le corps de la procédure stockée peut contenir plusieurs instructions SQL. Si ces instructions SQL utilisent toujours un point-virgule comme terminateur d'instruction, le serveur MySQL se terminera par la première instruction SQL rencontrée lors du traitement. terminateur de l'ensemble du programme et ne traite plus les instructions SQL suivantes dans le corps de la procédure stockée. Cela ne fonctionne évidemment pas.

Pour résoudre les problèmes ci-dessus, la commande DELIMITER est généralement utilisée pour modifier la commande de fin en d'autres caractères.

Le format de la syntaxe est le suivant :

DELIMITER $$
Copier après la connexion

La description de la syntaxe est la suivante :

  • $$ est un utilisateur -terminateur défini, généralement ceci. Le symbole peut être des symboles spéciaux, tels que deux "?" ou deux "¥", etc.

  • Lorsque vous utilisez la commande DELIMITER, vous devez éviter d'utiliser le caractère barre oblique inverse "" car il s'agit d'un caractère d'échappement MySQL.

Entrez l'instruction SQL suivante dans le client de ligne de commande MySQL.

mysql > DELIMITER ??
Copier après la connexion

Après avoir exécuté avec succès cette instruction SQL, la marque de fin de toute commande, instruction ou programme sera remplacée par deux points d'interrogation "??".

Si vous souhaitez revenir au point-virgule par défaut ";" comme marque de fin, saisissez l'instruction suivante dans le client de ligne de commande MySQL :

mysql > DELIMITER ;
Copier après la connexion

Remarque : DELIMITER et point-virgule ";" Il doit y avoir un espace entre eux. Lors de la création d'une procédure stockée, vous devez disposer de l'autorisation CREATE ROUTINE.

Fonctions stockées dans mysql

Dans MySQL, utilisez l'instruction CREATE FUNCTION pour créer une fonction stockée. Sa syntaxe est la suivante : <🎜. >
CREATE FUNCTION sp_name ([func_parameter[...]])
RETURNS type
[characteristic ...] routine_body
Copier après la connexion

Où :

    paramètre sp_name : représente le nom de la fonction stockée
  • func_parameter : représente la liste des paramètres de la fonction stockée ;
  • RETURNS type : Spécifiez le type de valeur de retour
  • paramètre caractéristique : Spécifiez les caractéristiques de la fonction stockée ; de ce paramètre est le même que celui de la procédure stockée. ;
  • paramètre routine_body : représente le contenu du code SQL Vous pouvez utiliser BEGIN...END pour marquer le début et. fin du code SQL.

注意:在具体创建函数时,函数名不能与已经存在的函数名重名。除了上述要求外,推荐函数名命名(标识符)为 function_xxx 或者 func_xxx。

func_parameter 可以由多个参数组成,其中每个参数由参数名称和参数类型组成,其形式如下:
[IN | OUT | INOUT] param_name type;
Copier après la connexion

其中:

  • IN 表示输入参数,OUT 表示输出参数,INOUT 表示既可以输入也可以输出;

  • param_name 参数是存储函数的参数名称;

  • type 参数指定存储函数的参数类型,该类型可以是 MySQL 数据库的任意数据类型。

例 1

使用 CREATE FUNCTION 创建查询 tb_student 表中某个学生姓名的函数,SQL 语句和执行过程如下:

mysql> USE test;
Database changed
mysql> DELIMITER //
mysql> CREATE FUNCTION func_student(id INT(11))
    -> RETURNS VARCHAR(20)
    -> COMMENT &#39;查询某个学生的姓名&#39;
    -> BEGIN
    -> RETURN(SELECT name FROM tb_student WHERE tb_student.id = id);
    -> END //
Query OK, 0 rows affected (0.10 sec)
mysql> DELIMITER ;
Copier après la connexion

上述代码中,创建了 func_student 函数,该函数拥有一个类型为 INT(11) 的参数 id,返回值为 VARCHAR(20) 类型。SELECT 语句从 tb_student 表中查询 id 字段值等于所传入参数 id 值的记录,同时返回该条记录的 name 字段值。

创建函数与创建存储过程一样,需要通过命令 DELIMITER // 将 SQL 语句的结束符由“;”修改为“//”,最后通过命令 DELIMITER ; 将结束符号修改成 SQL 语句中默认的结束符号。

如果在存储函数中的 RETURN 语句返回一个类型不同于函数的 RETURNS 子句中指定类型的值,返回值将被强制为恰当的类型。比如,如果一个函数返回一个 ENUM 或 SET 值,但是 RETURN 语句返回一个整数,对于 SET 成员集的相应的 ENUM 成员,从函数返回的值是字符串。

拓展阅读

由于存储函数和存储过程的查看、修改、删除等操作几乎相同,所以我们不再详细讲解如何操作存储函数了。

查看存储函数的语法如下:

SHOW FUNCTION STATUS LIKE 存储函数名;
SHOW CREATE FUNCTION 存储函数名;
SELECT * FROM information_schema.Routines WHERE ROUTINE_NAME=存储函数名;
Copier après la connexion

可以发现,操作存储函数和操作存储过程不同的是将 PROCEDURE 替换成了 FUNCTION。同样,修改存储函数的语法如下:

ALTER FUNCTION 存储函数名 [ 特征 ... ]
Copier après la connexion

存储函数的特征与存储过程的基本一样。

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Comment ouvrir phpmyadmin Comment ouvrir phpmyadmin Apr 10, 2025 pm 10:51 PM

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

MySQL: une introduction à la base de données la plus populaire au monde MySQL: une introduction à la base de données la plus populaire au monde Apr 12, 2025 am 12:18 AM

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Pourquoi utiliser MySQL? Avantages et avantages Pourquoi utiliser MySQL? Avantages et avantages Apr 12, 2025 am 12:17 AM

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Comment utiliser un seul fileté redis Comment utiliser un seul fileté redis Apr 10, 2025 pm 07:12 PM

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

Place de MySQL: bases de données et programmation Place de MySQL: bases de données et programmation Apr 13, 2025 am 12:18 AM

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

MySQL et SQL: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

Comment construire une base de données SQL Comment construire une base de données SQL Apr 09, 2025 pm 04:24 PM

La construction d'une base de données SQL comprend 10 étapes: sélectionner des SGBD; Installation de SGBD; créer une base de données; créer une table; insérer des données; récupération de données; Mise à jour des données; supprimer des données; gérer les utilisateurs; sauvegarde de la base de données.

See all articles