Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Дополнительные возможности использования подзапросов, возвращающих единственное значениеСодержание книги
Поиск на нашем сайте Использование 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; просмотров: 217; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.007 с.) |