Heim > Datenbank > MySQL-Tutorial > Detaillierte Einführung in Variablen in MySQL

Detaillierte Einführung in Variablen in MySQL

零下一度
Freigeben: 2017-05-09 13:30:07
Original
1353 Leute haben es durchsucht

Variablen definieren

Die Syntax lautet wie folgt

declare var_name[,...] type [default value];
Nach dem Login kopieren

MYSQLVariablendefinition kann nur in gespeicherten Prozeduren erfolgen oder Funktionen werden im Gegensatz zu Oracle/SQL Server innerhalb von definiert. Der Gültigkeitsbereich dieser Variablen kann nur innerhalb des begin...end-Blocks liegen. Variablendefinitionen müssen am Anfang einer zusammengesetzten Anweisung geschrieben werden, vor allen anderen Anweisungen. Es können mehrere Variablen desselben Typs gleichzeitig deklariert werden. Mit default können Sie einen Standardwert zuweisen. declare只能用在局部变量定义中。

#举例
declare v_test int default 10;
Nach dem Login kopieren

Variablen festlegen

Methode 1

set var_name=expr,[,var_name2=expr ...];

#举例
set v_test=15;
Nach dem Login kopieren

Methode 2

select col_name[,...] into var_name[,...] table_expr;

#举例
select sid into @a from test1;
Nach dem Login kopieren

Wenn col_name (z. B. sid) mehrere Wertezeilen zurückgibt, geht @a am Ende nur zur letzten Wertezeile.

Variablenklassifizierung

Lokale Variablen (@ muss nicht hinzugefügt werden)

Lokale Variablen werden im Allgemeinen in SQL-Anweisungsblöcken verwendet . Zum Beispiel der Anfang/das Ende einer gespeicherten Prozedur. Ihr Gültigkeitsbereich ist auf den Anweisungsblock beschränkt. Nachdem der Anweisungsblock ausgeführt wurde, verschwindet die lokale Variable. Lokale Variablen werden im Allgemeinen mit „declare“ deklariert, und „default“ kann verwendet werden, um den Standardwert anzugeben.

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;
Nach dem Login kopieren

Benutzervariablen (ein @)

Benutzer Der Umfang der Variablen ist größer als der von lokalen Variablen. Benutzervariablen können für die gesamte aktuelle Verbindung gelten. Wenn die aktuelle Verbindung jedoch getrennt wird, verschwinden die von ihr definierten Benutzervariablen.
Benutzervariablen werden wie folgt definiert: @Variablenname

#举例
set @a = 1;
set @b = 2;
select @sum:=(@a + @b), @dif:=(@a - @b);
Nach dem Login kopieren

Ergebnis

Detaillierte Einführung in Variablen in MySQL

Benutzervariablen

Sitzungsvariablen (zwei @@)

Der Server verwaltet eine Reihe von Sitzungsvariablen für jeden verbundenen Client. Wenn der Client eine Verbindung herstellt, werden die Sitzungsvariablen des Clients mit den aktuellen Werten der entsprechenden globalen Variablen initialisiert. Für das Setzen von Sitzungsvariablen sind keine besonderen Berechtigungen erforderlich, aber der Client kann nur seine eigenen Sitzungsvariablen ändern, nicht die von anderen Clients. 会话变量的作用域与用户变量一样,仅限于当前连接. Wenn die aktuelle Verbindung getrennt wird, werden alle von ihr festgelegten Sitzungsvariablen ungültig.

#设置会话变量有如下三种方式:
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%";
Nach dem Login kopieren

Globale Variablen (zwei @@)

Globale Variablen beeinflussen den Gesamtbetrieb des Servers. Wenn der Server startet, initialisiert er alle globalen Variablen auf ihre Standardwerte. Diese Standardwerte können in einer Optionsdatei oder durch in der Befehlszeile angegebene Optionen geändert werden. Um globale Variablen zu ändern, müssen Sie über die Berechtigung SUPER verfügen. Globale Variablen wirken sich auf den gesamten Lebenszyklus des Servers aus, können sich jedoch nicht über Neustarts erstrecken. Das heißt, alle gesetzten globalen Variablen werden nach dem Neustart ungültig. Damit globale Variablen auch nach einem Neustart weiterhin wirksam sind, müssen Sie die entsprechende Konfigurationsdatei ändern.

#要设置一个全局变量,有如下两种方式:
set global var_name = value; 
set @@global.var_name = value; //同上

#要想查看一个全局变量,有如下两种方式:
select @@global.var_name;
show global variables like "%var%";
Nach dem Login kopieren

Hinweis: Global kann hier nicht weggelassen werden. Laut Handbuch wird standardmäßig SESSION verwendet, wenn Sie beim Festlegen einer Variablen mit dem Set-Befehl weder GLOBAL, SESSION noch LOCAL angeben.

[Verwandte Empfehlungen]

1. Kostenloses MySQL-Online-Video-Tutorial

2. Neuestes MySQL-Handbuch-Tutorial

3. Boolean Education Yan Shiba MySQL-Einführungsvideo-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in Variablen in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage