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

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

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

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

Предположим, например, что с помощью представления достаточно лишь получить данные о сбыте за вчерашний день. Для этого достаточно ввести в запрос небольшие изменения, как показано ниже. 388 Глава 10 о.огбегоаге, об.Ргобзсь10, р.ргобисьнаее, об.осяаьтьу, об.пп1ГРгтсе, об.Оиапь1ьу * об.оя1СРгтсе АЯ ЕхьеабебРг1се РВОМ Сияьоаегя АЯ си 1ИМЕК 001И Огбегя АЯ о ОМ си.ссяьоаег10 = о.ссяьоаег10 1ММЕВ 001И (Огбег Оесаг1я] АБ об ОИ а.огбег10 = об.огбег10 1ММЕК 301М Ргобссся АЯ р ОИ об.Ргобась10 = р.Ргобссь10 МНЕВЕ СОИЧЕКТ(оагсэаг(12),о.огбегоасе,101) СОИЪЕВТ(нагсьаг(12),ОАТЕА00(бау,-1,0ЕТОАТЕ()),101) К сожалению, все даты, которые хранятся в базе данных ИогСАМЬпб, относятся к давно прошедшему времени, поэтому запрос к данному представлению вряд ли возвратит какие-либо данные, поэтому введем строку для проверки рассматриваемого представления.

Вызовите один раз на выполнение следующий сценарий: ОЯЕ Иоггьн1пб ОЕСЬАВЕ 61бепс 1пь 1МЯЕВТ 1МТО Огбегя (Сиясоаег10,огбегпасе) ЧАЬОЕЯ ('А1.РК1', ОАТЕА00(бау,-1,ОЕТОАТЕ())) БЕЬЕСТ 61бесь = 6610ЕИТ1ТУ 1ИЯЕВТ ХМТО (Огбег Оеса11я] (Огбег10, Ргобссс10, Оптсргтсе, ОоапГЬГу) ЧАЬОЕЯ (61с(егг, 1, 50, 25) БЕЬЕСТ 'ТАе Огбег10 от Сье 1ИЯЕВТеб гон 1я ' + СОМЧЕВТ(чагсааг(8),61бепь) В этом сценарии используются конструкции, которые будут более подробно описаны в главе, касающейся сценариев и пакетов. А на данный момент отметим, что этот сценарий позволяет ввести в базу данных Мосс]1МЬпб такие значения. выборка которых должна быть осуществлена с помощью представления.

После выполнения указанного сценария в программе Мапакешеп( о(пб]о должен появиться результат, который выглядит примерно так: (1 гон(я) а11есгеб) (1 гон(я) агтесьеб) Тье Огбег10 от Сне 1МБЕВТеб гон гя 11087 (1 гон(я) агтесьеб) ьледуегл учитывать, что некоторые из МРиведенных здесь сотйеений полвятсл во вкладке Меяяадея, только если п]зоерозхиа Мапаеятеп( о(ийо зкснлуотифуппсл в режиме отображения результатов в сетке, г)еяи](Б ]и Вг]с(. Представления 389 При выполнении этого примера на другом компьютере значение Отбет1Р может измениться, но остальная часть результатов должна остаться в основном такой же. Теперь выполним запрос применительно к рассматриваемому представлению, чтобы узнать, каковы будут результаты: 5ЕЬЕСТ Совраоунаке, Отбетто, Отбетоате ГЕРМ уезтетбаузотбетэ чк Полученнляе результаты действительно показывают, что в базе данных появилась информация о заказе с номером 11087 за вчерашний день: Отбет10 Отбетоате Совраоукате 11087 А1ттебэ Еостетк1эте 2000-08-05 17:37:52.520 (1 ток(з) аттестеб) ""йа,следует:придавйуьпбольшого( Зиаиеиии,тому, что фактичеСИИ ПсяУиаинмв данн(ыа о Ио-,.

, МЭРаХЗахаааВ ОгтбЕта Р) бУДУ~ ОтЛИЧатЬая От ПРИаЕДаНИЫХ а КНИГЕ, ДаЛО И тОМ,''Чтп Втп ИОК ':мара ирй(оваивгаютоя системой':9вскольку 6тбега Рва о(олбец,:идентификаций) й завибит' ' от того, сколькпатрокуяа вотавлено атаблйцу иными саввами, й(ривйиолиеиий данного' арии()ра,читателем могут,6ьпь:оояучииы другие' иамаора заказов. . Функции патишп и сои(уивт Безусловно, оператор создания представления с конструкцией 001)(, приведенный в предыдущем разделе, сложнее тех операторов, которые рассматривались до сих пор, но все еще остается вполне доступным для понимания. В нем одна за другой добавляются таблицы и столбцы новых таблиц применяются в операциях соединения с соответствующими им столбцами тех таблиц, которые были указаны ранее. Как всегда, следует отметить, что соединяемые столбцы не обязательно должны иметь одинаковые имени.

Достаточно того, чтобы в этих столбцах находились данные, связанные друг с другом. Но поскольку рассматриваемый оператор соединения является все же относительно сложным, проанализируем, какие действия осуществляются в запросе, который поддерживает это представление. Наибольший интерес представляет конструкция ИИЕЕЕ этого оператора: ИНЕЕЕ СОКЧЕРТ(чатоьат(12),о.отбетОаге,101) СОНУЕКТ ( Л ( 12), ОАТЕАОО(бау, -1, ОЕТОАТЕ () ), 10Н В данной конструкции применяется единственная операция сравнения,но для получения требуемого результата предусмотрено несколько функций. На первый взгляд кажется, что достаточно лишь сравнить значение Отбетоасе в таблице Отбетз со значением ОЕТРАТЕ () (с нынешней датой) за вычетом одного дня (в данном случае функция РАТЕАРР применяется исключительно для выполнения операции вычитания с датами). С помощью функции РАТЕАРР можно складывать значения продолжительности любых промежутков времени (а вычитание выполняется, если используются отрицательные значения операндов этой функции).

Достаточно только указать, к какой дате должна применяться операция сложения, с помощью какой единицы времени измеряется продолжительность суммируемого промежутка времени (сутки, недели, годы, минуты и т.д.), и вызвать на выполнение эту функцию. 390 Глава 10 Поэтому внешне такая задача выглядит таким образом, что достаточно просто получить значение сегодняшней даты с помощью функции ОЕТОАТЕ (), а затем вычесть одни сутки с помощью функции РАТЕАОР. Но проблема состоит в том, что значение, полученное с помощью функции ОЕТРАТЕ (), включает текущее время суток, поэтому данному критерию сравнения будут соответствовать только те строки, относящиеся к предыдущей дате, которые содержат такое же значение времени суток с точностью до 3.

3333 миллисекунд, а вероятность такого совпадения весьма мала. Поэтому в операторе сравнения предусмотрено дополнительное уточнение и используется функция СО))ЧЕЕТ для исключения времени суток из обоих значений дат до выполнения операции сравнения. Таким образом, с помощью этого представления будет получена информация обо всех торговых сделках, происшедших в предыдущую дату в любое время.

Использование представлений для внесения изменений в данные до ввода в действие триггеров 1натжлп ог Как уже было сказано, с точки зрения функциональных возможностей их использования представления почти полностью аналогичны таблицам (хотя, разумеется, для создания представлений применяются совсем другие конструкции по сравнению с таблицами). Но в этом разделе основное внимание уделено тому, в чем состоят функциональные различия между таблицами и представлениями. Многие начинающие разработчики об этом не догадываются, но следует знать, что к представлениям могут успешно применяться операторы 1Г)БЕАТ, ОРРАТЕ и РЕЬЕТЕ. Тем не менее при использовании операций модификации данных с помощью представлений необходимо учитывать некоторые нюансы, описанные ниже.

(3 Если оператор выборки, лежащий в основе представления, содержит операцию соединения, то в большинстве случаев с помощью этого представления невозможно вставлять или удалять данные, применяя оператор 1))БЕАТ или ОЕЬЕТЕ, если при этом не используется триггер 1)(БТЕАО ОЕ. В некоторых случаях оператор ОРОАТЕ может применяться без триггера 1)(БТЕАО ОЕ (например, при условии, что обновляются только те столбцы, которые относятся к одной и той же таблице), но требуется некоторая дополнительная подготовка, так как в противном случае прн выполнении операторов обновления могут вскоре возникнуть проблемы. (3 Если представление ссылается только на одну таблицу, то вставка данных с помощью оператора 1г)БЕАТ с использованием представления может осуществляться без применения триггера 1нзтеАО Ое, при условии, что в представлении обеспечивается доступ ко всем обязательным (не допускающим неопределенных значений) столбцам таблицы или для этих столбцов заданы применяемые по умолчанию значения.

Если же в таблице имеется столбец, который не определен в представлении и не имеет заданного по умолчанию значения, то при использовании триггера 1)(БТЕАО ОР применение оператора 1)(БЕАТ допускается даже в случае представлений, относящихся к единственной таблице. Ь) Предусмотрена возможность, хотя и в ограниченной степени, регламентировать, какие данные могут и не могут быть вставлены или обновлены в представлении. Представления 391 Как показывает приведенное описание условий модификации данных с помощью представлений, во многих случаях невозможно обойтись без триггеров 1ИЯТЕАО ОЕ. Но мы пока не можем продолжить описание этой темы, поскольку сами триггеры 1ИЯТЕАО ОЕ являются достаточно сложными объектами и к тому же в предыдущих главах данной книги еще не было приведено достаточно подробное описание триггеров. Автор уже неоднократно указывал, что при описании проблематики, связанной с СУБД Я(зЕ Яегчег, часто приходится сталкиваться со старой дилеммой "курицы" и "яйца" (что появилось раньше?).

Автор обязан раскрыть тему триггеров 1ЯБтеАР ОГ, поскольку она имеет непосредственное отношение к представлениям, но на страницах этой книги нельзя переходить к описанию триггеров 1ИЯТЕАО ОЕ, не изложив все необходимые сведения о тех объектах, на которых они создаются (речь идет о таблицах и представлениях). Поэтому автор решил в этой главе раскрыть тематику представлений в том аспекте, в каком эти объекты применялись с самого начала, еще до введения таких конструкций, как триггеры 1ИБТЕАО ОЕ.

Но хотя при изучении настоящей главы читатель не будет знакомиться с конкретными сведениями о триггерах 1ИБТЕАО ОЕ, он должен хорошо понимать, в чем состоит назначение этих триггеров. Таким образом, ознакомившись в данной главе с кратким обзором триггеров 1ИБТЕАО ОГ, мы снова вернемся к этой теме и раскроем ее более подробно в главе 15. Но самая главная особенность т(зиггфов 11чЯТЕАО ОЕ должна быть отмечена в данной главе.

Это — т)пгггфы особого)зада, котфые по существу вызываются на выполнение "вместо" йпзгеай о), отсюда их название) пзого опе~апифа, хото~ый вызвал запусх т)зиггфа, Благода)зя спокой фганизаиии (заботы после запуска т)зиггфа можно оп)зедглить, какие действия уже были выполнены с помошью опфатфа, а затем непофедппвенно в ходе тфиггфа пупгнлть (зешения, касающиеся того, как )зофешить любые возникшие конфеикты или уст)занить д(зугие п)зоблемьк хотфые, возможно, п(заявились к этому моменту. Таким об)зовом, т(зиггфы 1?ЗБТЕАО ОЕ являются очень мощньипи, но вместе с тем довольно сложными, поэтому отложим их описание до одной из следующих глав.

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

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

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

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