Junior
Czym są podzapytania w SQL?
sobes.tech AI
Odpowiedź od AI
Podzapytanie (lub zagnieżdżone zapytanie) w SQL to zapytanie SELECT wstawione wewnątrz innej instrukcji SQL (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). Podzapytanie jest wykonywane jako pierwsze, a jego wynik jest używany przez zapytanie zewnętrzne.
-
Użycie:
- W klauzuli
WHEREdo filtrowania danych. - W klauzuli
FROMjako wirtualna tabela (tabela pochodna). - W klauzuli
SELECTdo wyświetlania danych zagregowanych lub powiązanych (podzapytanie skalara). - Z operatorami
IN,EXISTS,ANY,ALL.
- W klauzuli
-
Zalety:
- Pozwalają na wykonywanie złożonych zapytań danych.
- Poprawiają czytelność zapytań w porównaniu do złożonych połączeń.
- Mogą być używane jako źródło danych.
-
Typy:
- Skalarne: Zwraca jedną wartość (jeden wiersz i jedną kolumnę).
- Wielowierszowe: Zwraca jedną kolumnę i wiele wierszy. Używane z
IN,ANY,ALL. - Wielokolumnowe: Zwraca wiele kolumn. Rzadko używane.
- Korelacyjne: Zależy od zapytania zewnętrznego i jest wykonywane dla każdego wiersza zapytania zewnętrznego.
Przykład użycia w WHERE:
SELECT
order_id,
customer_id,
order_date
FROM
orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
customers
WHERE
city = 'New York'
);
Przykład użycia w 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;