Главная » Просмотр файлов » Программирование баз данных MS SQL Server

Программирование баз данных MS SQL Server (1084479), страница 38

Файл №1084479 Программирование баз данных MS SQL Server (Программирование баз данных MS SQL Server) 38 страницаПрограммирование баз данных MS SQL Server (1084479) страница 382018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 38)

13 В запросах с конструкцией 0М10)) в отличие от тех запросов, в которых не применяется эта конструкция, по умолчанию принято использование опции 01БТТНСТ, а не АЬЬ. Из-за этого на первых порах при освоении запросов такого типа может возникать значительная путаница. Ведь при выполнении других запросов происходит возврат всех строк, независимо от того, являются ли они дубликатами по отношению к другим строкам или нет, но результаты запросов с конструкцией 0))10М выглядят иначе — если в запросе не используется ключевое слово АЬЬ, то происходит возврат только одной из всех дублирующихся строк. Соединения 155 Рис. 4.1.

Схематическая иллюсюРавил и4юнесса фвРмиРвванил резульюатвв вбзедииеиил Как обычно, рассмотрим несколько примеров использования запросов с конструкцией ПН1ОН. ы ' " "„» ' в Применение запроса с конструкцией ситом Вначале рассмотрим запрос с конструкцией БИ10И, который действительно может найти практическое применение (автор убедился в том, что подобные запросы действительно бывают нужны в реальном мире, хотя и не очень часто). Например, предположим, что приближаются новогодние каникулы и мы хотим отправить открытку и поздравить с Новым годом всех тех, кто имеет отношение к компании 1чоггЬюьпй. Для этого необходимо составить список полных адресов, по которым должны быть отправлены открытки, и включить туда служащих, заказчиков и поставщиков компании.

Такую задачу можно выполнить, воспользовавшись всего лишь одним запросом, подобным приведенному ниже. 156 Глава 4 ОБЕ Могспе1псС ЯЕЬЕСт Соврапуиаве АБ Аппгевв, Сгсу, Ведтоп, Ровса1сос4е, Соппсгу ГВОМ Спвсовегв ОН10н ЯЕЬЕСТ Соврапуиаве, АсЫгевв, Сгсу, Ве91оп, Розса1соое, Соппсгу РВОМ Бпрр1гегв ~Л41 ОН ЯЕЬЕСТ Гтгвсиаве + ' АсЫгевв, Сгсу, Ве91оп, Ровса1сос4е, Соппсгу РВОМ Евр1оуеев лаве, + Ьавсиаве, Этот запрос возвращает только один результирующий набор (табл. 4.13), но в нем содержатся данные из всех трех запросов. Таблица 4.13.

Результаты выполнения оператора соединения Сазу Ведзоп Роеса1сос4е Соипагу А1тгес5в Гпссегх1все ОЬеге Бог. 57 Бег1гп НОЬЬ 12209 Бегвапу Апа тгп7'Шо Еврагеоасов у Ье1ас1ов Мехтсо О.Р. НОЬ1 Мехтсо Аеоа. с1е 1а Сопвстсистоп 2222 5021 Апс5гее Рп11ег 908 Н. Саргса1 Нау Тасова НА 98401 ОБА Нг1вап КаХа Не1втпх1 21240 Гзп1апс Кевьпвхасп 45 Но1вк1 Еа7агс п1. Г11сгоеа 58 Нагвгаеа НОЬЬ 01-012 Ро1апо Еаапве Чегкоор ВТБпеед 22 Еаапоав БпоертаЬг1ех НПЬЬ 9999 ЕЕ Месьег1апов Итак, в этом списке никто не забыт.

Компания А1Егессв — заказчик, Апс)ген Гп13.ег— служащий, а компания Еаапве — поставщик. Соединения 157 Во в)земя отладки этого загфоса авпиф пое)чол довольно несовместимые рвзульпилпы со~. тировки спфок, пагученных гфи выпагнении зап~юса, поэтому не стоит удивляться, если будет пагучена последовательность спфок, значительно отличающаяся от гфиведенной в табл. 4. 13. Однако важнее то, что должно быть получено гфимерно 129 ст)юк ('кагичеспюо строк изменяется в зависимости от того, какие иэменения были внесеньг в базу данных ИохсЬнцпа перед этим).

Если же требуетсгс чтобы ))тульттпы бъсги возвращены в огфеделеннаи по)зядке, то следует применить конст(зук цию ОКОЕМ Е У. В опеРатгфах с консвфукцией 0Н10Н консвфукция 0Я0Ей ВУ должна входить в состав последнего запфоса, на кото)гъгй Расгфосвфаняется опе)гация объединения (0Н10И). Описание полученнык реэультатоа Вместо трех результирующих наборов получен только один. СУБД ЯЯЕ $егчег выполняет все эти три запроса и по существу добавляет результаты, полученные позже, к результатам, сформированным раньше, создавая один объединенный результирующий набор.

Еще раз следует подчеркнуть, что заголовки для возвращаемых столбцов берутся из списка выборки первого запроса. СЕЕАТЕ ТАВЬЕ ПпаопТевх1 Тасо1 со12 СМЕАТЕ ТАВОТЕ ПпэопТевх2 1ооо1 со14 ) 1МЯЕМТ 1МТО ПпъопТевх1 ЧАг ЦЕЯ ) 'ААА') 1МЯЕЕТ 1МТО ПпьопТевх1 ЧАЕПЕ$ и ВВВ ' ) Тпх 1ВЕМТ1ТГ, сваг)3), 1пх 1ВЕМТТТТ, саве(3), Переходя ко второму примеру, автор хочет показать, какие действия осуществляются оператором 0М10М применительно к дублирующимся строкам; по существу при обработке дублирующихся строк происходят действия, обратные по отношению к обычному запросу, поскольку по умолчанию в процессе объединения результирующих наборов дубликаты строк отбрасываются.

(При описании запросов других типов было принято предположение, что необходимо сохранить все строки в результатах, если не задано ключевое слово 01ЕТ?МСТ.) Данный пример вряд ли найдет применение на практике, но он — краткий, может быть легко выполнен, а также позволяет полностью разобраться в том, что происходит. В данном случае создаются две таблицы, из которых должна осуществляться выборка данных. После этого происходит вставка, по три строки в каждую таблицу, причем одна строка повторяется в обеих таблицах.

Если бы в выполняемом запросе было задано ключевое слово АЕЕ, то в результат вошли бы все строки (в данном случае шесть). А если запрос выполняется с ключевым словом 01ЯТ1МСТ, то количество возвращаемых строк должно составлять только пять (поскольку одна дублирующаяся строка отбрасывается): 158 Глава 4 ТИЯЕЕт Ьнтс Ппьоптезгь ЧАЬОЕЯ ('ссс') ЬИЯЕЕт Тнтс Опьсптезгг ЧАЬПЕЯ ('ссс') ТИЯЕат тнтс Спьоптезпг ЧАЬЯЕЯ ('ово ) Ьняяат Тнтс Ппьоптезпг ЧАЬЦЕЯ ('ЕЕЕ') ЯЕЬЕСт соьг ЕВОЕ Ппьоптезгь ПИТОМ ЯЕЬЕСТ со14 ЕЕОМ ОпьспТезп2 ВЕЬИт 'Оьчьг(ег пыле ЯЕЬЕСТ со12 ЕЕОМ Опьсптезгь ПИЬОИ АЬЬ ЯЕЬЕСт ссЬЗ ЕЕОМ ПпьопТезг2 ВЕОГ тАВЬЕ Пптоптезпь ВЕОЕ тАВЬЕ Опьсптезгг Ниже приведена только основная часть полученных результатов (по мере выполнения отдельных операторов происходил возврат сообщений "опе тон(з) аттессес(", но они здесь не показаны, а приведены только данные, позволяющие ознакомиться с интересующими нас результатами запросов).

со12 ооо ЕЕЕ ввв ссс (5 гое(з) аттесгес)) Пьч1г(ег Ььпе — — — — — — — — — — — — —— со12 ввв ссс ссс пво ЕЕЕ (б гоз(з) аттесгес() Первый результирующий набор был получен с помощью обычного оператора ()ихОи без дополнительных параметров. Вполне очевидно, что в нем удалена одна строка, — хотя строка "ССС" была вставлена в обе таблицы, появился только один ее экземпляр, поскольку дублирующиеся строки уничтожаются по умолчанию.

Соединения 159 Второй результирующий набор немного изменился. На этот раз использовалась конструкция ОК10К А1Ь, а ключевое слово АЕЬ гарантирует возврат всех полученных строк. Именно поэтому внезапно появилась дублирующаяся строка, которая была удалена из результатов предыдущего запроса. Резюме В реляционной СУБД данные чаще всего не сосредоточиваются в одной таблице, а распределяются по нескольким таблицам. Конструкции 101Е и ОК10К позволяют комбинировать данные из нескольких таблиц с применением описанных ниже способов. 13 Если требуется исключить из полученных результатов данные, которые не имеют согласующихся полей, то используется конструкция 1ММЕК,101М.

й Если требуется сохранить в составе результатов все данные, поля в которых согласуются, и вместе с тем дополнить их результирующим набором, содержащим полный объем данных, относящихся к одной из сторон соединения, то используется конструкция ООТЕК,101К. Если требуется сохранить в составе результатов все данные, поля в которых согласуются, и вместе с тем дополнить их результирующим набором, содержащим полный объем данных, относящихся к обеим сторонам соединения, то используется конструкция ЕОЬЬ 1010. О Если требуется получить декартово произведение, в состав которого входят записи двух таблиц, то используется конструкция ОКОВЕ 301К.

Как правило, декартовы произведения применяются при формировании входных данных для некоторых сложных функций, а также служат для создания испытательных данных. 11 Если требуется объединить результаты второго запроса с результатами первого запроса, то используется конструкция ОК10К. Синтаксис операторов внутренних и внешних соединений имеет две различные формы. В настоящей главе, кроме стандартного, представлен альтернативный синтаксис, чтобы читатель не испытывал затруднений, сталкиваясь с унаследованным кодом (в котором встречается альтернативный синтаксис).

Характеристики

Тип файла
PDF-файл
Размер
39,07 Mb
Тип материала
Предмет
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее