logo

SQL | Підзапит

У SQL підзапит можна просто визначити як запит в іншому запиті. Іншими словами, ми можемо сказати, що підзапит — це запит, вбудований у пункт WHERE іншого запиту SQL. Важливі правила для підзапитів:

  • Ви можете розмістити підзапит у ряді пропозицій SQL: ДЕ речення, речення HAVING, речення FROM. Підзапити можна використовувати з операторами SELECT, UPDATE, INSERT, DELETE разом із оператором виразу. Це може бути оператор рівності або оператор порівняння, наприклад =,>, =, <= і оператор Like.
  • Підзапит – це запит всередині іншого запиту. Зовнішній запит називається as основний запит а внутрішній запит називається as підзапит .
  • Підзапит зазвичай виконується першим, якщо в підзапиті їх немає співвідношення з основний запит , коли є співвідношення, аналізатор приймає рішення на льоту на який запит виконати пріоритет і відповідно використовує вихідні дані підзапиту.
  • Підзапит має бути в дужках.
  • Підзапити знаходяться в правій частині оператора порівняння.
  • СОРТУВАТИ ЗА команда не можна використовувати в підзапиті. GROUPBY Команда може використовуватися для виконання тієї ж функції, що й команда ORDER BY.
  • Використовуйте однорядкові оператори з однорядковими підзапитами. Використовуйте багаторядкові оператори з багаторядковими підзапитами.

Синтаксис: Для підзапитів немає загального синтаксису. Однак підзапити найчастіше використовуються з оператором SELECT, як показано нижче:

SELECT column_name FROM table_name WHERE column_name expression operator ( SELECT COLUMN_NAME from TABLE_NAME WHERE ... );>

Зразок таблиці :



БАЗА ДАНИХ

для циклу в c
ІМ'Я ROLL_NO МІСЦЕЗНАХОДЖЕННЯ НОМЕР ТЕЛЕФОНУ
ОЗП 101 Ченнаї 9988775566
Радж 102 Коїмбатор 8877665544
Сасі 103 Мадурай 7766553344
Лікування 104 Салем 8989898989
суматхі 105 Канчіпурам 8989856868

СТУДЕНТ

ІМ'Я ROLL_NO РОЗДІЛ
Лікування 104 А
суматхі 105 Б
Радж 102 А

Зразки запитів

послідовність фібоначчі java

:

  • Щоб відобразити NAME, LOCATION, PHONE_NUMBER студентів із таблиці DATABASE, розділ якої A
Select NAME, LOCATION, PHONE_NUMBER from DATABASE WHERE ROLL_NO IN (SELECT ROLL_NO from STUDENT where SECTION=’A’);>
    Пояснення: перший підзапит виконує SELECT ROLL_NO від STUDENT, де SECTION='A' повертає ROLL_NO з таблиці STUDENT, у якій SECTION дорівнює 'A'. Потім зовнішній запит виконує його та повертає NAME, LOCATION, PHONE_NUMBER з таблиці DATABASE студента, чий ROLL_NO повертається з внутрішнього підзапиту. Вихід:
ІМ'Я ROLL_NO МІСЦЕЗНАХОДЖЕННЯ НОМЕР ТЕЛЕФОНУ
Лікування 104 Салем 8989898989
Радж 102 Коїмбатор 8877665544
  • Приклад запиту вставки:

Таблиця1: Студент1

ІМ'Я ROLL_NO МІСЦЕЗНАХОДЖЕННЯ НОМЕР ТЕЛЕФОНУ
ОЗП 101 Ченнаї 9988773344
Раджу 102 Коімбатор 9090909090
Лікування 103 Салем 8989898989

Таблиця2: Студент2

ІМ'Я ROLL_NO МІСЦЕЗНАХОДЖЕННЯ НОМЕР ТЕЛЕФОНУ
Радж 111 Ченнаї 8787878787
Поки 112 Мумбаї 6565656565
Шрі 113 Коімбатор 7878787878
  • Щоб вставити Student2 в таблицю Student1:
INSERT INTO Student1 SELECT * FROM Student2;>
  • Вихід:
ІМ'Я ROLL_NO МІСЦЕЗНАХОДЖЕННЯ НОМЕР ТЕЛЕФОНУ
ОЗП 101 Ченнаї 9988773344
Раджу 102 Коімбатор 9090909090
Лікування 103 Салем 8989898989
Радж 111 Ченнаї 8787878787
Поки 112 мумбаї 6565656565
Шрі 113 Коімбатор 7878787878
  • Видалити студентів із таблиці Student2, rollno яких таке ж, як і в таблиці Student1, і має розташування як chennai
DELETE FROM Student2 WHERE ROLL_NO IN ( SELECT ROLL_NO FROM Student1 WHERE LOCATION = ’chennai’);>
  • Вихід:
1 row delete successfully.>
    Відобразити таблицю Student2:
ІМ'Я ROLL_NO МІСЦЕЗНАХОДЖЕННЯ НОМЕР ТЕЛЕФОНУ
Поки 112 Мумбаї 6565656565
Шрі 113 Коімбатор 7878787878
  • Щоб оновити ім’я студентів до гіків у таблиці Student2, розташування яких таке ж, як Raju,Ravi у таблиці Student1
UPDATE Student2 SET NAME=’geeks’ WHERE LOCATION IN ( SELECT LOCATION FROM Student1 WHERE NAME IN (‘Raju’,’Ravi’));>
  • Вихід:
1 row updated successfully.>
    Відобразити таблицю Student2:
ІМ'Я ROLL_NO МІСЦЕЗНАХОДЖЕННЯ НОМЕР ТЕЛЕФОНУ
Поки 112 Мумбаї 6565656565
вундеркінди 113 Коімбатор 7878787878