23rd Jun 2022 7 Leseminuten Wie man Aliase in SQL-Abfragen verwendet Andrew Bone SQL-Grundlagen Inhaltsverzeichnis Warum einen Alias in SQL verwenden? Umbenennen von Spalten mit Aliasen Umbenennen von Tabellen mit SQL-Alias Verwendung eines Alias mit einem Self-Join Bessere SQL-Abfragen mit Aliasen schreiben 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. Tags: SQL-Grundlagen