Maison > Article > base de données > Introduction détaillée aux variables dans MySQL
La syntaxe est la suivante
declare var_name[,...] type [default value];
MYSQL La définition des variables ne peut être effectuée que dans procédure stockée ou Les fonctions sont définies à l'intérieur de , contrairement à Oracle/SQL Server. La portée de cette variable ne peut être que dans le bloc start...end. Les définitions de variables doivent être écrites au début d'une instruction composée, avant toute autre instruction. Plusieurs variables du même type peuvent être déclarées en même temps. Vous pouvez utiliser default pour attribuer une valeur par défaut. declare只能用在局部变量定义中。
#举例 declare v_test int default 10;
Méthode 1
set var_name=expr,[,var_name2=expr ...]; #举例 set v_test=15;
Méthode 2
select col_name[,...] into var_name[,...] table_expr; #举例 select sid into @a from test1;
Si col_name (comme sid) renvoie plusieurs lignes de valeurs, @a n'ira finalement qu'à la dernière ligne de valeurs.
Les variables locales sont généralement utilisées dans les blocs d'instructions SQL . Par exemple, le début/la fin d'une procédure stockée. Sa portée est limitée au bloc d'instructions. Une fois le bloc d'instructions exécuté, la variable locale disparaît. Les variables locales sont généralement déclarées avec declare, et default peut être utilisé pour indiquer la valeur par défaut.
create procedure add(in a int,in b int) begin declare c int default 0;#c定义的局部变量 set c = a + b; select c as c; end;
Utilisateur La portée des variables est plus large que celle des variables locales. Les variables utilisateur peuvent s'appliquer à l'ensemble de la connexion actuelle, mais lorsque la connexion actuelle est déconnectée, les variables utilisateur définies par celle-ci disparaîtront.
Les variables utilisateur sont définies de la manière suivante : @Nom de la variable
#举例 set @a = 1; set @b = 2; select @sum:=(@a + @b), @dif:=(@a - @b);
Résultat
Le serveur maintient une série de variables de session pour chaque client connecté. Lorsque le client se connecte, les variables de session du client sont initialisées en utilisant les valeurs actuelles des variables globales correspondantes. La définition des variables de session ne nécessite pas d'autorisations spéciales, mais le client ne peut modifier que ses propres variables de session, pas celles des autres clients. 会话变量的作用域与用户变量一样,仅限于当前连接
. Lorsque la connexion actuelle est déconnectée, toutes les variables de session définies par celle-ci deviendront invalides.
#设置会话变量有如下三种方式: set session var_name = value; set @@session.var_name = value; set var_name = value; #查看一个会话变量也有如下三种方式: select @@var_name; select @@session.var_name; show session variables like "%var%";
Les variables globales affectent le fonctionnement global du serveur. Lorsque le serveur démarre, il initialise toutes les variables globales à leurs valeurs par défaut. Ces valeurs par défaut peuvent être modifiées dans un fichier d'options ou par les options spécifiées sur la ligne de commande. Pour modifier les variables globales, vous devez disposer de l'autorisation SUPER. Les variables globales agissent sur l'ensemble du cycle de vie du serveur, mais ne peuvent pas s'étendre sur les redémarrages. Autrement dit, toutes les variables globales définies deviendront invalides après le redémarrage. Pour que les variables globales continuent de prendre effet après le redémarrage, vous devez modifier le fichier de configuration correspondant.
#要设置一个全局变量,有如下两种方式: set global var_name = value; set @@global.var_name = value; //同上 #要想查看一个全局变量,有如下两种方式: select @@global.var_name; show global variables like "%var%";
Remarque : global ici ne peut pas être omis. Selon le manuel, si vous ne spécifiez pas GLOBAL, SESSION ou LOCAL lors de la définition d'une variable avec la commande set, SESSION sera utilisée par défaut.
[Recommandations associées]
1. Tutoriel vidéo en ligne MySQL gratuit
2. Dernier tutoriel manuel MySQL
.3. Tutoriel vidéo d'introduction à l'éducation booléenne Yan Shiba 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!