КАТЕГОРИИ: Архитектура-(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) |
Экзаменационный билет № 10. Запросы, использующие соединение
ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 9 ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 8 ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 7 ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 6
Запросы, использующие соединение. Соединение таблицы с ней самой. Соединение таблицы с ней самой. Выдать все пары поставщиков из одного города. Select one.номер_поставщика, two.номер_поставщика from S one, S two where one.город = two.город and one.номер_поставщика < two.номер_поставщика
Запросы, использующие соединение. Соединение трех таблиц. Выдать все пары названий городов таких, что какой-либо поставщик, находящийся в первом из этих городов, поставляет деталь, хранимую в другом городе. Select distinct S.город, P.город from S, SP, P where S.номер_поставщика = SP.номер_поставщика and P.номер_детали = SP.номер_детали
Группирование. Оператор group by. Оператор group by группирует таблицу, представленную фразой from в группы т.о., чтобы в каждой группе все строки имели одно и тоже значение поля, указанного во фразе group by. Далее, к каждой группе перекомпанованной таблицы (а не к каждой строке исходной таблицы) применяется фраза select, в результате чего, каждое выражение во фразе select принимает единственное значение для группы. Выдать для каждой поставляемой детали ее номер и общий объем поставок, за исключением поставок поставщика S1. Select номер_детали, sum(количество) from SP where номер_поставщика <>'S1' group by номер_детали
Группирование. Оператор having. Фраза having играет ту же роль для групп, что и фраза where для строк и используется для того, чтобы исключать группы, точно так же, как where используется для исключения строк. Выражение во фразе having должно принимать единственное значение для группы. Выдать номера деталей, поставляемых более чем одним поставщиком. Select номер_детали from SP group by номер_детали having count(*) > 1
Построение внешнего соединения и представления. Простое (внутреннее) соединение. В простом (внутреннем) соединении результат содержит только комбинации строк из тех таблиц, которые удовлетворяют условиям соединения. Строки, которые не удовлетворяют условиям соединения, отбрасываются. Во внешнем соединении результат содержит комбинации строк из тех таблиц, которые удовлетворяют условиям соединения, а также строки, которые были бы отброшены при простом соединении этих таблиц, даже если в подчиненной таблице не найдена ни одна соответствующая строка. Строки главной таблицы, для которых не найдено в подчиненной таблице ни одной соответствующей строки, получают значения, состоящие из одних Null-значений для каждого столбца.
1. Простое (внутреннее) соединение Select S.номер_поставщика, S.фамилия, SP.количество from S, SP where S.номер_поставщика=SP.номер_поставщика Для построения внутренних и внешних соединений стандарт SQL2 предусматривает следующую конструкцию во фразе from: источник1 тип соединения источник2 [on (условие [,...])]
С учетом приведенной конструкции следующий запрос на построение простого (внутреннего) соединение даст результат, аналогичный предыдущему запросу. Select S.номер_поставщика, S.фамилия, SP.количество from S inner join SP on (S.номер_поставщика=SP.номер_поставщика)
Дата добавления: 2015-05-10; Просмотров: 330; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |