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