Zurück zur Artikelliste Artikel
7 Leseminuten

Wie man Aliase in SQL-Abfragen verwendet

Ein SQL-Alias ist nützlich, um Ihre Abfragen zu vereinfachen und die Abfrage und ihr Ergebnis besser lesbar zu machen. In diesem Artikel wird erklärt, warum und wie Sie Aliasnamen in Ihren SQL-Abfragen verwenden können.

Sie können eine Tabelle oder eine Spalte vorübergehend umbenennen, indem Sie ihr einen anderen Namen geben. Dies ist ein so genannter SQL-Alias. Es handelt sich dabei um eine vorübergehende Änderung, die sich nicht auf den tatsächlichen Tabellennamen in der Datenbank auswirkt. Ein temporärer Tabellenname kann auch als Korrelationsname bezeichnet werden.

Aliasnamen sind eine Funktion von SQL, die von den meisten, wenn nicht sogar von allen relationalen Datenbankmanagementsystemen unterstützt wird. Wenn Sie noch keine Erfahrung mit SQL haben, sollten Sie unseren Kurs SQL für Anfänger besuchen, in dem auch das Thema Aliasnamen behandelt wird.

Warum einen Alias in SQL verwenden?

Es gibt mehrere Gründe, warum Sie die Verwendung eines SQL-Alias in Betracht ziehen sollten:

  • Komplexe Spalten- und Tabellennamen können vereinfacht werden oder einen passenderen Namen erhalten. Dadurch wird die SQL-Abfrage klarer und leichter verständlich.
  • Aliase sind nützlich, wenn wir mit JOIN Operationen oder Aggregatfunktionen wie COUNT() und SUM() arbeiten.
  • Ein SQL-Alias ist auch praktisch, wenn man einen Self-Join verwendet.
  • Wenn Sie mit mehreren Tabellen arbeiten, ist es eine gute Praxis, allen Spaltennamen einen Alias voranzustellen, damit Sie leicht erkennen können, welche Spalte zu welcher Tabelle gehört.

Übrigens sind Aliasnamen nur ein Begriff, den SQL-Benutzer kennen sollten. Weitere wichtige SQL-Begriffe finden Sie in diesem Artikel, SQL-Begriffe, die Anfänger kennen sollten.

Schauen wir uns nun die Verwendung von Aliasen genauer an und beginnen mit den Spalten.

Umbenennen von Spalten mit Aliasen

Ein Alias kann verwendet werden, um die Spalten in Ihrer SQL-Abfrage umzubenennen. Die Syntax ist wie folgt:

SELECT 
  column_1 AS alias_1, 
  column_2 AS alias_2, 
  …
FROM table_name;

Wenden wir dies nun auf ein praktisches Beispiel an. Wir werden die folgende Tabelle verwenden, die grundlegende Informationen über unsere customers:

customer_idcustomer_nameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51
4William Stewart62

Zunächst verwenden wir eine Abfrage, die keine Aliasnamen für die Spaltennamen hat. Stellen Sie sich vor, Sie möchten sehen, welche Kunden unter 60 Jahre alt sind. Wir könnten die folgende Abfrage schreiben:

SELECT
  customer_id,
  customer_name, 
  age 
FROM customers 
WHERE age < 60

Die Ausführung dieser Abfrage wird diese Ergebnismenge zurückgeben:

customer_idcustomer_nameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51

Nun wollen wir unsere Spaltenaliase einführen. Die folgende Abfrage enthält nun einen Alias für zwei Spalten:

SELECT
  customer_id AS id,
  customer_name AS name, 
  age 
FROM customers 
WHERE age < 60
idnameage
1Daniel Case23
2Josh Beverly47
3Bruce Roman51

Vergleichen Sie dies mit dem Ergebnis aus unserem vorherigen Beispiel. Achten Sie besonders auf die Spaltennamen und Sie werden die Auswirkungen unserer Aliase bemerken. Die Spalte customer_id wird nun als id angezeigt. Die Spalte customer_name wird als Name angezeigt. Die Spalte Alter bleibt unverändert. Dies ist unser gewünschtes Ergebnis!

