Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Дополнительные возможности использования подзапросов, возвращающих единственное значение ⇐ ПредыдущаяСтр 3 из 3
Использование Exist (существование) Если в условии поиска необходимо указать, что из таблицы требуется выбрать только те записи, для которых подзапрос возвращает 1 или более значений, используется предложение Exist (подзапрос) #Выдать список всех покупателей, которые хотя бы один раз получали товар со склада. Select P.pokup_name from pokupateli P Where exist (select R.pokup_name from Rashod R Where P.pokup_name= R.pokup_name)//если существует запись об этом объекте в др таблице
Использование Singular (единственный) Если в условии поиска необходимо указать, что из таблицы выбираются только те записи, для которых подзапрос возвращает только 1 значение, используется предложение Singular (подзапрос) #Составить список покупателей купивших только 1 товар Информация о покупках хранится в таблице Rashod Select P.pokup_name from pokupateli P Where Singular (select R.pokup_name from Rashod R Where P.pokup_name= R.pokup_name) Использование подзапросов возвращающих множество значений 15.1 Использование All или some=any Если в условии поиска нужно, чтобы сравниваемое значение находилось в определенном отношении со всеми или некоторыми значениями из множества значений, возвращаемых подзапосом, применяют предложение <сравниваемое значение> [NOT] <оператор> {ALL|SOME|ANY} (<подзапрос>) Отношение сравниваемого значения и значений, возвращаемых подзапросом устанавливается словами: · ALL – указывает, что условие поиска истинно только тогда, когда сравниваемое значение находится в нужном отношении со всеми значениями, возвращаемыми подзапросом. · SOME(ANY) – условие поиска истинно, когда сравниваемое значение находится в нужном отношении хотя бы с одним значением, возвращаемым подзапросом.
# Определить все факты отгрузки товаров со склада, в которых количество отгруженного товара превышает среднее значение. Select R1.* from Rashod R1 Where R1.kolvo > ALL (select R2.kolvo, R2.pokup_name from Rashod R2, Group by R2.pokup_name)
#Перечислить все факты отгрузки товаров со склада, в которых количество превышает среднее отгрузки, хотя бы одного товара Select R1.* from Rashod R1 Where R1.kolvo > ANY (select R2.kolvo, R2.pokup_name from Rashod R2, Group by R2.pokup_name)
Использование Having и агрегатных функций для вложенных запросов Если в условии поиска для вложенного запроса нужно указать агрегатную функцию используется предложение HAVING
#Определить покупателя, у которого средняя покупка (количество) больше средней покупки других покупателей и среднее количество покупок этого покупателя. Select R1.pokup_name, avg (R1.kolvo) from Rashod R1 Group by R1.pokup_name Having R2.pokup_name, avg(R1.kolvo)>=ALL //имеющего ср. Количество>=всех.. (Select avg R2.kolvo from Rashod R2 Group by R2.pokup_name)
#Определить адрес покупателя, который приобрёл наибольшее количество товара Select * from Pokupateli P Where P.pokup_name = (select R.pokupname from Rashod R Having sum (R.kolvo) >=ALL (select sum(RR.kolvo), RR.pokup_name from Rashod RR Group by RR.pokup_name))
Объединение результатов выполнения нескольких запросов (UNION) Результирующие наборы данных должны иметь одинаковый набор возвращаемых столбцов, повторяющиеся записи не дублируются.
Внешние соединения Внешнее соединение определяется в предложении from согласно спецификации: Select {*|<значение1>[,<значение2>]} from <table1> <вид соединения> join <table2> ON <условие поиска>
Внешнее соединение отличается от внутреннего тем, что в результирующий набор данных включаются также записи ведущей таблицы соединения, которые объединяются с пустым множеством записей другой таблицы. Ведущую таблицу определяет вид соединения: · Left - левое внешнее соединение, когда ведущей является table1 · Right - правое внешнее соединение, когда ведущей является table2 · Full – полное внешнее соединение, когда ведущей являются обе таблицы. В результирующий набор данных включаются все записи обеих таблиц, по следующему алгоритму: если для записи table1 имеются записи table2 которые удовлетворяют условию соединения, то в результирующий набор данных будут включены все комбинации соединения таких записей таблицы table1 и table2, в противном случае, в результирующий набор данных будет включена запись table1 соединенная с пустой записью, тоже относится и к записям table2.
#Пусть имеют таблицы А и В со связью по столбцу P1 A
B
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 144; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.72.78 (0.006 с.) |