Подзапросы

Подзапрос – это команда SELECT, вложенная в предложение другой команды SQL. Подзапросы могут использоваться в командах SELECT, UPDATE, INSERT, DELETE, CREATE TABLE. Например, каждая команда SELECT может включать в себя несколько других команд SELECT[9]. При этом подзапрос (внутренний запрос) генерирует значение, которое проверяется в предикате внешнего запроса. Подзапросы всегда выполняются от внутренних к внешнему, если только не являются коррелированными. Подзапрос может возвращать одну и более строк или один и более столбцов.

1. Подзапрос помещается в круглые скобки и должен стоять в правой части оператора сравнения внешнего запроса.

2. Подзапрос может обращаться к таблицам отличным от тех, к которым обращается основной запрос.

3. Подзапрос может задаваться в сложных критериях поиска внешних запросов с использованием логических связок AND и OR.

4. Предложение ORDER BY ставится последним в основном запросе и не может содержаться в подзапросе.

5. В команде SELECT подзапрос может стоять в предложениях FROM, WHERE, HAVING.

6. Подзапрос может содержать группы и групповые функции.

7. Имена столбцов в предложении SELECT внутреннего запроса должны стоять в той же последовательности, что и имена столбцов в левой части оператора сравнения внешнего запроса. Типы столбцов должны попарно соответствовать.

8. В критерии поиска могут использоваться логические операторы, операторы ANY (SOME), ALL.

Подзапрос на уровне предложения WHERE

Пример 71

Задача.

Вывести имена студентов и их оценки, если оценка не больше средней по университету.

Решение.

SELECT SName, Mark

FROM Student S,Progress P

WHERE S.NRecordBook=P. NRecordBook

AND Mark <=(SELECT AVG(Mark)


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: