КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример 19.78
Пример 19.77. Подчиненный запрос Пример 19.76. Пример 19.75.
SELECT Фамилия, Аvg(Результат) AS Средний_балл FROM Результаты GROUP BY [№ зач.книжки]
SELECT [Код дисциплины], Аvg(Результат) AS Средний_балл FROM Результаты GROUP BY [Код дисциплины]
В первом случае создается список фамилий студентов с указанием среднего балла по каждому студенту, во втором случае – список кодов дисциплин и средний балл по дисциплине. SELECT Фамилия, Avg(Результат) AS Средний_балл FROM Результаты GROUP BY [№ зач.книжки] HAVING Аvg(Результат) > 4.5 SELECT [Код дисциплины], Avg(Результат) AS Средний_балл FROM Результаты GROUP BY [Код дисциплины] HAVING Аvg(Результат) < 4
В первом случае создается список фамилий студентов с указанием среднего балла по каждому студенту, выводятся фамилии тех студентов, которые имеют средний балл выше 4.5. Во втором случае выводится список кодов дисциплин со средним баллом при условии, что он ниже 4.
В инструкцию SELECT может быть вложена другая инструкция SELECT, SELECT...INTO, INSERT...INTO, DELETE или UPDATE. Различают основной и подчиненные запросы, которые являются вложенными в основной запрос. Подчиненный запрос можно использовать вместо выражения в списке полей инструкции SELECT или в предложениях WHERE и HAVING. Существуют три типа подчиненных запросов: сравнение (ANY | ALL | SOME) (инструкция); выражение [NOT] IN (инструкция); [NOT] EXISTS (инструкция). Первый тип – сравнение выражения с результатом подчиненного запроса. Ключевые слова: ANY – каждый (сравнение с каждым элементом подчиненной выборки). ALL – все (сравнение со всеми элементами подчиненной выборки). SOME – некоторые (сравнение с некоторыми элементами подчиненной выборки). SELECT* FROM Оценка WHERE [Результат] > ANY (SELECT [Результат] FROM Оценка WHERE Результат.[№ зач.книжки]="123124")
Отбираются только те записи из таблицы Оценка, в которых значение результата больше (выше) каждой оценки студента с № зач.книжки 123124. Второй тип – выражение, которое должно быть найдено в наборе записей, являющихся результатом выполнения подчиненного запроса. SELECT * FROM Студент WHERE [№ зач.книжки] IN (SELECT [№ зач.книжки] FROM Оценка WHERE [Результат] > =4) SELECT * FROM Дисциплина WHERE [Код дисциплины] NOT IN (SELECT [Код дисциплины] FROM Оценка)
В первом случае отбираются студенты, которые в таблице Оценка имеют результат 4 или выше. Во втором случае отбираются дисциплины, которые не встречаются в таблице Оценка. Третий тип – инструкция SELECT, заключенная в круглые скобки, с предикатом EXISTS (с необязательным зарезервированным словом NOT) в логическом выражении для определения, должен ли подчиненный запрос возвращать какие-либо записи.
Дата добавления: 2014-12-25; Просмотров: 381; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |