|
Программирование >> Программирование баз данных
FROM UnionTestl UNION SELECT col4 FROM UnionTest2; PRINT UNION ALL-SELECT col2 FROM UnionTestl UNION ALL SELECT col4 FROM UnionTest2; DROP TABLE UnionTestl; DROP TABLE UnionTest2; Ниже приведена только основная часть полученных результатов (по мере выполнения отдельных операторов происходил возврат сообщений one row (s) af f ее ted , HO они здесь не показаны, а приведены только данные, позволяющие ознакомиться с интересующими нас результатами запросов). Regular UNION--------------- со12 AAA EBB ССС DDD ЕЕЕ (5 row(s) affected) UNION ALL------------------- col2 AAA EBB CCC CCC DDD EEE (6 row{s) affected) Первый результирующий набор бьы получен с помощью обычного оператора UNION без дополнительных параметров. Вполне очевидно, что в нем удалена одна строка, - хотя строка ССС бьыа вставлена в обе таблицы, появился только один ее экземпляр, поскольку дублирующиеся строки уничтожаются по умолчанию. Кроме того, удалось добиться того, что с помощью конструкции UNION результаты, возвращенные операторами SELECT, объединены в один результирующий набор. Во втором примере наблюдаются лишь незначительные изменения; на этот раз используется конструкция UNION ALL, в которой ключевое слово ALL обеспечивает получение всех строк. Таким образом, в результатах вновь появляется строка, которая не бьыа возвращена в предьщущем запросе. Резюме Язык T-SQL - это разновидность языка SQL (Structured Query Language - язык структурированных запросов), определяемого стандартом ANSI, которая применяется исключительно в СУБД Server SQL. Язык T-SQL совместим со стандартом ANSI 92 в минимальной конфигурации, а также включает целый ряд собственных расширений, о чем более подробно сказано в последующих главах. В СУБД SQL Server в целях обеспечения обратной совместимости допускается использование множества различных вариантов синтаксиса, которые фактически не отличаются по своим возможностям от синтаксиса, соответствующего стандарту ANSI, но везде, где это возможно, следует использовать форму ANSI. Как правило, в данной книге при наличии нескольких вариантов синтаксического оформления операторов демонстрируются все варианты, но опять-таки по возможности применяется вариант ANSI. Это особенно важно, если в дальнейшем в какой-то момент может возникнуть необходимость сменить серверную часть приложения (иными словами, перейти к использованию др)того сервера базы данных). Вероятность того, что код ANSI будет успешно функционировать на новом сервере базы данных, весьма велика, тогда как код, характеризующийся использованием только средств T-SQL, потребует существенной переработки. В настоящее время в большинстве программных продуктов с поддержкой SQL по-прежнему допускается применение операторов внутреннего соединения с альтернативным синтаксисом, тогда как операторы внешнего соединения, имеющие альтернативный синтаксис, не поддерживаются. Что же касается соединений с конструкциями FULL, то в СУБД, отличных от SQL Server, такие операторы часто вообще не поддерживаются. В следующей главе приведен общий обзор средств создания и модификации таблиц, применяемых для хранения и выборки данных. Следует отметить, что в этой части средств доступа к базе данных наблюдается гораздо меньше вариантов синтаксиса, не соответствующих стандартным. Глава 4 Создание и модификация таблиц Настоящая глава посвящена изучению синтаксиса операторов, применяемых для создания пользователем собственных таблиц. Кроме того, в ней описано, как воспользоваться программой SQL Management Console для упрощения этой работы (такое описание будет приведено после изучения способов самостоятельного выполнения всех необходимых для этого задач). Но, прежде чем перейти к глубокому изучению операторов, фактически используемых для создания таблиц и других объектов, необходимо сделать достаточно большое отступление, чтобы рассмотреть, какие соглашения распространяются на структуру полностью уточненных имен объектов, а также в меньшей степени на права использования объектов. Имена объектов в SQL Server Во всех запросах, которые рассматривались до сих пор в настоящей книге, использовались простые средства именования. Перед выполнением любых запросов автор предлагал активизировать требуемую базу данных в программе Query Analyzer, благодаря чему обеспечивалось выполнение запросов применительно к тому объекту, для которого они предназначены. С чем это связано? В этих случаях необходимость переключения на другую базу данных была обусловлена тем, что при использовании имен, не имеюш;их уточнений, СУБД SQL Server, осуществляя попытки идентифицировать и найти объекты, указанные в запросах и других операторах, рассматривает только очень узкую область определения. Таким образом, в рассматриваемых до сих пор примерах было предусмотрено применение только имен таблиц без какой-либо дополнительной информации, но фактически для именования любых таблиц СУБД SQL Server (а также, в этом контексте, любых других объектов SQL Server) предусмотрено соглашение, допускающее использование четырех уровней именования. Полностью уточненное имя имеет такую структуру: [ServerName.[DatabaseName.[SchemaName.]]]ObjectName При выполнении любой операции над объектом необходимо указать имя этого объекта, а все остальные части уточненного имени, находящиеся слева от имени объекта, ObjectName, являются необязательными. И действительно, чаще всего без дополнительных уточнителей вполне можно обойтись, поэтому они не применяются. Тем не менее, прежде чем приступить к созданию объектов, следует полностью разобраться в том, что означает каждая часть уточненного имени. Теперь рассмотрим, что означает следующая часть.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |