Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Вкладені Запити | Section
Розширений Рівень SQL

Вкладені Запити

Свайпніть щоб показати меню

Адміністрація школи задоволена вашими нещодавніми досягненнями та прагне рухатися вперед.

Починаючи літні канікули, у вас є можливість дослідити нові методи та вдосконалити свої навички SQL.

Ваша увага буде зосереджена на вкладених запитах — ключовій концепції в SQL.

Note
Визначення

Вкладені запити, або вкладені підзапити, є невід'ємними складовими SQL, у яких один запит міститься всередині іншого. Такі конструкції дозволяють виконувати різноманітні операції, такі як фільтрація даних, обчислення та отримання інформації, часто потребуючи інтеграції підзапитів.

Розгляньте приклад із бази даних компанії. У міру зростання компанії до таблиць додано нову таблицю department. Це змінює роботу нашої бази даних.

Ознайомтеся зі структурою нової таблиці, щоб зрозуміти її роль у базі даних:

Нова таблиця містить відділи, їхні типи та бюджети. У таблиці employee, як ви пам'ятаєте, міститься інформація про відділ, до якого належить кожен працівник.

Розгляньте приклад, де використовуються вкладені запити для отримання тих працівників, які працюють у відділах з бюджетом $500,000 або менше:

1234567
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )

Клаузула WHERE використовується для вказівки, що назва відділу повинна бути присутня у таблиці, отриманій за допомогою внутрішнього запиту.

Розбийте цей запит на два окремих, щоб побачити, як він працює. Спочатку отримаємо назви відділів з бюджетом $500 000 або менше (внутрішній запит):

123
SELECT name FROM department WHERE budget <= 500000

Тепер, враховуючи отриманий результат, напишіть другий запит для отримання інформації про співробітників з цих відділів:

12345
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )

Результат цього запиту буде таким самим, як і у першого запиту.

Ось покроковий розбір:

  1. Внутрішній запит отримує names відділів, які нам потрібні;

  2. Умова WHERE перевіряє, чи ці відділи є в таблиці з внутрішнього запиту;

  3. Отримуємо потрібний результат.

Ось базовий синтаксис для внутрішнього запиту:

SELECT columns
FROM table_1
WHERE column_name IN (
  SELECT column
  FROM table_2
  other clauses
)

Під час використання вкладених запитів звертайте увагу на такі важливі моменти:

  1. Один результат у підзапиті: переконайтеся, що вкладений запит повертає лише один стовпець. Якщо використовується у порівнянні, бажано, щоб повертав одне значення. Це важливо для операторів =, >, <, >=, <=, <>;

  2. Типи даних: тип даних повернутого стовпця має відповідати стовпцю, з яким ви його порівнюєте, щоб уникнути помилок;

  3. Оптимізація: вкладені запити можуть працювати повільно, особливо якщо виконуються для кожного рядка основного запиту;

  4. Використання оператора IN: вкладені запити часто використовують оператор IN для перевірки значень у підмножині. Також можна використовувати оператори порівняння для складніших умов.

1. Що таке вкладений запит у SQL?

2. Який оператор SQL зазвичай використовується з вкладеними запитами для перевірки значень у підмножині?

3. Чому важливо, щоб тип даних стовпця, який повертає вкладений запит, збігався з типом стовпця, з яким його порівнюють?

question mark

Що таке вкладений запит у SQL?

Виберіть правильну відповідь

question mark

Який оператор SQL зазвичай використовується з вкладеними запитами для перевірки значень у підмножині?

Виберіть правильну відповідь

question mark

Чому важливо, щоб тип даних стовпця, який повертає вкладений запит, збігався з типом стовпця, з яким його порівнюють?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 9

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Вкладені Запити

Адміністрація школи задоволена вашими нещодавніми досягненнями та прагне рухатися вперед.

Починаючи літні канікули, у вас є можливість дослідити нові методи та вдосконалити свої навички SQL.

Ваша увага буде зосереджена на вкладених запитах — ключовій концепції в SQL.

Note
Визначення

Вкладені запити, або вкладені підзапити, є невід'ємними складовими SQL, у яких один запит міститься всередині іншого. Такі конструкції дозволяють виконувати різноманітні операції, такі як фільтрація даних, обчислення та отримання інформації, часто потребуючи інтеграції підзапитів.

Розгляньте приклад із бази даних компанії. У міру зростання компанії до таблиць додано нову таблицю department. Це змінює роботу нашої бази даних.

Ознайомтеся зі структурою нової таблиці, щоб зрозуміти її роль у базі даних:

Нова таблиця містить відділи, їхні типи та бюджети. У таблиці employee, як ви пам'ятаєте, міститься інформація про відділ, до якого належить кожен працівник.

Розгляньте приклад, де використовуються вкладені запити для отримання тих працівників, які працюють у відділах з бюджетом $500,000 або менше:

1234567
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )

Клаузула WHERE використовується для вказівки, що назва відділу повинна бути присутня у таблиці, отриманій за допомогою внутрішнього запиту.

Розбийте цей запит на два окремих, щоб побачити, як він працює. Спочатку отримаємо назви відділів з бюджетом $500 000 або менше (внутрішній запит):

123
SELECT name FROM department WHERE budget <= 500000

Тепер, враховуючи отриманий результат, напишіть другий запит для отримання інформації про співробітників з цих відділів:

12345
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )

Результат цього запиту буде таким самим, як і у першого запиту.

Ось покроковий розбір:

  1. Внутрішній запит отримує names відділів, які нам потрібні;

  2. Умова WHERE перевіряє, чи ці відділи є в таблиці з внутрішнього запиту;

  3. Отримуємо потрібний результат.

Ось базовий синтаксис для внутрішнього запиту:

SELECT columns
FROM table_1
WHERE column_name IN (
  SELECT column
  FROM table_2
  other clauses
)

Під час використання вкладених запитів звертайте увагу на такі важливі моменти:

  1. Один результат у підзапиті: переконайтеся, що вкладений запит повертає лише один стовпець. Якщо використовується у порівнянні, бажано, щоб повертав одне значення. Це важливо для операторів =, >, <, >=, <=, <>;

  2. Типи даних: тип даних повернутого стовпця має відповідати стовпцю, з яким ви його порівнюєте, щоб уникнути помилок;

  3. Оптимізація: вкладені запити можуть працювати повільно, особливо якщо виконуються для кожного рядка основного запиту;

  4. Використання оператора IN: вкладені запити часто використовують оператор IN для перевірки значень у підмножині. Також можна використовувати оператори порівняння для складніших умов.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 9
some-alt