1 Einführung in BenutzervariablenBenutzervariablen 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 BenutzervariablendefinitionMit 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 SetEin 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 AuswahlIm 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 Benutzervariablen4.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 doIn 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.) ZusammenfassenDies 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:
|
<<: JS + Canvas realisiert dynamischen Uhreffekt
>>: Docker stellt eine Verbindung zum Host-Mysql-Vorgang her
Inhaltsverzeichnis Verstehen Sie das Kernkonzept ...
Inhaltsverzeichnis Vorwort zx-Bibliothek $`Befehl...
Um einen Flex-Container zu erstellen, fügen Sie e...
Inhaltsverzeichnis Was ist ein Auslöser Erstellen...
Wir alle wissen, dass die in der Front-End-Entwic...
Dieser Artikel stellt verschiedene Methoden zur I...
In diesem Artikel wird der spezifische Code für J...
Inhaltsverzeichnis Frühe Erstellungsmethode Fabri...
Im vorherigen Blog hat Xiao Xiong die Methoden ve...
1. Installationsanweisungen Im Vergleich zur loka...
Fehlermeldung: Die Store-Update-, Insert- oder De...
Inhaltsverzeichnis Sekunden_hinter_Master Ursprün...
Inhaltsverzeichnis 1. Einleitung 2. Passen Sie de...
Einführung: Die Nachteile der Speicherung aller D...
Vorwort Um bei der Backend-Entwicklung zu verhind...