Программирование >>  Программирование баз данных 

1 ... 17 18 19 [ 20 ] 21 22 23 ... 346


Глава 3

Основные сведения о языке T-SQL

Эта глава также главным образом посвящена изложению сведений, составляющих фундамент знаний о СУБД SQL Server. В ней очень кратко рассматриваются наиболее важные операторы языка Transact-SQL (который также сокращенно обозначается как T-SQL). В этой главе, как и во всех первых главах настоящей книги, предполагается, что читатель в значительной степени знаком с рассматриваемой темой, поэтому она предназначена для предоставления обзорного материала, а также для заполнения пробелов в знаниях.

Язык T-SQL- это собственный диалект языка стр}тстурированных запросов (Structured Queiy Language - SQL), применяемый в СУБД SQL Server. При подготовке данного вып)ска ОЪД SQL Server язык T-SQL был в значительной степени доработан, и в него добавлены многие новые программные конструкции. Кроме всего прочего, он бьы преобразован в язык, совместимый с общей средой выполнения (Common Language Runtime- CLR) операционной системы Windows; короче говоря, начиная с этого выпуска T-SQL стал одним из языков .NET. Безусловно, в версии SQL Server 2005 предусмотрена возможность использовать для доступа к базе данньгх любой язык .NET, но в конечном иггоге в основе обращения непосредственно к самим данным всегда лежит какой-то код SQL, поэтому язык T-SQL остается базовым языком при выполнении любых действий в СУБД SQL Server. С каждым выпуском SQL Server многое изменяется, но примениггельно к теме, рассматриваемой в данной главе, следует отметить, что все в основном осталось неизменным, поскольку наиболее фундаментальные операторы доступа к данным являются практически такими же, как и прежде.

В настоящей главе рассмотрены следующие операторы T-SQL:

оператор SELECT;

оператор INSERT;

оператор UPDATE;

оператор DELETE.

Эти четыре оператора представляют собой альфу и омегу языка T-SQL. Ниже мы рассмотрим целый ряд других операторов, но именно эти четыре операторы составляют основу языка манипулирования данными (Data Manipulation Language- DML),



входящего в состав T-SQL. При этом, как правило, относительное количество выполняемых команд, предназначенных для манипулирования данными (т.е. для чтения и модификации данных), намного превышает количество команд других типов (с помощью которых, например, предоставляются права пользователям или создаются таблицы), поэтому фактически невозможно указать какие-либо более важные средства доступа к базе данных по сравнению с ними.

Кроме того, в языке SQL предусмотрено много операций и ключевых слов, позволяющих уточнять назначение запросов. В настоящей главе рассматриваются операторы, наиболее широко применяемые для доступа к базе данных, включая операторы соединения.

Язык T-SQL предназначен исключительно для работы с СУБД SQL Server, но основная часть применяемых в нем операторов имеет более широкое использование. Язык T-SQL совместим со стандартом ANSI SQL-92 на начальном уровне. Это означает, что в определенном объеме T-SQL совместим с очень широким открытым стандартом. Поэтому основная часть сведений о языке SQL, полученных при изучении данной книги, может непосредственно применяться для работы с другими серверами баз данных с поддержкой SQL, такими как Sybase (отметим, что много лет тому назад в Sybase совместно использовалась общая база кода с SQL Server), Oracle, DB2 и MySQL. Но следует учитывать, что в каждой реляционной СУБД применяются различные расширения и способы повышения производительности, дополняющие указанный стандарт ANSI и выходящие за его рамки. Автор будет подчеркивать различия между способами осуществления действий, предусмотренными и не предусмотренными в стандарте ANSI, когда это будет уместно. В некоторых случаях выбор того или иного способа становится равносильным достижению компромисса между производительностью и переносимостью в другие системы реляционных СУБД. Тем не менее программные средства, предусмотренные стандартом ANSI, обеспечивают не менее высокое быстродействие по сравнению с другими вариантами организации работы. В подобных случаях выбор должен быть очевидным - поддерживать совместимость с указанным стандартом ANSI.

