Detaillierte Erläuterung der MySQL-Benutzervariablen und Set-Anweisungsbeispiele

Detaillierte Erläuterung der MySQL-Benutzervariablen und Set-Anweisungsbeispiele

1 Einführung in Benutzervariablen

Benutzervariablen sind vom Benutzer definierte Variablen. Wir können Benutzervariablen Werte zuweisen und sie überall dort verwenden, wo ein Skalarausdruck normal verwendet werden kann.

Bevor wir eine Benutzervariable einführen, müssen wir sie mit einer Set-Anweisung oder einer Select-Anweisung definieren und ihr dann einen Wert zuweisen, da die Variable sonst nur einen leeren Wert hat.

Mit der Verbindung sind Benutzervariablen verknüpft. Das heißt, dass von einem Client definierte Variablen von anderen Clients weder gesehen noch verwendet werden können. Wenn ein Client beendet wird, werden alle von diesem Client verbundenen Variablen automatisch freigegeben.

2 Benutzervariablendefinition

Mit der set-Anweisung können Systemvariablen oder Benutzervariablen Werte zugewiesen werden. Die Definition von Benutzervariablen lautet wie folgt:

SET @var_name = Ausdruck [, @var_name = Ausdruck] ...

Sie können die Select-Anweisung auch verwenden, um Folgendes zu definieren:

SELECT @var_name := Ausdruck [, @var_name = Ausdruck] ...

Benutzervariablen: beginnen mit „@“ und haben die Form „@var_name“, um Benutzervariablen von Spaltennamen zu unterscheiden. Es kann sich um jeden beliebigen, zusammengesetzten Skalarausdruck handeln, solange keine Spaltenspezifikationen vorhanden sind.

Ein Variablenname kann aus alphanumerischen Zeichen des aktuellen Zeichensatzes sowie "_", "$" und "." bestehen. Der Standardzeichensatz ist ISO-8859-1 Latin1; dieser kann mit der Option --default-character-set für mysqld geändert werden.

Für SET können Sie = oder := verwenden, um Werte zuzuweisen, für SELECT können Sie jedoch nur := verwenden, um Werte zuzuweisen.

Wir können eine einfache Select-Anweisung verwenden, um den Wert der definierten Benutzervariable abzufragen.

3 Verwendung von Benutzervariablen

3.1 Beispiele durch Set

Ein Skalarausdruck, der zum Zuweisen eines Werts zu einer Variablen verwendet wird, kann ein zusammengesetzter Ausdruck sein. Berechnungen, Funktionen, Systemskalare und andere Benutzervariablen sowie Unterabfragen sind zulässig. Anschließend kann über die Select-Anweisung der Wert einer Benutzervariablen abgerufen werden und das Ergebnis ist eine Tabelle mit einer Zeile.

mysql> setze @var1=1, @var2='vartest', @var3=abs(-2), @var4=(wähle count(*) aus mysql.user aus);
mysql> wähle @var1, @var2, @var3, @var4;
+-------+---------+-------+---------+
| @var1 | @var2 | @var3 | @var4 |
+-------+---------+-------+---------+
| 1 | vartest | 2 | 25 |
+-------+---------+-------+---------+

Im Ausdruck, der zur Zuweisung einer Benutzervariablen verwendet wird, können Sie auch andere Benutzervariablen angeben. Dabei ist zu beachten, dass MySQL zunächst den Wert aller Ausdrücke ermittelt, bevor der Wert der Variablen zugewiesen wird.

Zum Beispiel:

mysql> setze @varA = 2;

Für die folgenden beiden Beispiele ist der Wert von varB unterschiedlich.

Beispiel 1:

mysql> setze @varA = 3, @varB = @varA;
mysql> wähle @varB;
+----------+
| @varB |
+----------+
| 2 |
+----------+

Beispiel 2:

mysql> setze @varA = 3; 
mysql> setze @varB = @varA;
mysql> wähle @varB;            
+----------+
| @varB |
+----------+
| 3 |
+----------+ 

3.2 Beispiele durch Auswahl

Im Vergleich zur Set-Anweisung wird bei der Definition von Variablen mit Select ein tabellarisches Ergebnis zurückgegeben.

mysql> wähle @var1:=1, @var2:='vartest', @var3:=abs(-2), @var4:=(wähle count(*) aus mysql.user);
+----------+------------------+----------------+------------------------------------------+
| @var1:=1 | @var2:='vartest' | @var3:=abs(-2) | @var4:=(Wählen Sie count(*) aus mysql.user) |
+----------+------------------+----------------+------------------------------------------+
| 1 | vartest | 2 | 25 |
+----------+------------------+----------------+------------------------------------------+
mysql> wähle @var1, @var2, @var3, @var4;
+-------+---------+-------+---------+
| @var1 | @var2 | @var3 | @var4 |
+-------+---------+-------+---------+
| 1 | vartest | 2 | 25 |
+-------+---------+-------+---------+
+-------+---------+-------+---------+
| 1 | vartest | 2 | 25 |
+-------+---------+-------+---------+ 

4 Überlegungen zu Benutzervariablen

4.1 Benutzervariablen werden in Where- oder Having-Klauseln verwendet. Sie müssen zuerst in einer anderen Anweisung definiert werden. Im folgenden Beispiel gibt die erste Abfrage beispielsweise keine Ergebnisse zurück. Erst nachdem sie definiert wurden, werden in nachfolgenden Abfragen Ergebnisse ausgegeben.

mysql> wähle @H:='localhost' aus mysql.user, wobei host = @H;
Leerer Satz (0,00 Sek.)
mysql> wähle @H:='localhost';
+-----------------+
| @H:='lokaler Host' |
+-----------------+
| lokaler Host |
+-----------------+
1 Zeile im Satz (0,00 Sek.)
mysql> wähle @H:='localhost', Benutzer aus mysql.user, wobei Host = @H;
+-----------------+-----------------+
| @H:='localhost' | Benutzer |
+-----------------+-----------------+
| lokaler Host | |
| lokaler Host | Jesse |
| lokaler Host | lokal |
| lokaler Host | Wurzel |
| lokaler Host | Benutzer-Tab-Update |
+-----------------+-----------------+

4.2 Benutzervariablen befinden sich auf Sitzungsebene. Wenn wir den Client schließen oder uns abmelden, verschwinden alle Benutzervariablen. Wenn Sie benutzerdefinierte Variablen speichern möchten, müssen Sie eine Tabelle erstellen und den Skalar in die Tabelle einfügen.

4.3 Bei Benutzervariablennamen wird nicht zwischen Groß- und Kleinschreibung unterschieden.

4.4 Undefinierte Variablen werden auf null initialisiert.

5 Ergänzendes Wissen: MySQL-Anweisung do

In der do-Anweisung werden ein oder mehrere Skalarausdrücke verwendet und MySQL verarbeitet sie nacheinander, zeigt die Ergebnisse der Ausdrücke jedoch nicht an. Beispielsweise können wir eine Funktion aufrufen, um etwas im Hintergrund auszuführen, ohne die Ergebnisse zu sehen.

Zum Beispiel:

mysql> schlafe(5);
Abfrage OK, 0 Zeilen betroffen (5,00 Sek.)

Zusammenfassen

Dies ist das Ende dieses Artikels über MySQL-Benutzervariablen und Set-Anweisungen. Weitere relevante MySQL-Benutzervariablen und Set-Anweisungen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Beispiel für das Schreiben von Lazy UNION in MySQL unter Verwendung benutzerdefinierter Variablen
  • MySQL-Variablenprinzipien und Anwendungsbeispiele
  • Detaillierte Erläuterung der MySQL-Startoptionen und Beispiele für Systemvariablen
  • Beispielanalyse der MySQL-Variablenverwendung [Systemvariablen, Benutzervariablen]
  • So erstellen (CREATE PROCEDURE) und rufen (CALL) Sie eine gespeicherte MySQL-Prozedur auf und so erstellen (DECLARE) und weisen (SET) Sie eine Variable zu
  • 15 wichtige Variablen, die Sie zur MySQL-Leistungsoptimierung kennen müssen (Zusammenfassung)
  • Tutorial zur Installation und Konfiguration von MySQL 8.0.12 unter Win10
  • Detaillierte Erläuterung zweier Methoden zum Festlegen globaler Variablen und Sitzungsvariablen in MySQL
  • MySQL 5.6.23 Installations- und Konfigurations-Umgebungsvariablen-Tutorial
  • Das Konzept und die Eigenschaften von benutzerdefinierten MySQL-Variablen

<<:  JS + Canvas realisiert dynamischen Uhreffekt

>>:  Docker stellt eine Verbindung zum Host-Mysql-Vorgang her

Artikel empfehlen

Tiefgreifendes Verständnis der Verwendung von Vue

Inhaltsverzeichnis Verstehen Sie das Kernkonzept ...

Die ultimative Lösung zum Schreiben von Bash-Skripten mit Node.js

Inhaltsverzeichnis Vorwort zx-Bibliothek $`Befehl...

Beispielcode für CSS-Flex-Layout mit automatischem Zeilenumbruch

Um einen Flex-Container zu erstellen, fügen Sie e...

Detaillierte Erläuterung des MySQL-Trigger-Trigger-Beispiels

Inhaltsverzeichnis Was ist ein Auslöser Erstellen...

JavaScript zum Erzielen eines Kalendereffekts

In diesem Artikel wird der spezifische Code für J...

Die konkrete Umsetzung des JavaScript-exklusiven Denkens

Im vorherigen Blog hat Xiao Xiong die Methoden ve...

Lösung für EF (Entity Framework)-Einfüge- oder Aktualisierungsfehler

Fehlermeldung: Die Store-Update-, Insert- oder De...

Detaillierte Erklärung von MySQLs Seconds_Behind_Master

Inhaltsverzeichnis Sekunden_hinter_Master Ursprün...

WeChat-Applet: benutzerdefinierter TabBar-Schrittdatensatz

Inhaltsverzeichnis 1. Einleitung 2. Passen Sie de...

So paginieren Sie schnell MySQL-Datenmengen im zweistelligen Millionenbereich

Vorwort Um bei der Backend-Entwicklung zu verhind...