Смекни!
smekni.com

Transact-SQL (стр. 1 из 5)

Основные данные о работе

Версия шаблона 1.1
Филиал Ульяновский
Вид работы Курсовая работа
Название дисциплины Базы данных
Тема Transact-SQL
Фамилия студента Кузнецов
Имя студента Кирилл
Отчество студента Валерьевич
№ контракта 05300070602012
Файл титульного листа

Содержание

Введение………………………………………………………………………………….. 3

1. Управляющие конструкции transact-sql……………………………………………... 4

1.1 Команда группировки ………………………………………………………………. 4

1.2 Команды программирования transact-sql ………………………………………….. 4

2. Типы данных…………………………………………………………………………... 8

2.1 Таблица systypes……………………………………………………………………... 8

2.2 Числовые типы данных……………………………………………………………... 8

2.3 Строковые типы данных ………………………………………………………….. 11

3. Типы инструкций……………………………………………………………………. 13

3.1 Инструкции языка определения, управления и обработки данных……………... 13

3.2 Создание объектов и управление защитой……………………………………….. 15

3.3 Логические операторы, инструкции языка определения……………………….... 19

Заключение……………………………………………………………………………….22

Глоссарий……………………………………………………………………………….. 24

Список используемой литературы…………………………………………………….. 23

Приложение А…………………………………………………………………………... 24

Приложение В…………………………………………………………………………... 25

Введение

Структурированный язык запросов SQL (StructuredQueryLanguage) был разработан в 1970 г. корпорацией IBMкак язык управления реляционными базами данных. До него и после него были попытки создания альтернативных языков, но стандартом стал именно SQL. Практически все производители систем управления базами данных используют в своих продуктах ту или иную модификацию SQL. С 1970 г. Было разработано немало версий этого языка, часто не совместимых друг с другом. В результате в 1992 г. американским национальным институтом стан­дартов (AmericanNationalStandardInstitute-ANSI) был разработан стандарт SQL – 92, описывающий поведение сервера и регламентирующий основные правила работы. Целью разработки этого стандарта было, в частности, уменьшение несовместимости различных вариантов SQL.

Однако, несмотря на все усилия добиться единого стандарта, каждый из производителей использует и развивает свою модификацию SQL. В SQLServer 7.0 реализован вариант Transact-SQL, поддерживающий большинство возможно­стей стандарта ANSISQL-92, а также ряд дополнений, увеличивающих гибкость и мощность языка. Transact-SQL широко используется не только в продуктах Microsoft, но и в приложениях независимых разработчиков.

Transact-SQL является основой SQL Server 7.0, реализуя простые, но в то же время мощные методы доступа к данным. Администратор может сконфигуриро­вать сервер таким образом, что пользователям не нужно будет явно указывать на­чало и конец транзакций. Сервер сам позаботится об обеспечении целостности данных. Для профессиональной работы с SQLServer 7.0 необходимо понимать механизмы работы Transact-SQLи уметь успешно применять их на практике.

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

Основная часть

1Управляющие конструкции TRANSACT-SQL

1.1 Команда группировки

Рассмотрим различные конструкции Transact-SQL, без которых невоз­можно написание эффективных алгоритмов.

BEGIN…END

С помощью этой конструкции выполняется группировка двух и более ко­манд в единый блок. Сгруппированные команды воспринимаются интерпретато­ром Transact-SQLкак один оператор. Подобная группировка требуется для конст­рукции поливариантных ветвлений, условных и циклических конструкций. Beginставится в начале блока. После него располагается одна или несколько команд. ЗавершаетсяблокключевымсловомEND:

BEGIN

SELECT * FROM authors

SELECT * FROM titles

PRINT ‘Дата : ‘+ CAST (GETDATE () AS char)

END

1.2 Команды программирования Transact-SQL

Некоторые команды Transact-SQLне должны выполнятся вместе с другими командами, поэтому их включение в конструкцию BEGIN…ENDсовместно с другими командами не допускается. К таким командам относятся команды резервного копирования, изменения структуры таблиц, хранимых процедур и им подобные.[1]

IF…ELSE

Часто определённая часть программы должна выполнятся только при неко­тором условии. Например, изменять строки в таблице имеет смысл только в том случае, если они имеются. Конструкция IF…ELSEпозволяет выполнять указан­ную команду только при соблюдении логических условий.