Beachten Sie, dass das Schlüsselwort AS bei der Verwendung von Aliasen völlig optional ist. Diese beiden SQL-Abfragen führen zum Beispiel genau dieselbe Funktion aus:

SELECT 
  customer_id AS id, 
  customer_name AS name, 
  age 
FROM customers 
WHERE age < 60

SELECT 
  customer_id id, 
  customer_name name, 
  age 
FROM customers 
WHERE age < 60

Wenn der von Ihnen verwendete Alias Leerzeichen enthält, müssen Sie den Alias in Anführungszeichen setzen. Ein Beispiel:

SELECT customer_name AS 'Customer Name'
FROM customers

Damit ist die Verwendung eines SQL-Alias zum Umbenennen von Spalten abgeschlossen. Als Nächstes werden wir einen Alias verwenden, um Tabellen umzubenennen!

Umbenennen von Tabellen mit SQL-Alias

Ein Alias kann verwendet werden, um die Tabellen umzubenennen, die in Ihrer SQL-Abfrage verwendet werden. Die Syntax von Tabellenaliasen lautet:

SELECT 
  column_1, 
  column_2, 
  …
FROM table_name AS alias_name;

Wenden wir diese Syntax auf ein Beispiel an. Wir werden die gleiche Tabelle verwenden:

Kunden

SELECT 
  customer_name, 
  age 
FROM customers AS c 
WHERE c.age < 60

Wenn Sie diese Abfrage ausführen, erhalten Sie die folgenden Daten zurück:

customer_nameage
Daniel Case23
Josh Beverly47
Bruce Roman51

Wenn Sie einen Tabellennamen vor einem Spaltennamen in der WHERE -Klausel verwenden, können Sie nicht den ursprünglichen Tabellennamen verwenden; Sie müssen den Tabellenalias verwenden. Auch wenn Sie die Tabelle in der Liste SELECT angeben möchten, müssen Sie den Alias verwenden (z. B. c.customer_name). Auch hier ist das Schlüsselwort AS völlig optional. Die Abfrage funktioniert auch ohne dieses Schlüsselwort.

Verwendung eines Alias mit einem Self-Join

Ein Self-Join ermöglicht es Ihnen, eine Tabelle mit sich selbst zu verknüpfen. Dies ist nützlich, wenn Sie hierarchische Daten abfragen oder Zeilen innerhalb derselben Tabelle vergleichen. Im Wesentlichen behandeln Sie die Tabelle als zwei (oder mehr) separate Tabellen, indem Sie Aliasnamen zuweisen. Wenn Sie mit Self-Join nicht vertraut sind, lesen Sie diesen Artikel mit sieben Beispielen für Self-Join-Tabellen in SQL.

Beim Self-Join einer Tabelle können Sie eine LEFT JOIN oder eine INNER JOIN verwenden. Bei einem Self-Join ist es wichtig, für jede Tabelle einen logischen SQL-Alias zu verwenden. (Aliase sind auch für Unterabfragen nützlich. Ein Beispiel dafür finden Sie in diesem Artikel, in dem Unterabfragen ausführlich erklärt werden).

Schauen wir uns an, wie wir eine Abfrage schreiben können, die JOIN eine Tabelle auf sich selbst bezieht. Für unser Beispiel werden wir die Tabelle employeeverwenden, die alle unsere Mitarbeiter, ihre Abteilungs-IDs und die IDs ihrer Manager enthält.

idemployee_namedepartment_idmanager_id
1John Walker4NULL
2Bob Pendergast11
3Penelope Cruz21
4Lucy Summers51
5Tim Saunter31
6Mary Smith23

Angenommen, wir möchten eine Ergebnismenge, die nur einen Mitarbeiter und seinen Vorgesetzten anzeigt. Wie können wir das erreichen? Dies lässt sich leicht durch die geschickte Verwendung von Aliasen in Kombination mit einem Self-Join erreichen. Wir versuchen es zunächst mit LEFT JOIN. Sehen Sie sich den folgenden Codeausschnitt an:

