Table des matières
Quels sont les types de variables des procédures stockées MySQL ?
1. Variables locales " > 1. Variables locales
2. Variables utilisateur " >2. Variables utilisateur
3. Les variables utilisateur et les variables système des variables MySQL" >3. Les variables utilisateur et les variables système des variables MySQL
Maison base de données tutoriel mysql Quels types de variables possèdent les procédures stockées MySQL ?

Quels types de variables possèdent les procédures stockées MySQL ?

May 16, 2022 am 10:30 AM
mysql

Types de variables de procédures stockées MySQL : 1. Variables locales, la syntaxe de définition est "DECLARE nom de variable type de données" ; 2. Variables utilisateur, la syntaxe de définition est "set @variable name:=..." ; variables, il peut être divisé en variable globale "@@global" et variable de session "@@session".

Quels types de variables possèdent les procédures stockées MySQL ?

L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.

Quels sont les types de variables des procédures stockées MySQL ?

Variables courantes dans les procédures stockées MySQL : variables locales, variables utilisateur, variables système

1. Variables locales

Dans le corps du processus, vous pouvez déclarer des variables locales pour une utilisation temporaire Enregistrez certaines valeurs.

1. Définissez la syntaxe des variables locales :

DECLARE  var_name[, var_name] ...  type [DEFAULT value];
Copier après la connexion

Parmi eux, le type est le type de données MySQL, tel que : int, float, date, varchar(length)

Remarque :

①DECLARE est utilisé pour déclarer des variables locales, et DECLARE n'est utilisé que par Utilisé dans les instructions composées BEGIN ... END et doit se trouver au début de l'instruction composée, avant que toute autre instruction puisse être utilisée dans des blocs imbriqués, à l'exception de celles qui déclarent des variables portant le même nom.

② Si vous souhaitez fournir une valeur par défaut pour une variable, utilisez la clause DEFAULT (la valeur peut être une constante ou spécifiée sous forme d'expression) ; s'il n'y a pas de clause DEFAULT, la valeur initiale est NULL.

2. Format de base :

CREATE PROCEDURE sp_name ([proc_parameter[,...]])
BEGIN
DECLARE var_name1 type [DEFAULT value];
DECLARE var_name2 type [DEFAULT value];
DECLARE……;
[characteristic ...];
Copier après la connexion

Exemple 1 : Créez un processus, spécifiez une valeur par défaut pour les variables locales et appelez le processus

mysql>delimiter $$
mysql> create procedure test1(out num1 int)->begin-> declare num2 int default 100;-> set num1=num2;->end->$$
mysql>delimiter ;
mysql>call test1(@num);
mysql> select@num;+------+
| @num |
+------+
| 100 |
+------+
Copier après la connexion

Analyse :

Créez une procédure stockée test1 : la sortie est la valeur de la variable num1 , déclarez que la variable locale Num2 est de type int et que la valeur par défaut est 100. Utilisez set pour attribuer la valeur de num2 (si elle n'est pas traitée, la valeur par défaut) à num1

Appelez test1 : utilisez la variable utilisateur num pour recevoir le valeur de sortie num1 de la procédure stockée...

Default En plus des littéraux, les valeurs peuvent également être des expressions complexes, y compris des sous-requêtes scalaires

Exemple 2 : Processus de création, utilisant le nombre de tous les joueurs pour initialiser une variable

mysql>delimiter $$
mysql> create procedure test2(out num1 int)->begin-> declare num2 int default(select count(*) fromPLAYERS);-> set num1=num2;->end$$mysql>delimiter ;
mysql>call test2(@num);mysql> select@num;+------+
| @num |
+------+
| 14 |
+------+
Copier après la connexion

Remarque : MySQL ne prend pas en charge les tableaux en tant que variables locales.

3. La portée des variables locales :

C'est-à-dire la portée du bloc de programme où la variable peut être utilisée normalement sans erreur.

Dans le cas de blocs imbriqués,

les variables déclarées dans le bloc externe peuvent être utilisées directement dans le bloc interne ;

les variables déclarées dans le bloc interne ne peuvent être utilisées que dans le bloc interne ;

Quels types de variables possèdent les procédures stockées MySQL ?

Analyse : La variable v2 ne peut être utilisée que dans le bloc interne b2. L'instruction set et la dernière instruction set du bloc b3 sont fausses.

2. Variables utilisateur

> Les variables déclarées dans cette connexion ne peuvent pas être utilisées dans une autre connexion utilisée.

> Un symbole @ représente une variable utilisateur.

1. Définition des variables utilisateur (set, select) :

1) L'instruction set attribue des valeurs aux variables utilisateur :

Vous pouvez utiliser "=" ou ":=" comme allocateur

expr attribué ; à chaque variable Il peut s'agir d'un entier, d'un nombre réel, d'une chaîne ou d'une valeur NULL ;

mysql> set @zjc:=999;
mysql> select@zjc;+------+
| @zjc |
+------+
| 999 |
+------+
Copier après la connexion

2) L'instruction select attribue des valeurs aux variables utilisateur :