В отличие от большинства языков программирования, в конструкции IF…ELSEязыка Transact-SQLне используется ключевое слово THEN. Кроме ТОО, в некоторых языках программирования конструкция IF…ELSEпредусмат­ривает включение множества команд. В Transact-SQLпозволено указание не бо­лее одной команды. Если требуется выполнить более одной команды, необходимо воспользоваться конструкцией BEGIN…END.

CASE…END

Эта конструкция часто используется для замены множества одиночных или вложенных конструкций IF…ELSE. Конструкция CASE…ENDвозвращает результат, который можно использовать в качестве переменной в других выражениях. Приэтомонарассматриваетсякакфункция.

CASE input_ expression

WHEN {when_ expression | Boolean_ expression}

THEN result_ expression

[…n]

[ELSE else_ result_ expression]

END

Конструкцию CASE…ENDможно также использовать непосредственно в запросе.

COALESCE

Эта конструкция возвращает первое нулевое значение. Еёсинтаксистаков:

COALESCE (expression […n])

Внутри скобок в этой конструкции через запятую перечисляется множество значений. Конструкция COALESCEможет быть представлена в виде конструкции CASE…END.

WHILE…BREAK & CONTINUE

С помощью это конструкции в Transact-SQLорганизуется циклы, причём это единственный тип циклов, поддерживаемый Transact-SQL. Во многих языках программирования реализовано два, а то три типа циклов. Например, Delphiподдерживает три типа циклов: FOR…TO, WHILE…DOи REPEAT…UNTIL.

Цикл можно принудительно остановить, если в его теле выполнить команду BREAK. Если же нужно начать цикл заново, не дожидаясь выполнения всех ко­манд в теле цикла, необходимо выполнить команду CONTINUE. После этой ко­манды цикл переходит к проверке логического условия.

Все объекты SQLServer 7.0 имеют свои собственные имена, с помощью которых можно ссылаться на них. Имена объектов называются идентификаторами. Любой объект базы данных должен быть уникально идентифицирован. TransactSQLналагает ряд ограничений на именование объектов:

1. Первый символ имени объекта должен соответствовать стандарту UnicodeStandard 2.0 и быть одним из символов латинского или национального алфавита либо символом «_», то есть не допускается использование в качестве первого символа имени объекта цифр, символов «!», «№», «*» и т.д. Кроме того, для обозначения временных объектов сервер разрешает использование символов «@» (временные переменные или параметры) и «#» (временные таблицы или храни­мые процедуры). Временные объекты существуют только в течение сеанса или транзакции, а затем уничтожаются. Для обозначения глобальных временных объектов, к которым могут обращаться все пользователи, Transact-SQLпозволяет ис­пользовать символы «##». Для обозначения глобальных временных переменных вначале идентификатора указываются символы «@@». Некоторые функции и переменные SQLServer 7.0 начинаются с символов «@@».

1 Остальная часть идентификатора может включать любые символы, определённые стандартом UnicodeStandard 2.0, символы национальных ал­фавитов, десятичные цифры, символы «@», «#» и «_».

2 При выборе имени следует убедиться, что оно не является зарезервированным словом (как, например, BEGINили KILL) и что ещё не существует объекта с таким именем. Transact-SQLне различает регистра, в котором набрано имя, и поэтому считает одинаковыми имена объектов, вы­бранные в разных регистрах.

3 Запрещается использование внутри имени пробелов, круглых ско­бок и специальных символов «~», «!», «%», «^», «&», «-», «{», «}», «`», «.», «\», и «’».

4 Длина имени объекта не должна превышать 128 символов. Исключе­ние составляют имена временных таблиц, длина имени которых не должна превышать 116 символов.

Для обхода некоторых ограничений можно заключить имена объектов в двойные кавычки или квадратные скобки. В этом случае разрешается использование в имени объекта пробелов, специальных символов, а также употребление зарезервированных слов в качестве идентификаторов. Стандартные имена также могут быть записаны с использованием ограничителей. Идентификаторы, заклю­чённые в двойные кавычки или квадратные скобки, называются ограниченными идентификаторами (Delimitedidentifiers).[2]

Многие хранимые процедуры и команды Transact-SQLтребуют указания в качестве аргумента имени таблицы, колонки, представления или другого объекта. В этом случае имена объектов должны заключаться в одинарные кавычки. Выражение, заключенное в одинарные кавычки, рассматривается как символьная строка. Например, для получения информации о таблице titleauthorбазы данных pubsнеобходимо ввести следующую команду:

EXEC SP _help ‘pubs… title author’

Если же название таблицы не соответствует правилам именования объектов, необходимо заключить имя таблицы в квадратные скобки или двойные кавычки: