Junior
Was sind Unterabfragen in SQL?
sobes.tech KI
Antwort von AI
Eine Unterabfrage (oder verschachtelte Abfrage) in SQL ist eine SELECT-Abfrage, die innerhalb einer anderen SQL-Anweisung (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE) eingebettet ist. Die Unterabfrage wird zuerst ausgeführt, und ihr Ergebnis wird von der äußeren Abfrage verwendet.
-
Verwendung:
- In der
WHERE-Klausel zur Filterung von Daten. - In der
FROM-Klausel als virtuelle Tabelle (abgeleitete Tabelle). - In der
SELECT-Klausel zur Anzeige aggregierter oder verknüpfter Daten (Skalar-Unterabfrage). - Mit den Operatoren
IN,EXISTS,ANY,ALL.
- In der
-
Vorteile:
- Ermöglichen komplexe Datenauswahlen.
- Verbessern die Lesbarkeit von Abfragen im Vergleich zu komplexen Joins.
- Können als Datenquelle verwendet werden.
-
Typen:
- Skalar: Gibt einen einzelnen Wert (eine Zeile und eine Spalte) zurück.
- Mehrzeilig: Gibt eine Spalte und mehrere Zeilen zurück. Wird mit
IN,ANY,ALLverwendet. - Mehrspaltig: Gibt mehrere Spalten zurück. Wird selten verwendet.
- Korrelation: Hängt von der äußeren Abfrage ab und wird für jede Zeile der äußeren Abfrage ausgeführt.
Beispiel für die Verwendung in WHERE:
SELECT
order_id,
customer_id,
order_date
FROM
orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
customers
WHERE
city = 'New York'
);
Beispiel für die Verwendung in FROM:
SELECT
customer_name,
total_orders
FROM (
SELECT
c.customer_name,
COUNT(o.order_id) AS total_orders
FROM
customers c
JOIN
orders o ON c.customer_id = o.customer_id
GROUP BY
c.customer_name
) AS customer_order_counts
WHERE
total_orders > 10;