Le caractère d'allocation doit être ":=" au lieu de " =", car = est pris en compte dans les instructions non-SET. C'est un opérateur de comparaison ;

mysql> select @abc:=123;+-----------+
| @abc:=123 |
+-----------+
| 123 |
+-----------+mysql> select@abc;+------+
| @abc |
+------+
| 123 |
+------+
Copier après la connexion

Remarque :

① Les variables utilisateur peuvent être définies et utilisées n'importe où ; elles peuvent être utilisées directement si elles ne sont pas définies (la valeur par défaut est null) .

②Le format du nom de variable des variables utilisateur : @var_name, avec le symbole @.

③L'abus des variables utilisateur rendra le programme difficile à comprendre et à gérer.

Affectation de variable étendue : définir la syntaxe

Les variables dans MySQL ne limitent pas strictement les types de données. Le type de données d'une variable change à tout moment en fonction de la valeur attribuée à la variable.

SET variable_assignment [, variable_assignment] ...
variable_assignment:
user_var_name=expr|[GLOBAL | SESSION] system_var_name =expr|[@@global. | @@session. | @@] system_var_name = expr
Copier après la connexion

## est utilisé pour attribuer des valeurs aux variables utilisateur, aux variables système, et peut également attribuer des valeurs aux variables locales dans le processus.

Remarque : lorsque

définissez des variables système, il n'y a pas de modification de portée et la valeur par défaut fait référence à la portée de la session ;

(Remarque spéciale, certaines variables système n'ont pas de modification de portée et ne peuvent pas être définies, il est donc préférable de apportez-les avec les variables système définies par la portée).

2. Portée des variables utilisateur

Tant que les variables utilisateur définies dans la connexion actuelle sont utilisées dans la connexion actuelle, c'est OK, mais rien d'autre.

3. Différence avec les variables locales :

Les variables locales n'ont que des noms de variables et pas de symbole @ ; les noms de variables utilisateur ont un symbole @ devant eux.

Ils sont tous définis d'abord puis utilisés ; pour les variables non définies, la valeur de sélection est vide.

Les variables locales ne sont utilisées qu'à l'intérieur de la procédure stockée et n'ont aucune signification en dehors du processus. Lorsque le bloc début-fin est traité, les variables locales disparaissent tandis que les variables utilisateur peuvent être utilisées à l'intérieur et à l'extérieur de la procédure stockée.

Conseils : dans la procédure stockée, utilisez des variables locales, n'utilisez pas de variables utilisateur.

3. Les variables utilisateur et les variables système des variables MySQL

1. Les variables utilisateur sont comme mentionné ci-dessus @var_name (un symbole @)

①Les variables utilisateur sont liées à la connexion à la base de données. .Une fois la connexion déconnectée, disparaît automatiquement ;

②Sélectionnez une variable utilisateur sans affectation et renvoyez NULL, ce qui signifie qu'il n'y a pas de valeur ;

Les variables MySQL sont similaires aux langages dynamiques. La valeur de la variable change en fonction du type de valeur à attribuer.

2. Variables système : selon la portée des variables système, elles sont divisées en : variables globales et variables de session (deux symboles @)

①Variables globales (@@global.)

Lorsque MySQL démarre, le serveur change automatiquement les variables globales Les variables sont initialisées aux valeurs par défaut ;

Les valeurs par défaut des variables globales peuvent être modifiées en modifiant le fichier de configuration MySQL (my.ini, my.cnf).

②Variables de session (@@session.)

Chaque fois qu'une nouvelle connexion est établie, elle est initialisée par MySQL ;

MYSQL copiera les valeurs de toutes les variables globales actuelles en tant que variables de session (c'est également pour par exemple, si les valeurs des variables de session et des variables globales ne sont pas modifiées manuellement après l'établissement de la session, les valeurs de toutes ces variables seront les mêmes).

#La différence entre les variables globales et les variables de session : Les modifications des variables globales affecteront l'ensemble du serveur, mais les modifications des variables de session n'affecteront que la session en cours.

Apprentissage recommandé : Tutoriel vidéo mysql

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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines 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)

La relation entre l'utilisateur de MySQL et la base de données La relation entre l'utilisateur de MySQL et la base de données Apr 08, 2025 pm 07:15 PM

Dans la base de données MySQL, la relation entre l'utilisateur et la base de données est définie par les autorisations et les tables. L'utilisateur a un nom d'utilisateur et un mot de passe pour accéder à la base de données. Les autorisations sont accordées par la commande Grant, tandis que le tableau est créé par la commande Create Table. Pour établir une relation entre un utilisateur et une base de données, vous devez créer une base de données, créer un utilisateur, puis accorder des autorisations.

MySQL doit-il payer MySQL doit-il payer Apr 08, 2025 pm 05:36 PM

MySQL a une version communautaire gratuite et une version d'entreprise payante. La version communautaire peut être utilisée et modifiée gratuitement, mais le support est limité et convient aux applications avec des exigences de stabilité faibles et des capacités techniques solides. L'Enterprise Edition fournit une prise en charge commerciale complète pour les applications qui nécessitent une base de données stable, fiable et haute performance et disposées à payer pour le soutien. Les facteurs pris en compte lors du choix d'une version comprennent la criticité des applications, la budgétisation et les compétences techniques. Il n'y a pas d'option parfaite, seulement l'option la plus appropriée, et vous devez choisir soigneusement en fonction de la situation spécifique.

Intégration RDS MySQL avec Redshift Zero ETL Intégration RDS MySQL avec Redshift Zero ETL Apr 08, 2025 pm 07:06 PM

Simplification de l'intégration des données: AmazonrDSMysQL et l'intégration Zero ETL de Redshift, l'intégration des données est au cœur d'une organisation basée sur les données. Les processus traditionnels ETL (extrait, converti, charge) sont complexes et prennent du temps, en particulier lors de l'intégration de bases de données (telles que AmazonrDSMysQL) avec des entrepôts de données (tels que Redshift). Cependant, AWS fournit des solutions d'intégration ETL Zero qui ont complètement changé cette situation, fournissant une solution simplifiée et à temps proche pour la migration des données de RDSMySQL à Redshift. Cet article plongera dans l'intégration RDSMYSQL ZERO ETL avec Redshift, expliquant comment il fonctionne et les avantages qu'il apporte aux ingénieurs de données et aux développeurs.

Comment remplir le nom d'utilisateur MySQL et le mot de passe Comment remplir le nom d'utilisateur MySQL et le mot de passe Apr 08, 2025 pm 07:09 PM

