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

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

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

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

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

С) Разнородный запрос на выборку информации из другой СУБД ЯЯ[. Яегнег или другие данные. Та же таблица (в таком случае в операторе ЯЕЬЕСТ обычно предусмотрено выполнение над данными каких-либо математических операций или внесение в данные других изменений). Все эти действия позволяет выполнять оператор 1ИЯЕЕТ 1ИТО ...

ЯЕЬЕСТ. По своему синтаксису этот оператор представляет собой комбинацию двух операторов, описанных выше в данной главе, — 1ИЯЕЕТ и ЯЕЬЕСТ. Данный синтаксис выглядит примерно так: 1ИЯЕЕТ 1ИТО <СаЬ1е пате> [<со1птп 11зс>) <ЯЕЬЕСТ згагетепп> В качестве данных, вводимых в операторе 1[НЯЕЕТ, используется результирующий набор, созданный в результате выполнения оператора ЯЕЬЕСТ. 114 Глава $ Проверим работу оператора 1МЯЕЕТ 1МТО... ЯЕЬЕСТ на примере, который очень часто встречается в практике программирования, — выборки данных, хранящихся во временной таблице. В этом случае будет объявлена переменная типа таблицы и заполнена строками данных из таблицы Огбегз, как показано ниже.

. РербмйтРивйвммй и йеММО)4 Яйиа)ерй.блейдбде маз)явавтбя 0((внешне(м; Эгрткбм((рвгнмй( 'сценарий:еортбмт мз'Одного пакета.'Белее йодра6ммв оееденмв- о1йтйкетйх приведены е . /* Следующий оператор задает Ногсмнтпб в качестве текущей базы данных. ** Это позволяет обеспечить переход к использованию нужной базы данных ** непосредственно в коде сценария *l ОЯЕ Ногсмнтпс( /* В следуююем операторе содержится объявление рабочей таблицы. ** Данная конкретная таблица представляет собой переменную типа таблицы, ** которая объявляется динамически *l ОЕСЬАНЕ ЕМутаЫе таЫе ( Огбег10 Тпс, Сцвсоюег10 смаг(5) ) /* После объявления переменной типа таблицы можно приступить к заполнению ее ** данными с помощью оператора ЯЕЬЕСТ.

Следует учитывать, что в данном ** случае можно было бы с таким же успехом вставлять данные в постояннУю ** таблицу (а не в переменную типа таблицы) *l 1НЯЕНТ 1НТО ЯмутаЫе ЯЕЬЕСТ Огбег10, Созсоюегто ЯНОМ Ногсон1пб.бЬо.огбегз ХНЕНЕ Огбег10 ВЕТИЕЕН 10240 АНО 10250 — Наконец, проверим, удалось ли достичь требуемых результатов вставки данных ЯЕЬЕСТ * ГНОМ ЯМутаЫе После выполнения этого кода будут получены следующие результаты: (3 гон(з) аттессеб) Огс(ег10 Сцвсоюег10 10248 10249 10250 У1НЕТ ТОМЯР НАНАН (3 гон(в) аттессеб) В данном случае обнаруживаются два сообщения "(3 гон (з) аггесгес)) ".

Первое из этих сообщений является результатом промежуточного этапа выполнения оператора 1ИЯЕЕТ... ЯЕЬЕСТ вЂ” выборки оператором ЯЕЬЕСТ трех строк, которые должны быть вставлены в таблицу. Для проверки того, какие данные вставлены в таблицу, в этом сценарии затем непосредственно используется оператор ЯЕЬЕСТ. Основные операторы языка Т-Вчера. 115 4ЛЕдгуаут'Ст]ыатятЬ Что<'Пря) ПОПИКЕ'ПрНМВННтЬ Сявратор яЕЬЖСт'",К 'С<тдйЛЬ>Н6 Еаятпй,'табЛН- цЕ4иутВЬ1Е ,'(т.:Е;; РаССМЯ<тРНааЕМ<пй:ЗЕ:,ЯйЕДЕПаМН-Даййпте СцвпаРНЯ)' 'В<СЯННКавт ОайбКа, ДЕЛцВ тОй;,ЧТСЕМутВЬР1Е:-'"".Яуп>яврЕМЕННая';Сбъяаяаяиая СпяцЕНЕр(НН„:,:К)Сгорая Сущветеу' вт только.а течейнеяп[]сггсна- йакета< Псгсяе,атсгп она: ав)сматйческн:,уннучтсжеетсе.

:, заслуянаает также вниманнгя-',то,'чтс'в; давнем сценарий майо:было бы нсйеул)))певать тек называемую:аремейную таблнцу) 'Вообще тсвс]зя„такцаятаблецм.'пе[овпаму:хараатЕРу'ана. ' ЛМИЧйы:Парс>МЕНХНЫМу НС, д>ЕйвтауК)т<НЕ СП](СЕ]Мй тах')КЕ 'дОПОЛНИта<ЛЬйая;Иц ()Ьрыацмя:а Вра-: -;, меннмк.тебпйцак'и'па[ременных типа[я>абднц]приведена-'в главах::тт-)Э. Модификация данных с помощью оператора 0Ройте Оператор ПРСАТЕ, как и большинство операторов ЯО], в основном выполняет такие действия, о которых говорит само его имя, — обновляет существующие данные. Структура этого оператора имеет небольшие отличия по сравнению с оператором ЯЕЕЕСТ, но меяс[у этими двумя операторами можно обнаружить определенные аналогии.

Синтаксис оператора [) РРАТЕ выглядит так: НРСАТЕ <СаЬ1е паве> БЕТ <со1пвп> = <ча1пе> [,<со1пвп> = <яа1пе>] [РВОМ <яопгсе СаЬ1е(я)>] [ННЕВЕ <геяггбсозне сопббгаоп>] Данные, применяемые в операторе [)РСАТЕ, могут быть получены из нескольких таблиц, но затем они применяются только к одной таблице. Иными словами, в этом операторе могут быть предусмотрены условия, в которых упоминаются несколько разных таблиц, или может осуществляться выборка значений из многих разных таблиц, но объектом действия по обновлению одновременно может служить только одна таблица. На данном этапе организация работы по указанному принципу не будет рассматриваться слишком подробно, поскольку тема, касающаяся соединения нескольких таблиц, еще не рассматривалась (речь об этом пойдет в следующей главе), поэтому в данном разделе не приведены сложные операторы [)РРАТЕ.

Рассмотрим несколько простых примеров обновления. Начнем с применения операторов обновления к данным, которые были вставлены в таблицы после выполнения примеров, рассматривавшихся в разделе с описанием оператора 1НБЕВТ. Выполним повторно один из встречавшихся ранее запросов, чтобы определить, как выглядит одна строка вставленных данных (не забудьте снова переключиться на базу данных риЬБ): Беьест * ГРОМ ягогея ННЕВЕ ягог 1б = 'ТЕНТ' После выполнения этого запроса будут получены следующие результаты: ягог аббгеяя ягог ге ягог паве сбту агате г1р 00319 1234 Апучпеге Богеег Теяп Бяоге неге ТЕНТ 116 Глава 3 Обновим значение в столбце стту: НРВАтЕ ятотея БЕт стоу = 'ТН е' ИНЕНЕ этот 10 = 'ТЕБТ' Каки в случае с использованием оператора 1ИБЕНТ,ответ, полученный от СУБД ЯОг.

Бегуег, довольно лаконичен: (1 гое (я] аттестес)) Но после повторного выполнения того же оператора БЕЕЕСТ обнаруживается, что заданное значение действительно изменилось: ятог гс) стоу этот аоогеяя агате гтр ятог паве ТЕБТ Следует отметить, что в одном операторе можно внести изменения сразу в не. сколько полей. Для этого достаточно добавить запятую и предусмотреть дополнительное выражение с указанием столбца. Например, следующий оператор позволяет обновить значения в двух столбцах: НРВАТЕ апогея БЕт стоу = 'тье ', агате = 'СА' ИНЕНЕ этот 1т) = 'ТЕНТ' При желании в конструкции БЕТ вместо явно заданных значений, которые использовались до сих пор, можно привести выражение. В качестве примера рассмотрим несколько записей из таблицы т101ея базы данных рпЬю БЕЬЕСТ тге1е 1)), ргтсе ГНОМ т1т1ея ИНЕНЕ ттт1е 16 11КЕ 'В0%' В данном случае операция 11КЕ используется для выборки строк, в которых значения в столбце СТГ1е 1с) начинаются с подстроки В)), за которой могут следовать любые символьные данные (на что указывает подстановочный символ Ъ).

При условии, что с данными в базе данных рпЬБ не проводились какие-либо манипуляции, должны быть получены примерно такие результаты: тгт1е тв рттсе )4 ток)я) аттестео) Ознакомившись с тем, как выглядят исходные данные, предпримем попытку применить другой способ обновления, в котором в операторе ))РРАТЕ используется выражение: ВРВАТЕ тгт1ея БЕТ рттсе = ртгсе * 1.1 ИНЕНЕ ттт1е ТО Ь|КЕ 'В0%' 801032 В01111 В02075 ВН7832 Теят Бтоге 1234 Апукиете Бттеет Тпеге ИУ 00319 19.9900 11.9500 2.9900 19.9900 Основные операторы языка Т-ЯОЬ 117 После выполнения этого оператора обновления снова введем тот же оператор БЕЬЕСТ: БЕЬЕСТ С1С1е Ьс), рг1се Ркои СЬС1е* ГНЕВЕ СЬГ1е Ьс) Ь|КЕ 'Впь' Должно быть обнаружено, что для каждого идентификатора СЬС1е Ьс), который начинается с подстроки ВС, значение в поле ргЬсе увеличилось на 10%: рггсе Г101е 10 801032 801111 802075 807832 21.9890 13.1450 3.2890 21.9890 (4 гое(э) аТРесгес)) НРВАТЕ ГЬС1ез БЕТ рггсе = рггсе / 1.1 ИНЕНЕ СЬС1е 1с ЫКЕ 'Впз' Обратите внимание на то, что для этого достаточно было откорректировать только одну строку кода.

