Вкладені Запити
Свайпніть щоб показати меню
Адміністрація школи задоволена вашими нещодавніми досягненнями та прагне рухатися далі.
Починаючи літні канікули, у вас з'являється можливість дослідити нові методи та вдосконалити свої навички SQL.
Основна увага буде приділена вкладеним запитам — ключовому поняттю в SQL.
Вкладені запити, або вкладені підзапити, є невід'ємними складовими SQL, у яких один запит міститься всередині іншого. Такі конструкції забезпечують різноманітні операції, такі як фільтрація даних, обчислення та отримання інформації, часто потребуючи інтеграції підзапитів.
Розгляньте приклад із бази даних компанії. У міру зростання компанії до таблиці було додано нову таблицю department. Це змінює роботу нашої бази даних.
Ознайомтеся зі структурою нової таблиці, щоб побачити її роль у базі даних:
Нова таблиця містить відділи, їхні типи та бюджети. У таблиці employee, як ви пам'ятаєте, є інформація про відділ, до якого належить кожен співробітник.
Розгляньте приклад, де використовуються вкладені запити для отримання тих співробітників, які працюють у відділах з бюджетом $500,000 або менше:
1234567SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
Клаузула WHERE використовується для вказівки, що назва відділу повинна бути присутня у таблиці, отриманій за допомогою внутрішнього запиту.
Розбийте цей запит на два окремі, щоб побачити, як він працює. Спочатку отримаємо назви відділів з бюджетом $500 000 або менше (внутрішній запит):
123SELECT name FROM department WHERE budget <= 500000
Тепер, враховуючи отриманий результат, напишіть другий запит для отримання інформації про співробітників з цих відділів:
12345SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )
Результат цього запиту буде таким самим, як і у першому запиті.
Ось покроковий розбір:
-
Внутрішній запит отримує
namesвідділів, які нам потрібні; -
Умова
WHEREперевіряє, чи ці відділи є в таблиці з внутрішнього запиту; -
Отримуємо потрібний результат.
Ось базовий синтаксис для внутрішнього запиту:
SELECT columns
FROM table_1
WHERE column_name IN (
SELECT column
FROM table_2
other clauses
)
Використовуючи вкладені запити, звертайте увагу на такі важливі моменти:
-
Один результат у підзапиті: переконайтеся, що вкладений запит повертає лише один стовпець. Якщо використовується у порівнянні, бажано, щоб повертав одне значення. Це важливо для операторів
=,>,<,>=,<=,<>; -
Типи даних: тип даних повернутого стовпця має відповідати стовпцю, з яким відбувається порівняння, щоб уникнути помилок;
-
Оптимізація: вкладені запити можуть працювати повільно, особливо якщо виконуються для кожного рядка основного запиту;
-
Використання оператора IN: вкладені запити часто використовують оператор
INдля перевірки значень у підмножині. Також можна використовувати оператори порівняння для складніших умов.
1. Що таке вкладений запит у SQL?
2. Який оператор SQL найчастіше використовується з вкладеними запитами для перевірки значень у підмножині?
3. Чому важливо, щоб тип даних стовпця, який повертає вкладений запит, збігався з типом стовпця, з яким його порівнюють?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат