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

Lösung für die Lücke zwischen Divs

Wenn Sie HTML-Div-Blöcke verwenden und die Mitte ...

Vue setzt die Daten auf ihren ursprünglichen Zustand zurück

In einigen Fällen müssen die Daten in den Daten w...

WeChat-Applet implementiert Suchfeldfunktion

In diesem Artikelbeispiel wird der spezifische Co...

So erstellen Sie LVM für das XFS-Dateisystem in Ubuntu

Vorwort Die logische Datenträgerverwaltung von lv...

Die Verwendung und der Unterschied zwischen JavaScript-Pseudo-Array und Array

Pseudo-Arrays und Arrays In JavaScript sind mit A...

Einführung in den Aufbau eines DNS-Servers unter centos7

Inhaltsverzeichnis 1. Projektumgebung: 2: DNS-Ser...

Das neueste beliebte Skript Autojs Quellcode-Sharing

Heute werde ich einen Quellcode mit Ihnen teilen,...

So entwickeln Sie Uniapp mit vscode

Da ich immer vscode zur Entwicklung von Front-End...

Detailliertes Beispiel des Kettenprogrammierstils von jQuery

Das Implementierungsprinzip der Kettenprogrammier...

Einige Erkenntnisse und Gedanken zu iframe

Diese Geschichte beginnt heute mit einer unerwarte...

Tipps zur Datenstatistik in MySQL

Als häufig verwendete Datenbank erfordert MySQL v...

Detaillierte Erläuterung der MySQL-Sicherung und -Wiederherstellung

Vorwort: In den vorherigen Artikeln wurde die Ver...

So konfigurieren Sie die PDFLatex-Umgebung in Docker

Technischer Hintergrund Latex ist ein unverzichtb...

Docker verwendet das Tool nsenter, um in den Container zu gelangen

Bei der Verwendung von Docker-Containern ist es b...