После выполнения этого действия тот же оператор БЕЬЕСТ должен показать, что результаты снова стали такими же, с которых мы начинали: рггсе ГЬГ1е 14( 801032 В01111 802075 807832 19.9900 11.9500 2.9900 19.9900 (4 гое(з) айгесгеп) Теперь мы можем применить более усовершенствованный запрос с самого начала. На этот раз будет выполнено в основном такое же обновление, но с учетом округления обновляемых данных: НРВАТЕ 11С1ез БЕТ рг1се = НОНН0(рг1се * 1.1, 2] ГНЕВЕ ГЬГ1е 10 Ь1КЕ 'Впь' Фактически до того как с помощью оператора НРРАТЕ вносятся изменения в каждую строку, выполняются две математические операции. Вначале происходит такая На этом возможности манипулирования результатами далеко не исчерпываются. Например, предположим, что компания руководствуется бизнес-правилом, согласно которому товары должнь4 иметь цены, которые могут быть оплачены без остатка с помощью денежных знаков, имеющих хождение в США.

Цены, сформированные после увеличения их на 10%, не соответствуют указанному критерию, поэтому нужно что-то сделать для их округления до ближайшего значения, выраженного в целых центах (0,01 доллара). Можно было бы продолжить рассматриваемый вариант и округлить цены до ближайшего целого цента, выполнив еще одну операцию обновления, в которой осуществляется округление, но лучше вернемся к началу. Прежде всего отменим последнюю операцию обновления: 118 Глава 3 11Г1е аа Рг1ое В01032 801111 802075 807832 21.9900 13.1500 3.2900 21.9900 (4 гон(я) ассесге<() Вполне очевидно,что даже простой оператор ()РВАТЕ может оказаться довольно мощным.

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

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

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

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