SQL > SQL Befehle > Inline-Ansicht 

Eine Inline-Ansicht ist eine SELECT-Anweisung in der FROM-Klausel. Eine Ansicht ist eine virtuelle Tabelle, die die Eigenschaften einer Tabelle hat, jedoch keine tatsächlichen Daten enthält. In einer Inline-Ansichtskonstruktion stammt die Datenquelle tatsächlich aus der Inline-Ansicht, anstatt nach dem FROM-Schlüsselwort den Namen oder die Namen von Tabellen anzugeben.

Eine Inline-Ansicht wird manchmal als abgeleitete Tabelle bezeichnet. Diese beiden Begriffe werden austauschbar verwendet.

Syntax

Die Syntax für eine Inline-Ansicht ist die folgende:

SELECT "Spalten_Name" FROM (Inline_Ansicht);

Beispiel

Nehmen wir an, wir haben zwei Tabellen: Die erste Tabelle ist User_Address, die jedem Benutzer einen ZIP-Code zuordnet; die zweite Tabelle ist User_Score, die alle Punktzahlen jedes Benutzers aufzeichnet. Die Frage lautet: Wie schreibt man eine SQL-Abfrage, um die Anzahl der Benutzer zu finden, die für jeden ZIP-Code mehr als 200 Punkte erzielt haben?

Ohne eine Inline-Ansicht zu verwenden, können wir dies in zwei Schritten erreichen:

Abfrage 1

CREATE TABLE User_Higher_Than_200
SELECT User_ID, SUM(Score) FROM User_Score
GROUP BY User_ID
HAVING SUM(Score) > 200;

Abfrage 2

SELECT a2.ZIP_CODE, COUNT(a1.User_ID)
FROM User_Higher_Than_200 a1, User_Address a2
WHERE a1.User_ID = a2.User_ID
GROUP BY a2.ZIP_CODE;

Im obigen Code haben wir eine temporäre Tabelle, User_Higher_Than_200, eingeführt, um die Liste der Benutzer zu speichern, die mehr als 200 Punkte erzielt haben. User_Higher_Than_200 wird dann verwendet, um sich mit der Tabelle User_Address zu verbinden und das endgültige Ergebnis zu erhalten.

Wir können das obige SQL unter Verwendung der Inline-Ansichtskonstruktion wie folgt vereinfachen:

Abfrage 3

SELECT a2.ZIP_CODE, COUNT(a1.User_ID)
FROM
(SELECT User_ID, SUM(Score) FROM User_Score GROUP BY User_ID HAVING SUM(Score) > 200) a1,
User_Address a2
WHERE a1.User_ID = a2.User_ID
GROUP BY a2.ZIP_CODE;

Der in Rot dargestellte Code repräsentiert eine Inline-Ansicht. Hier gibt es zwei Vorteile bei der Verwendung einer Inline-Ansicht:

1. Es ist nicht erforderlich, die temporäre Tabelle zu erstellen. Dies verhindert, dass die Datenbank zu viele Objekte hat, was positiv ist, da jedes zusätzliche Objekt in der Datenbank Ressourcen zur Verwaltung kostet.

2. Wir können eine einzige SQL-Abfrage verwenden, um zu erreichen, was wir wollen.

Beachten Sie, dass wir die Inline-Ansicht genau wie eine Tabelle behandeln. Wenn wir Abfrage 2 und Abfrage 3 vergleichen, sehen wir, dass der einzige Unterschied darin besteht, dass wir den Namen der temporären Tabelle in Abfrage 2 durch die Inline-Ansichts-Anweisung in Abfrage 3 ersetzen. Alles andere bleibt gleich. 

SQL INTERSECT >>

Diese Seite wurde zuletzt am 27.12.2023 aktualisiert




Copyright © 2024   1keydata.com   Alle Rechte vorbehalten