logo

SQL | Подзаявки в клаузата From

SQL Подзаявките са ценни функции, които ни позволяват да вградим една заявка в друга, добавяйки по-голяма значимост към извличането и манипулирането на данни по сложен начин. Използва се за настройка на временни таблици или междинни резултати, които впоследствие да бъдат използвани от външната заявка.

Подзаявка в клаузата FROM

Клаузата FROM може да се използва за указване на израз на подзаявка в SQL. Връзката, произведена от подзаявката, след това се използва като нова релация, върху която външната заявка се прилага за по-нататъшни операции. Подзаявки вFROMклаузата се използва, когато трябва да създадем временен набор от данни, който не съществува в нито една физическа таблица. Това може да бъде изключително полезно при работа със сложни набори от данни.

конкатенация java низ

Корелационните променливи от таблиците, посочени в клаузата FROM на външната заявка, не могат да се използват директно в подзаявките в клаузата FROM. По-долу са дадени два синтаксиса за използване на подзаявка в клаузата FROM, използвани в различни сценарии.



1. Проста подзаявка вFROMКлауза:

ИЗБЕРЕТЕ колона1 колона2

FROM (ИЗБЕРЕТЕ колона_x AS C1 колона_y FROM таблица WHERE условие) AS subquery_table

WHERE външно_условие;

системен софтуер

2. Подзаявка вFROMКлауза сJOIN:

ИЗБЕРЕТЕ колона1 колона2

FROM (SELECT column_x AS C1 column_y FROM table WHERE PREDICATE_X) AS table2

ПРИСЪЕДИНЕТЕ таблица1 КЪМ table2.some_column = table1.some_column

WHERE ПРЕДИКАТ;

java команда за връщане

Параметри:

  • Подзаявка : Вътрешната заявка, оградена в скоби. Той извлича данни, които ще действат като временна таблица.
  • Псевдоним : Подзаявката трябва да получи псевдоним (subquery_table), за да бъдат посочени във външната заявка.
  • Външна заявка : След това външната заявка може да работи с тази временна таблица, създадена от подзаявката, прилагайки филтри или извършвайки допълнителни операции.

Как работят подзаявките в клаузата FROM

  • Оценка на подзаявка : Първо се оценява подзаявката в клаузата from и след това резултатите от оценката се съхраняват в нова временна връзка. 
  • Външна заявка : След като подзаявката изпълни и върне набор от данни, външната заявка се оценява, като се избират само тези кортежи от временната релация, която удовлетворява предиката в клаузата where на външната заявка.

Пример за използване на подзаявка в клаузата FROM

Нека обсъдим някои примери от реалния свят, за да разберем как подзаявките в клаузата FROM работят на практика. Тук имаме две маси Инструктор таблица, която съдържа информация за инструкторите, включително тяхната заплата и отдел. Другият е Отдел таблица, която съдържа информация за различни отдели, включително бюджета на отдела.

Инструктор Таблица 

ИД на инструкторИмеОтделЗаплата
44547СмитКомпютърни науки95 000
44541БилЕлектрически55 000
47778самаХуманитарни науки44000
48147ЕрикМеханични80 000
411547балсамИнформационни технологии65 000
48898ЙенаГражданска50 000

Отдел Таблица

Име на отделБюджет
Компютърни науки100 000
Електрически80 000
Хуманитарни науки50 000
Механични40 000
Информационни технологии90 000
Гражданска60 000

Пример 1: Намерете всички професори, чиято заплата е по-голяма от средния бюджет на всички отдели. 

В този пример ще използваме подзаявка в клаузата FROM, за да изчислим средния бюджет на всички отдели и след това да направим сравнение със заплатите на инструкторите.

Запитване:   

хвърляне в sql
SELECT I.InstructorID I.Name I.Department I.Salary  
FROM (SELECT AVG(Budget) AS averageBudget FROM Department) AS BUDGET
Instructor AS I
WHERE I.Salary > BUDGET.averageBudget;

Изход  

ИД на инструкторИмеОтделЗаплата
44547СмитКомпютърни науки95 000
48147ЕрикМеханични80 000

Обяснение:

  • Средният бюджет на всички отдели от отношението на отдела е 70 000.
  • Ерик и Смит са единствените инструктори в отношението инструктор, чиято заплата е повече от 70 000 и следователно присъстват в отношението изход. 

Защо да използвате подзаявки в клаузата FROM?

Има различни предимства от използването на подзаявки в клаузата FROM, както е дадено по-долу:

  • Опростяване : Те могат да опростят сложни заявки, като ги разделят на по-малки, по-управляеми части. Не е необходимо да създавате временни таблици изрично във вашата база данни.
  • Подобрена четливост : Използването на подзаявки в клаузата FROM прави заявката по-четлива тъй като тя разделя > Гъвкавост : Подзаявките ви позволяват да извършвате операции, които в противен случай биха били неудобни, като агрегиране или филтриране по отношение на други набори от данни, без да е необходимо да създавате междинни таблици.

Заключение

Подзаявките в клаузата FROM ни позволяват да дефинираме  набори от временни резултати които могат да бъдат използвани от външни заявки. Те улесняват сложните SQL операции подобряват четимостта на заявките и осигуряват гъвкавост при филтриране и агрегиране на данни. Да знаете как да използвате подзаявки в рамките на клаузата FROM е основно умение за всеки SQL практикуващ, особено когато работите със сложни бази данни или когато трябва да извършите сложен анализ на данни.

Създаване на тест