Версия шаблона | 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, типы строковых и числовых данных, а так же логические операторы и защита.
Рассмотрим различные конструкции 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’
Если же название таблицы не соответствует правилам именования объектов, необходимо заключить имя таблицы в квадратные скобки или двойные кавычки: