Sobes.tech
Junior

Τι είναι οι υποερωτήσεις σε SQL;

sobes.tech AI

Απάντηση από AI

Υποερώτημα (ή εμφωλευμένο ερώτημα) σε SQL είναι ένα ερώτημα SELECT που εισάγεται μέσα σε μια άλλη εντολή SQL (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE). Το υποερώτημα εκτελείται πρώτο και το αποτέλεσμα του χρησιμοποιείται από το εξωτερικό ερώτημα.

  • Χρήση:

    • Στη δήλωση WHERE για φιλτράρισμα δεδομένων.
    • Στη δήλωση FROM ως εικονικός πίνακας (παραγόμενος πίνακας).
    • Στη δήλωση SELECT για εμφάνιση συγκεντρωμένων ή σχετικών δεδομένων (ακέραιο υποερώτημα).
    • Με τους τελεστές IN, EXISTS, ANY, ALL.
  • Πλεονεκτήματα:

    • Επιτρέπουν την εκτέλεση πολύπλοκων ερωτημάτων δεδομένων.
    • Βελτιώνουν την αναγνωσιμότητα των ερωτημάτων σε σύγκριση με πολύπλοκες ενώσεις.
    • Μπορούν να χρησιμοποιηθούν ως πηγή δεδομένων.
  • Τύποι:

    • Ακέραιο: Επιστρέφει μια μόνο τιμή (μία γραμμή και μία στήλη).
    • Πολλαπλές γραμμές: Επιστρέφει μία στήλη και πολλές γραμμές. Χρησιμοποιείται με IN, ANY, ALL.
    • Πολλαπλές στήλες: Επιστρέφει πολλές στήλες. Χρησιμοποιείται σπάνια.
    • Συσχετιζόμενο: Εξαρτάται από το εξωτερικό ερώτημα και εκτελείται για κάθε γραμμή του εξωτερικού ερωτήματος.

Παράδειγμα χρήσης στο WHERE:

SELECT
    order_id,
    customer_id,
    order_date
FROM
    orders
WHERE
    customer_id IN (
        SELECT
            customer_id
        FROM
            customers
        WHERE
            city = 'New York'
    );

Παράδειγμα χρήσης στο 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;