Junior
Ce sunt subinterogările în SQL?
sobes.tech AI
Răspuns de la AI
O subinterogare (sau interogare imbricata) în SQL este o interogare SELECT inserată în interiorul unei alte instrucțiuni SQL (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). Subinterogarea se execută prima, iar rezultatul său este utilizat de interogarea externă.
-
Utilizare:
- În clauza
WHEREpentru filtrarea datelor. - În clauza
FROMca tabel virtual (tabel derivat). - În clauza
SELECTpentru afișarea datelor agregate sau legate (subinterogare scalară). - Cu operatorii
IN,EXISTS,ANY,ALL.
- În clauza
-
Avantaje:
- Permite efectuarea de interogări complexe de date.
- Îmbunătățește lizibilitatea interogărilor comparativ cu îmbinările complexe.
- Poate fi utilizată ca sursă de date.
-
Tipuri:
- Scalar: Returnează o singură valoare (un rând și o coloană).
- Multi-rând: Returnează o coloană și mai multe rânduri. Se folosește cu
IN,ANY,ALL. - Multi-coloană: Returnează mai multe coloane. Se folosește rar.
- ** Corelată**: Depinde de interogarea externă și se execută pentru fiecare rând al interogării externe.
Exemplu de utilizare în WHERE:
SELECT
order_id,
customer_id,
order_date
FROM
orders
WHERE
customer_id IN (
SELECT
customer_id
FROM
customers
WHERE
city = 'New York'
);
Exemplu de utilizare în 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;