SQL-Variablen verstehen: Deklaration, Verwendung und bewährte Verfahren
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
- SQL-Variablen speichern und manipulieren Daten temporär innerhalb von Abfragen und Prozeduren.
- Die Deklaration und Verwendung von Variablen unterscheiden sich zwischen SQL-Datenbanksystemen.
- Die Verwaltung von Gültigkeitsbereich und Initialisierung ist entscheidend für zuverlässigen SQL-Code.
SQL-Variablen sind wesentliche Werkzeuge in der Datenbankprogrammierung, die es Entwicklern ermöglichen, temporäre Daten zu speichern, den Ausführungsfluss zu steuern und dynamische, wiederverwendbare Abfragen zu erstellen. Dieser Artikel untersucht das Konzept der SQL-Variablen, ihre Deklaration, Zuweisung, Gültigkeitsbereich und Verwendung in verschiedenen Datenbankmanagementsystemen (DBMS).
Was sind SQL-Variablen?
Eine SQL-Variable ist ein benannter Speicherort, der einen einzelnen Datenwert eines bestimmten Typs während der Ausführung von SQL-Anweisungen enthält. Variablen werden häufig in gespeicherten Prozeduren, Funktionen, Skripten und Batches verwendet, um:
- Zwischenergebnisse zu speichern.
- Den Programmfluss mithilfe von bedingter Logik zu steuern.
- Die Lesbarkeit und Wartbarkeit des Codes zu verbessern.
- Die dynamische Erstellung von SQL-Abfragen zu erleichtern.
Variablen deklarieren
Die Syntax zum Deklarieren von Variablen variiert zwischen verschiedenen DBMS. Nachfolgend sind Beispiele für einige gängige Systeme aufgeführt:
SQL Server (Transact-SQL)
In SQL Server werden Variablen mit der DECLARE
-Anweisung deklariert.
DECLARE @MyVariable INT; SET @MyVariable = 10;::contentReference[oaicite:39]{index=39}
Sie können eine Variable auch in einer einzigen Anweisung deklarieren und initialisieren:
DECLARE @MyVariable INT = 10;::contentReference[oaicite:45]{index=45}
Mehrere Variablen können gleichzeitig deklariert werden:
DECLARE @Var1 INT = 5, @Var2 VARCHAR(50) = 'Hello';::contentReference[oaicite:51]{index=51}
MySQL
In MySQL können Variablen innerhalb gespeicherter Prozeduren mit der DECLARE
-Anweisung deklariert werden:
DECLARE myVar INT; SET myVar = 10;::contentReference[oaicite:59]{index=59}
Für Variablen auf Sitzungsebene können Sie die SET
-Anweisung verwenden:
SET @myVar = 10;::contentReference[oaicite:65]{index=65}
PostgreSQL
In PostgreSQL werden Variablen typischerweise innerhalb von prozeduralen Codeblöcken verwendet:
DO $$ DECLARE myVar INT := 10; BEGIN -- Use myVar here END $$;::contentReference[oaicite:77]{index=77}
Oracle (PL/SQL)
Oracle verwendet PL/SQL-Blöcke für die Variablendeklaration:
DECLARE myVar NUMBER := 10; BEGIN -- Use myVar here END;::contentReference[oaicite:87]{index=87}
Zuweisen von Werten zu Variablen
Nachdem Sie eine Variable deklariert haben, können Sie Werte mit den Anweisungen SET
oder SELECT
zuweisen.
Verwenden von SET
Die SET
-Anweisung weist einer Variablen einen einzelnen Wert zu:
SET @MyVariable = 20;::contentReference[oaicite:97]{index=97}
Verwenden von SELECT
Die SELECT
-Anweisung kann Werte aus einem Abfrageergebnis zuweisen:
SELECT @MyVariable = column_name FROM table_name WHERE condition;::contentReference[oaicite:103]{index=103}
Hinweis: Wenn die SELECT
-Anweisung mehrere Zeilen zurückgibt, wird der Variablen der Wert aus der letzten Zeile zugewiesen.
Gültigkeitsbereich von Variablen
Der Gültigkeitsbereich einer Variablen bestimmt, wo sie innerhalb des SQL-Codes aufgerufen werden kann.
-
SQL Server: Variablen haben einen lokalen Gültigkeitsbereich innerhalb des Batches, der gespeicherten Prozedur oder Funktion, in der sie deklariert werden. Sie sind außerhalb dieses Gültigkeitsbereichs nicht zugänglich.
-
MySQL: Variablen, die innerhalb gespeicherter Prozeduren deklariert werden, sind lokal für diese Prozeduren. Sitzungsvariablen (mit dem Präfix
@
) sind während der gesamten Sitzung zugänglich. -
PostgreSQL und Oracle: Variablen, die innerhalb eines Blocks deklariert werden, sind lokal für diesen Block und seine verschachtelten Unterblöcke.
Bewährte Verfahren
-
Verwenden Sie beschreibende Namen: Wählen Sie aussagekräftige Variablennamen, um die Lesbarkeit des Codes zu verbessern.
-
Initialisieren Sie Variablen: Initialisieren Sie Variablen immer, um unerwartete
NULL
-Werte zu vermeiden. -
Verwalten Sie den Gültigkeitsbereich sorgfältig: Achten Sie auf den Gültigkeitsbereich von Variablen, um Konflikte und unbeabsichtigtes Verhalten zu vermeiden.
-
Verwenden Sie
SET
für einzelne Zuweisungen: Bevorzugen SieSET
, wenn Sie einer Variablen einen einzelnen Wert zuweisen. -
Verwenden Sie
SELECT
für Zuweisungen aus Abfragen: Verwenden SieSELECT
, wenn Sie Werte aus Abfrageergebnissen zuweisen, und stellen Sie sicher, dass die Abfrage nur eine Zeile zurückgibt.
Fazit
SQL-Variablen sind leistungsstarke Werkzeuge, die die Flexibilität und Effizienz der SQL-Programmierung verbessern. Indem Entwickler verstehen, wie man Variablen in verschiedenen DBMS deklariert, zuweist und verwaltet, können sie dynamischeren und wartungsfreundlicheren SQL-Code schreiben.
FAQs
Um Werte für die Verwendung in SQL-Abfragen, Skripten und Prozeduren temporär zu speichern.
Verwenden Sie die Anweisung DECLARE
, z. B. DECLARE @MyVar INT;
.
Nein, die Regeln für den Gültigkeitsbereich von Variablen unterscheiden sich je nach Datenbanksystem.
Wir sind Leapcell, Ihre erste Wahl für das Hosten von Backend-Projekten.
Leapcell ist die Next-Gen Serverless Platform für Webhosting, Async Tasks und Redis:
Multi-Language Support
- Entwickeln Sie mit Node.js, Python, Go oder Rust.
Stellen Sie unbegrenzt Projekte kostenlos bereit
- zahlen Sie nur für die Nutzung – keine Anfragen, keine Gebühren.
Unschlagbare Kosteneffizienz
- Pay-as-you-go ohne Leerlaufgebühren.
- Beispiel: 25 $ unterstützen 6,94 Millionen Anfragen bei einer durchschnittlichen Antwortzeit von 60 ms.
Optimierte Entwicklererfahrung
- Intuitive Benutzeroberfläche für mühelose Einrichtung.
- Vollautomatische CI/CD-Pipelines und GitOps-Integration.
- Echtzeitmetriken und -protokollierung für umsetzbare Erkenntnisse.
Mühelose Skalierbarkeit und hohe Leistung
- Automatische Skalierung zur einfachen Bewältigung hoher Parallelität.
- Kein operativer Overhead – konzentrieren Sie sich einfach auf das Bauen.
Erfahren Sie mehr in der Dokumentation!
Folgen Sie uns auf X: @LeapcellHQ