Основные сведения об операторе select

Оператор SELECT и применяемые в нем структуры составляют львиную долю всех команд, выполняемых в процессе работы с СУБД SQL Server. Рассмотрим основные синтаксические правила составления операторов SELECT: SELECT <column list>

[FROM <source table(s)> [[AS] <table alias>]

[[ {FULL I INNER I{LEFT I RIGHT} OUTERCROSS}] JOIN <next table> [ON <join condition>] [<additional JOIN clause> -]]] [WHERE <restrictive condition>]

[GROUP BY <column name or expression using a column in the SELECT list>] [HAVING <restrictive condition based on the GROUP BY results>] [ORDER BY <column list>]

[[FOR XML {RAW I AUTO I EXPLICIT I PATH [ (<element>) 1 } [, XMLDATA] [, ELEMENTS] [, BINARY base 64]]

[OPTION (<query hint>, [, -n])]



Оператор select и конструкция from

Основой всего оператора, который сообщает СУБД SQL Server, какое действие она должна выполнить, является так называемый глагол , в данном случае SELECT. Применение в операторе ключевого слова SELECT указывает на то, что должно быть выполнено только чтение информации, а не ее модификация.

Для указания имени таблицы (или таблиц), являющейся источником получения данных, служит конструкция FROM. Сказанного выше достаточно для того, чтобы мы могли приступить к созданию простого оператора SELECT. Запустите программу SQL Server Management Studio и еще раз обратите внимание на оператор SELECT, который рассматривался в предыдущей главе:

SELECT * FROM INFORMATION SCHEMA.TABLES;

Уточним, какая информация здесь запрашивается. Прежде всего серверу передан запрос на выборку информации, SELECT; такой запрос можно также рассматривать как требование вывести информацию на внешнее устройство. Символ * действует в основном так же, как и звездочки, применяемые в других программных конструкциях, - он представляет собой символ-заместитель. Выражение SELECT * по существу означает, что требуется выборка содержимого всех столбцов таблицы. Следующее далее ключевое слово FROM говорит о том, что указания, касающиеся того, какие элементы данных должны быть выведены на внешнее устройство, закончены, и теперь речь пойдет о том, каковым является предполагаемый источник получения информации. В данном случае указано, что источником является таблица INFORMATION SCHEMA. TABLES.

INFORMATION SCHEMA- это специальный путь доступа, который используется для получения метаданных о базах данных, развернутых в системе, и их содержимом. Путь доступа INFORMATION SCHEMA состоит из нескольких частей (которые могут быть заданы после точки), таких как INFORMATION SCHEMA. SCHEMATA или INFORMATION SCHEMA.VIEWS. Эти специальные пути доступа к метаданным о системе были предусмотрены для того, чтобы исключить необходимость в использовании так называемых системных таблиц. В большинстве вариантов применения путь доступа INFORMATION SCHEMA является совместимым со стандартом ANSI (но необходимо учитывать то, что его реализация в СУБД SQL Server имеет свои отличительные особенности). В СУБД SQL Server предусмотрен также набор системных функций, представляющих собой обобщение тех операций, которые могут быть выполнены с помощью такого источника информации, как INFORMATION SCHEMA С помощью этих системных функций можно гораздо проще получить необходимую информацию, чем с помощью пути доступа INFORMATION SCHEMA, НО ОНИ не совместимы со стандартом ANSI.

Теперь попытаемся получить немного более конкретную информацию. Предположим, что нам требуется получить список всех заказчиков, указанных по фамилиям:

USE AdventureWorks

SELECT LastName FROM Person.Contact;

В данном случае оператор USE AdventureWorks представляет собой команду, позволяющую перейти от одной текущей базы данных к другой. Автор ввел этют оператор в приведенный выше сценарий для обеспечения перехода к требуемой базе данных, в которой ужеустеьновлена данная конкретная комбинация схемы и таблицы (schema. table).



1 ... 17 18 19 [ 20 ] 21 22 23 ... 346

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика