Sobes.tech
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 WHERE do filtrowania danych.
    • W klauzuli FROM jako wirtualna tabela (tabela pochodna).
    • W klauzuli SELECT do wyświetlania danych zagregowanych lub powiązanych (podzapytanie skalara).
    • Z operatorami IN, EXISTS, ANY, ALL.
  • 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;