Heim >Datenbank >MySQL-Tutorial >Was ist der Unterschied zwischen benutzerdefinierten, lokalen und Systemvariablen in MySQL?

Was ist der Unterschied zwischen benutzerdefinierten, lokalen und Systemvariablen in MySQL?

Linda Hamilton
Linda HamiltonOriginal
2025-01-22 03:11:10715Durchsuche

What's the Difference Between User-Defined, Local, and System Variables in MySQL?

Deklaration und Verwendung von MySQL-Variablen

Um in MySQL Variablen in der zweiten Abfrage verwenden zu können, müssen diese zuerst deklariert und initialisiert werden.

Benutzerdefinierte Variablen (beginnend mit @)

  • Keine Deklaration erforderlich.
  • Kann ohne vorherige Deklaration oder Initialisierung direkt aufgerufen werden.
  • Der Wert ist NULL, wenn er nicht initialisiert ist, und der Datentyp ist eine Zeichenfolge.
  • Verwenden Sie zur Initialisierung die SET- oder SELECT-Anweisung.
  • Sitzungsspezifisch (kann nicht von anderen Kunden angezeigt oder verwendet werden).
  • Zum Beispiel:
    <code class="language-sql">SET @start = 1, @finish = 10;
    SELECT * FROM places WHERE place BETWEEN @start AND @finish;</code>

Lokale Variablen (kein Präfix)

  • Erfordert die DECLARE-Anweisung.
  • wird als Eingabeparameter oder lokale Variable in einer gespeicherten Prozedur verwendet.
  • Zum Beispiel:
    <code class="language-sql">DECLARE start INT unsigned DEFAULT 1;
    DECLARE finish INT unsigned DEFAULT 10;</code>
  • Wenn die DEFAULT-Klausel fehlt, ist der Anfangswert NULL.
  • Der Gültigkeitsbereich ist auf den BEGIN...END-Block beschränkt, in dem sie deklariert sind.

Serversystemvariablen (beginnend mit @@)

  • Vom MySQL-Server verwaltete Systemvariablen.
  • Kann GLOBAL (global), SESSION (Sitzung) oder BOTH (beide) sein.
  • Wirkt sich auf Servervorgänge (GLOBAL) oder einzelne Clientverbindungen (SESSION) aus.
  • Verwenden Sie SHOW VARIABLES oder SELECT @@var_name zum Anzeigen.
  • Verwenden Sie SET GLOBAL oder SET SESSION, um dynamisch zu ändern.
  • Zum Beispiel:
    <code class="language-sql">SET GLOBAL sort_buffer_size=1000000;</code>

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen benutzerdefinierten, lokalen und Systemvariablen in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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