Sobes.tech
Junior

Суъалҳо дар SQL чӣ гунаанд?

sobes.tech AI

Ҷавоб аз AI

SQL-да иловаштирилган сўров (ёки ўзаро ўрганилган сўров) — бу бошқа бир SQL буйруғи (SELECT, INSERT, UPDATE, DELETE, CREATE TABLE) ичига жойлаштирилган SELECT сўрови. Иловаштирилган сўров аввал ижро этилади ва унинг натижаси ташқи сўров томонидан қўлланилади.

  • Қўлланилиши:

    • Маълумотларни филтрлаш учун 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;