Pour remplir le nom d'utilisateur et le mot de passe MySQL: 1. Déterminez le nom d'utilisateur et le mot de passe; 2. Connectez-vous à la base de données; 3. Utilisez le nom d'utilisateur et le mot de passe pour exécuter des requêtes et des commandes.

L'optimisation des requêtes dans MySQL est essentielle pour améliorer les performances de la base de données, en particulier lorsqu'elle traite avec de grands ensembles de données L'optimisation des requêtes dans MySQL est essentielle pour améliorer les performances de la base de données, en particulier lorsqu'elle traite avec de grands ensembles de données Apr 08, 2025 pm 07:12 PM

1. Utilisez l'index correct pour accélérer la récupération des données en réduisant la quantité de données numérisées SELECT * FROMMLOYEESEESHWHERELAST_NAME = 'SMITH'; Si vous recherchez plusieurs fois une colonne d'une table, créez un index pour cette colonne. If you or your app needs data from multiple columns according to the criteria, create a composite index 2. Avoid select * only those required columns, if you select all unwanted columns, this will only consume more server memory and cause the server to slow down at high load or frequency times For example, your table contains columns such as created_at and updated_at and timestamps, and then avoid selecting * because they do not require inefficient query se

Comment optimiser les performances MySQL pour les applications de haute charge? Comment optimiser les performances MySQL pour les applications de haute charge? Apr 08, 2025 pm 06:03 PM

Guide d'optimisation des performances de la base de données MySQL dans les applications à forte intensité de ressources, la base de données MySQL joue un rôle crucial et est responsable de la gestion des transactions massives. Cependant, à mesure que l'échelle de l'application se développe, les goulots d'étranglement des performances de la base de données deviennent souvent une contrainte. Cet article explorera une série de stratégies efficaces d'optimisation des performances MySQL pour garantir que votre application reste efficace et réactive dans des charges élevées. Nous combinerons des cas réels pour expliquer les technologies clés approfondies telles que l'indexation, l'optimisation des requêtes, la conception de la base de données et la mise en cache. 1. La conception de l'architecture de la base de données et l'architecture optimisée de la base de données sont la pierre angulaire de l'optimisation des performances MySQL. Voici quelques principes de base: sélectionner le bon type de données et sélectionner le plus petit type de données qui répond aux besoins peut non seulement économiser un espace de stockage, mais également améliorer la vitesse de traitement des données.

Comment copier et coller Mysql Comment copier et coller Mysql Apr 08, 2025 pm 07:18 PM

Copier et coller dans MySQL incluent les étapes suivantes: Sélectionnez les données, copiez avec Ctrl C (Windows) ou CMD C (Mac); Cliquez avec le bouton droit à l'emplacement cible, sélectionnez Coller ou utilisez Ctrl V (Windows) ou CMD V (Mac); Les données copiées sont insérées dans l'emplacement cible ou remplacer les données existantes (selon que les données existent déjà à l'emplacement cible).

Comprendre les propriétés acides: les piliers d'une base de données fiable Comprendre les propriétés acides: les piliers d'une base de données fiable Apr 08, 2025 pm 06:33 PM

Une explication détaillée des attributs d'acide de base de données Les attributs acides sont un ensemble de règles pour garantir la fiabilité et la cohérence des transactions de base de données. Ils définissent comment les systèmes de bases de données gérent les transactions et garantissent l'intégrité et la précision des données même en cas de plantages système, d'interruptions d'alimentation ou de plusieurs utilisateurs d'accès simultanément. Présentation de l'attribut acide Atomicité: une transaction est considérée comme une unité indivisible. Toute pièce échoue, la transaction entière est reculée et la base de données ne conserve aucune modification. Par exemple, si un transfert bancaire est déduit d'un compte mais pas augmenté à un autre, toute l'opération est révoquée. BeginTransaction; UpdateAccountSsetBalance = Balance-100Wh

See all articles