Вкладені Запити
Свайпніть щоб показати меню
Адміністрація школи задоволена вашими нещодавніми досягненнями та прагне рухатися вперед.
Починаючи літні канікули, у вас є можливість дослідити нові методи та вдосконалити свої навички 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. Чому важливо, щоб тип даних стовпця, який повертає вкладений запит, збігався з типом стовпця, з яким його порівнюють?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат