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

Implementierungsprozess des Nginx-Hochverfügbarkeitsclusters

Dieser Artikel stellt hauptsächlich den Implement...

Docker erstellt Redis5.0 und mountet Daten

Inhaltsverzeichnis 1. Einfaches Einbinden persist...

Einführung in die Verschlüsselung des Grub-Boot-Programms in Linux

Inhaltsverzeichnis 1. Was ist Grub-Verschlüsselun...

Vollständiges Beispiel einer Vue-Polling-Request-Lösung

Verständnis von Umfragen Tatsächlich liegt der Sc...

Der beste Weg, ein JAR-Paketprojekt unter einem Centos7-Server zu starten

Vorwort Jeder weiß, wie man ein JAR-Paket unter L...

7 Interviewfragen zu JS, wie viele können Sie richtig beantworten

Vorwort In JavaScript ist dies der Kontext zum Au...

Unsere Gedanken zur Karriere als UI-Ingenieur

Ich bin seit langer Zeit depressiv, warum? Vor ein...

Eine kurze Analyse der Verwendung von watchEffect in Vue3

Vorwort Jeder sollte mit der Watch-API in vue2 ve...

Grundlegender JSON-Betriebsleitfaden in MySQL 5.7

Vorwort Aufgrund der Projektanforderungen werden ...

Lösen Sie das Problem verschwindender Docker-Images

1. Spiegelbilder verschwinden in 50 und 93 [root@...