SELECT 
  e.employee_name AS 'Employee',
  m.employee_name AS 'Manager'
FROM employee e
LEFT JOIN employee m
  ON m.id = e.manager_id

Bei der Verknüpfung der Tabellen stellen wir sicher, dass der Wert in der Spalte id aus der Tabelle des Managers (employee m) gleich dem Wert in der Spalte manager_id aus der Tabelle der Mitarbeiter (employee e). Durch die Verwendung von LEFT JOIN anstelle von JOIN werden alle Mitarbeiter angezeigt, auch diejenigen, die keinen Vorgesetzten haben.

Achten Sie auf den Fehler der mehrdeutigen Spalte; er kann leicht auftreten, wenn Sie beim Schreiben einer Self-Join-Abfrage nicht vorsichtig sind. Um diesen Fehler zu vermeiden, müssen Sie explizit die Tabelle angeben, zu der die Spalte gehört (employee benennen Sie e oder employee du genannt m). In diesem Beispiel ist die erste Spalte aus der Tabelle e (also e.employee_name) und die zweite Spalte stammt aus der Tabelle m (also m.employee_name).

Die Ausführung der obigen Abfrage ergibt die folgende Ergebnismenge:

EmployeeManager
John WalkerNULL
Bob PendergastJohn Walker
Penelope CruzJohn Walker
Lucy SummersJohn Walker
Tim SaunterJohn Walker
Mary SmithPenelope Cruz

Das ist unser gewünschtes Ergebnis! Sie können deutlich jeden Mitarbeiter und seinen Vorgesetzten sehen. Die meisten Mitarbeiter berichten an John Walker. Sie können jedoch sehen, dass der Vorgesetzte von Mary Smith Penelope Cruz ist. Beachten Sie den Wert NULL unter der Spalte Manager für John Walker. Das liegt daran, dass John Walker keinen Vorgesetzten hat; er ist der Chef. Wir konnten ihn in unsere Ergebnisse aufnehmen, weil wir LEFT JOIN verwendet haben.

Ändern wir die Abfrage leicht ab und verwenden wir INNER JOIN:

SELECT
  e.employee_name AS 'Employee',
  m.employee_name AS 'Manager'
FROM employee e
INNER JOIN employee m
  ON m.id = e.manager_id
EmployeeManager
Bob PendergastJohn Walker
Penelope CruzJohn Walker
Lucy SummersJohn Walker
Tim SaunterJohn Walker
Mary SmithPenelope Cruz

Der einzige große Unterschied ist das Fehlen von John Walker in der Spalte Employee. Das liegt daran, dass der manager_id Wert für ihn NULL war und INNER JOIN nur übereinstimmende Spalten zurückgibt - NULL Werte werden nicht berücksichtigt.

Jetzt können Sie Self-Joins durchführen, die in vielen verschiedenen Anwendungsfällen eingesetzt werden können. Wenn Sie mehr Beispiele für Self-Joins sehen möchten, um das Thema vollständig zu verstehen, lesen Sie diesen Blog-Beitrag darüber, wie man dieselbe Tabelle zweimal verknüpft!

Bessere SQL-Abfragen mit Aliasen schreiben

In diesem Artikel haben wir den Wert von SQL-Aliasen aufgezeigt. Sie helfen Ihnen, Daten übersichtlicher darzustellen - und haben den zusätzlichen Vorteil, dass sie potenziell sensible Tabellen- oder Spaltennamen verbergen. Wenn Ihnen dieser Artikel gefallen hat und Sie weiter über SQL lernen möchten, sollten Sie unseren SQL-Grundlagen Lernpfad in Betracht ziehen. Dort lernen Sie die grundlegenden SQL-Anweisungen wie WHERE, GROUP BY, ORDER BY und HAVING kennen. Außerdem erfahren Sie, wie Sie JOIN Tabellen erstellen und Daten in einer Datenbank hinzufügen, ändern oder entfernen können.