Программирование баз данных MS SQL Server (1084479), страница 18
Текст из файла (страница 18)
В действительности многие разработчики даже не подозревают о существовании этой утилиты или о том, что когда.то существовали такие программы, как оэц! и 1эс)1, впервые появившиеся в еще более ранних версиях 5ОЬ Бегвег. Дело в том, что программа эс)1спп$ имеет интерфейс командной строки, а не графический интерфейс %1пс(онэ. Программа эс)1сшс( — это инструментальное средство, которое позволяет выполнять пакетные файлы, состоящие из операторов 5ЯЬ. До выхода версии 5Я. 5егчег 7.0 и появления служб 1)ТЯ (которые теперь заменены службами 5515) программа эц1сшс1 часто использовалась вместе с программой )зср для обеспечения импорта данных из внешних систем.
Но в последнее время для загрузки и выгрузки данных все чаще применяются службы 5515, поэтому данная область применения программы эс)1спн1 постепенно сходит на нет. Тем не менее иногда возникает необходимость организовать выполнение ряда операторов 5ЯЬ с помощью утилиты с интерфейсом командной строки, и такую возможность предоставляет программа эс)1сшб. Программа эц!сшс( может оказаться очень удобной, особенно если под ее управлением необходимо выполнить сценарии, оформленные в виде файлов.
Однако следует учитывать, что некоторые инструментальные средства позволяют достичь тех же результатов, что и с использованием программы эс)1сшс(, но значительно эффективнее. К тому же при этом все необходимые действия осуществляются с помощью пользовательского интерфейса, который лучше всего совместим с другими программами, применяемыми во время работы с СУБД 5ОЬ 5егчег. Необходимо отметить, что в пеРвых версиях 501 5есоет утилита с инте)эфейсом командной ст)эоки, предназначенная для всчповнения пакетных файлов, носила имя и уй В веРсиях 5ЯЬ 5егоег 2000 и 7.0 для этой цели применялшь утилипш оэо(. А утилита эо(стс( введена в действие в вфсии 5~Ь 5епяг 2003.
Резюме Основная часть инструментальных средств, описанных в настоящей главе, не предназначена для повседневного использования. В действительности разработчики регулярно применяют только такие программы, как 5ОЕ Бегчег Мапаяешепг 5гпс)1о, но должны иметь определенное представление о том, для чего предназначена каждая утилита, поскольку все служебные программы в какой-то момент могут оказать существенную помощь.
Дополнительные сведения об инструментальных средствах, представленных в этой главе, можно также найти в других главах данной книги. Необходимо учитывать, что в меню 81аг1 нет ярлыков для некоторых других доступных утилит (таких как инструментальные средства обеспечения связи по сети, средства диагностирования сервера и утилиты сопровождения), поскольку они главным образом предназначены для выполнения задач администрирования. Основные операторы языка Т-ЗО~ В предыдущих главах были представлены очень важные, но не столь интересные сведения. Обычно сложнее всего заниматься изучением основных объектов и инструментальных средств.
Но, к сожалению, прежде чем приступить к строительству дома, необходимо заложить фундамент. Однако теперь мы можем вздохнуть с облегчением, поскольку фундамент дальнейшего изучения этой книги уже готов. Продолжая эту аналогию со строительством дома, отметим, что в дальнейшем изложении речь пойдет о том, как воспользоваться благами цивилизации, предусмотренными в современном доме, и только потом будет описано, как они устроены.
А применительно к эксплуатации баз данных мы вначале рассмотрим, как осуществляется доступ к данным, и лишь затем изложение будет в большей степени посвящено тому, каковы наилучшие способы хранения самих данных. В настоящей главе рассматриваются наиболее фундаментальные операторы языка Тгапзасг-ВОЕ (или сокращенно Т-БЯЕ). Язык Т-БО1 — это собственный диалект языка структурированных запросов (или сокращенно ВЯЕ), применяемый в СУБД ЯЯЕ беггег. При подготовке данного выпуска СУБД БЯ. Бегтег язык Т-ЯО) был в значительной степени доработан и в него добавлены многие новые программные конструкции. Кроме всего прочего, он был преобразован в язык, совместимый с общей средой выполнения (Сопппоп Еащпаяе Кппг1ше — СЕВ); короче говоря, начиная с этого выпуска Т-бОг.
стал одним из языков .1чЕТ. Кроме того, благодаря выпуску БО Бегтег 2005 появилась возможность использовать для доступа к базе данных любой язык .)чЕТ, но в данной книге речь пойдет в основном о языке Т-ЬО)., поскольку Т-БЯЕ всегда будет оставаться ведущим языком, позволяющим выполнять любые операции в СУБД БЯЕ Беггег.
80 Глава 3 В настоящей главе рассмотрены следующие операторы Т-5(асс 0 БЕЛЕЕТ. 0 ТсчБЕЕТ. Е1 РРссйТЕ. сл РЕЕЕТЕ. Эти четыре оператора представляют собой альфу и омегу языка Т-БО(.. Ниже мы рассмотрсим целый ряд других операторов, но именно эти четыре операторы составляют основу языка манипулирования данными (Раса Машрн1аг(оп 1лпятсаяе— РМ1.), входящего в состав Т-БЯ).. Вообще говоря, в процессе работы с базой данных гораздо чаще приходится пользоваться командами, предназначенными для манипулирования данными (т.е.
чтения и модификации), чем командами других типов (например, предназначенными для предоставления прав пользователям или создания таблиц), поэтому читатель даже не заметит, как эти четыре оператора станут для него хорошо знакомыми. Кроме того, в языке 5О). предусмотрено много операций и ключевых слов, позволяющих уточнять назначение запросов. Часть наиболее распространенных конструкций этого типа также рассматривается в данной главе. Язык Т5се1. гфедназначен исключительно для работъс с СУБД%1.
5егоег, но основная часть п~шчеиляиьсх в нем опе!сатофов имеет более широкое использование. Язык Т5Я. совместим со ппанда)стем А%51 501:92 на начальном уфовнк Это означаетл, что в опфеделеннам объеме ТКИ. совместим с очень шифоким откфъстъцс станда!этом. Поэтому основной обеем сведений о языке 5Я!., полученный и!пс изучении данной книесь может непосфедппвенно п)сименяться для )заботъс с дфугими се)софами баз да и нъсх с поддсфжкой 5Я1, такими как ЯуЬазе (отметим, что много лет тому назад в 5убше совместно использовалась обшил база кода с 501. Ягссп), Огас)е, РВ2 и Му5~1..
Оо следует учитывать, что в каждой реляуион ной СУБД гфименяюпссяфазличнъсефасшифения и способы повышения пфоизводипмлъности, дополняющие указанный стандарт А!с!51 и выходящие за его ромки. Авпиф будет падче!гк вать различия между способалш осуществления действии пфедучиотренными и не сфедусмотфенньиии в станда!сте А)ч51 когда это будет уместно. В некоторых случаях вьсбор того или иного способа становсстся равнопсльным достижению комсфомисса между гфоизводителъностью и и!ген осимо стью в дфугие системы Рессяу и оннь х СУБД. Тем не менее пфосфамм ные сфедства, гфедусмоифенные стандартом А!с!51, обеспечивают не менее вьссокое быстродействие по сравнен и ю с д!сугими ва!ш интами сфганизауии работъс. В подобных случаях выбсф должен быть очевидным — поддерживать совместимоппь с указанным ппандартом А%Я.
Исходные сведения об использовании основного оператора Верст Те читатели, которые еще до сих пор не использовали язык 5О1. или не чувствуют уверенности в том, что действительно поняли суть этого языка, должны теперь напрячь все свое внимание! Оператор ЕЕЕЕСТ и применяемые в нем структуры составляют львинусо долю всех команд, выполняемых в процессе работы с СУБД 5Я) 5егчек Рассмотрим основные синтаксические правила составления операторов БЕЛЕЕТ: Основные операторы языка Т-БЯ1. 81 ЯЕЬЕСт <со1ивп тьаи> [РВОМ <аоигсе ГаЬ1е(е)>] (нневе <геаггтсстие сопи1с1оп>] [ЯВООР Ву <со1ивп паве ог ехргеаатоп иетпд а со1ивп гп сье яеьест 11аг>] [НАЧ1НЯ <геасгтсс1ие сопогьтоп Ьааеи оп Гье ЯВООР Ву геаи1иа>] (СВОЕВ Ву <со1ивп 11ас>] [[Р'ОВ ХМЬ (РАН[АНТО)ЕХРЫС1Т)РАТН [(<е1евепс>)])[, ХМЬОАТА][, ЕЬЕМЕНТЯ](, В1НАВУ Ьаае 64]] [Орт1ОН (<Чиегу Ьтпс>, [, ...и])] Очевидно, что это синтаксическое определение содержит большой объем информации, поэтому мы будем рассматривать его по частям.
Оператор )ЕХ.ЕсТ и конструкция и'аом Основой всего оператора, который сообщает СУБД БО]. Яегуег, какое действие она должна выполнить, является так называемый "глагол", в данном случае БЕЬЕСТ. Применение в операторе ключевого слова ЯЕЬЕСТ указывает на то, что должно быть выполнено только чтение информации, а не ее модификация. Информация, подлежащая выборке, обозначается с помощью выражения или списка столбцов, которые непосредственно следуют за ключевым словом ЯЕЬЕСТ (вскоре станет ясно, что под этим подразумевается).
Затем необходимо дать некоторые уточнения, в частности, касающиеся того, откуда должны быть получены данные. Для указания имени таблицы (или таблиц), являющейся источником получения данных, служит конструкция РВОМ. Сказанного выше достаточно для того, чтобы мы могли приступить к созданию простого оператора БЕЬЕСТ. Запустите программу ЯО[. Бегуег Мапаяетеп( Я(и(][о и еще раз обратите внимание на оператор ЯЕЬЕСТ, который рассматривался в предыдущей главе: ЯЕЬЕСТ * РВОМ 1НРОВЛАТ1ОН ЯСНЕМА.ТАВЬЕЯ Уточним, какая информация здесь запрашивается. Прежде всего серверу передан запрос на выборку информации, БЕЬЕСТ; такой запрос можно также рассматривать как требование вывести информацию на внешнее устройство.
Символ * на первый взгляд может показаться странным, но фактически он действует во многом так же, как и в составе любых других средств программирования, т.е. выполняет роль подстановочного символа. Выражение БЕЬЕСТ * по существу означает, что требуется выборка содержимого всех столбцов таблицы. Следующее далее ключевое слово РВОМ говорит о том, что указания, касающиеся того, какие элементы данных должны быть выведены на внешнее устройство, закончены, и теперь речь пойдет о том, каковым является предполагаемый источник получения информации. В данном случае указано, что источником является таблица 1НЕОВМАТ10Н БСНЕМА. ТАВ1.ЕБ. 1НЕОВМАТТОНХБСНЕЬ<]А' это[.рпвцтяввЬЙЫй Пут)Ь Лоотупв,[Ко<торий ИС<НСЛЬЗТЛТС>Л ЛЛВ,ЛОЛУ чвнил мвтвдвннмх;,о) бвзв](:длнлмх„рлзййянутмхьв систйм„ их)содвР*инс>м~ Р)уть дбстула тнФаямдтео)) Яанем)гсв<втотит, йл нвсгколькикилстей (которве [вот>т"быть,'влдвнм, йослв ТОЧКИ), ТВОИХ: КЛК,ЬИРОВМАТХО])) ЯСНЕМА БСНЕИАТТАь ИЛИ.