Transact-SQL
Основные данные о работе
| Версия шаблона | 1.1 |
| Филиал | |
| Вид работы | Курсовая работа |
| Название дисциплины | Базы данных |
| Тема | «Transact-SQL» |
| Фамилия студента | |
| Имя студента | |
| Отчество студента | |
| № контракта |
Содержание
Введение 3
Основная
часть…………………………………………………………………
1 Управляющие конструкции transact-sql 4
2 Идентификаторы 6
3 Типы данных 8
Заключение 22
Список использованных источников 23
Приложения……………………………………………………
Введение
Структурированный язык запросов SQL (Structured Query Language) был разработан в 1970 г. корпорацией IBM как язык управления реляционными базами данных. До него и после него были попытки создания альтернативных языков, но стандартом стал именно SQL. Практически все производители систем управления базами данных используют в своих продуктах ту или иную модификацию SQL. С 1970 г. Было разработано немало версий этого языка, часто не совместимых друг с другом. В результате в 1992 г. американским национальным институтом стандартов (American National Standard Institute-ANSI) был разработан стандарт SQL – 92, описывающий поведение сервера и регламентирующий основные правила работы. Целью разработки этого стандарта было, в частности, уменьшение несовместимости различных вариантов SQL.
Однако, несмотря на все усилия добиться единого стандарта, каждый из производителей использует и развивает свою модификацию SQL. В SQL Server 7.0 реализован вариант Transact-SQL, поддерживающий большинство возможностей стандарта ANSI SQL-92, а также ряд дополнений, увеличивающих гибкость и мощность языка. Transact-SQL широко используется не только в продуктах Microsoft, но и в приложениях независимых разработчиков.
Transact-SQL является основой SQL Server 7.0, реализуя простые, но в то же время мощные методы доступа к данным. Администратор может сконфигурировать сервер таким образом, что пользователям не нужно будет явно указывать начало и конец транзакций. Сервер сам позаботится об обеспечении целостности данных. Для профессиональной работы с SQL Server 7.0 необходимо понимать механизмы работы Transact-SQL и уметь успешно применять их на практике.
Основная часть
1 глава Управляющие конструкции Transact-Sql
Рассмотрим
различные конструкции Transact
BEGIN…END
С помощью этой конструкции выполняется группировка двух и более команд в единый блок. Сгруппированные команды воспринимаются интерпретатором Transact-SQL как один оператор. Подобная группировка требуется для конструкции поливариантных ветвлений, условных и циклических конструкций. Begin ставится в начале блока. После него располагается одна или несколько команд. Завершается блок ключевым словом END:
BEGIN
SELECT * FROM authors
SELECT * FROM titles
PRINT ‘Дата : ‘+ CAST (GETDATE () AS char)
END
Некоторые команды Transact-SQL не должны выполнятся вместе с другими командами, поэтому их включение в конструкцию BEGIN…END совместно с другими командами не допускается. К таким командам относятся команды резервного копирования, изменения структуры таблиц, хранимых процедур и им подобные.
IF…ELSE
Часто определённая часть программы должна выполнятся только при некотором условии. Например, изменять строки в таблице имеет смысл только в том случае, если они имеются. Конструкция IF…ELSE позволяет выполнять указанную команду только при соблюдении логических условий.
В отличие от большинства языков программирования, в конструкции IF…ELSE языка Transact-SQL не используется ключевое слово THEN. Кроме ТОО, в некоторых языках программирования конструкция IF…ELSE предусматривает включение множества команд. В Transact-SQL позволено указание не более одной команды. Если требуется выполнить более одной команды, необходимо воспользоваться конструкцией BEGIN…END.
CASE…END
Эта
конструкция часто используется
для замены множества одиночных
или вложенных конструкций IF…
CASE input_ expression
WHEN {when_ expression | Boolean_ expression}
THEN result_ expression
[…n]
[ELSE else_ result_ expression]
END
Конструкцию CASE…END можно также использовать непосредственно в запросе.
COALESCE
Эта конструкция возвращает первое нулевое значение. Её синтаксис таков:
COALESCE (expression […n])
Внутри
скобок в этой конструкции через
запятую перечисляется
WHILE…BREAK & CONTINUE
С
помощью это конструкции в Tran
Цикл
можно принудительно
2 глава Идентификаторы
Все объекты SQL Server 7.0 имеют свои собственные имена, с помощью которых можно ссылаться на них. Имена объектов называются идентификаторами. Любой объект базы данных должен быть уникально идентифицирован. Transact-SQL налагает ряд ограничений на именование объектов:
1.Первый
символ имени объекта должен
соответствовать стандарту Unic
- Остальная часть идентификатора может включать любые символы, определённые стандартом Unicode Standard 2.0, символы национальных алфавитов, десятичные цифры, символы «@», «#» и «_».
- При выборе имени следует убедиться, что оно не является зарезервированным словом (как, например, BEGIN или KILL) и что ещё не существует объекта с таким именем. Transact-SQL не различает регистра, в котором набрано имя, и поэтому считает одинаковыми имена объектов, выбранные в разных регистрах.
- Запрещается использование внутри имени пробелов, круглых скобок и специальных символов «~», «!», «%», «^», «&», «-», «{», «}», «`», «.», «\», и «’».
- Длина имени объекта не должна превышать 128 символов. Исключение составляют имена временных таблиц, длина имени которых не должна превышать 116 символов.
Для обхода некоторых ограничений можно заключить имена объектов в двойные кавычки или квадратные скобки. В этом случае разрешается использование в имени объекта пробелов, специальных символов, а также употребление зарезервированных слов в качестве идентификаторов. Стандартные имена также могут быть записаны с использованием ограничителей. Идентификаторы, заключённые в двойные кавычки или квадратные скобки, называются ограниченными идентификаторами (Delimited identifiers).
Многие
хранимые процедуры и команды Transact-
EXEC SP _help ‘pubs… title author’
Если же название таблицы не соответствует правилам именования объектов, необходимо заключить имя таблицы в квадратные скобки или двойные кавычки:
EXES SP _help ‘pubs… ” Title author”’
EXES SP _help ‘pubs… [Title author]’
3 глава Типы данных
Тип данных определяет диапазон значений, которые можно сохранить в переменной или колонке таблицы. Набор стандартных типов данных был заметно расширен по сравнению с предыдущими версиями. Теперь поддерживаются 23 встроенных системных типа данных, на основе которых дополнительно может быть создано множество разнообразных пользовательских типов.
Информация о типах данных, как системных, так и пользовательских, хранится в таблице systypes в каждой базе данных. Если в базе данных не создано ни одного пользовательского типа данных, то эта таблица будет содержать 24 строки. Для получения списка типов и их свойств можно использовать следующую команду:
SELECT * FROM systypes
В результате сервер выдаст таблицу со списком типов, созданных в текущей базе данных, с указанием их свойств. Каждая строка описывает один тип.
Обращаясь к таблице systypes, можно получить информацию о созданных базе типа данных, не прибегая к использованию Enterprise Manager. Для получения информации о конкретном типе данных можно использовать системную хранимую процедуру sp_help:
EXEC sp_help ‘data_type’
Числовые типы данных.
Числовые типы данных, как следует из названия, предназначены для хранения только числовых значений. Числовые типы данных различаются по возможности хранения положительных и отрицательных значений, целочисленных и дробных значений, а также по общему количеству цифр и количеству цифр после запятой.
К целочисленным типам данных (общее название – integer) относятся следующие типы данных:
- Int (или integer). Для хранения данных используется 32 бит или 4 байта, что обеспечивает 4 294 967 296 вариантов значений. 31 бит используется для хранения собственно числа, а старший бит предназначен для указания знака. Если этот бит установлен в 1, то число отрицательное. Следовательно, этот тип данных позволяет хранить целые числа в диапазоне от -231 до 231-1, что соответствует интервалу от -2 147 483 648 до 2 147 483 647.
- Smallint. Для хранения данных используется 16 бит, или 2 байта, что обеспечивает 65 536 вариантов значений. 15 бит используется для хранения собственно числа, а старший бит предназначен для указания знака. Следовательно, этот тип данных позволяет хранить целые числа в диапазоне от -215 до 215-1, что соответствует интервалу от -32 768 до 32 767.
- Tinyint. Этот целочисленный тип занимает всего 1 байт и не содержит отрицательных чисел. Все биты интерпретируются как числовое значение. Тип данных tinyint позволяет хранить значения в интервале от 0 до 255.
При
выборе того или иного типа данных
необходимо исходить из физического значения
хранимых данных. Например, если в колонке
будет храниться количество лет, исполнившееся
сотруднику, то лучшим вариантом будет
использование типа tinyint, так как не придётся
хранить отрицательные значения и вряд
ли человек проживёт более 255 лет1.
Нецелочисленные типы данных.
Числа, в составе которых есть десятичная точка, называется нецелочисленными. Microsoft разделяет нецелочисленные данные на два типа- десятичные (decimal) и приблизительные (approximate).
Десятичные данные физически хранятся не в виде чисел, а в виде последовательности цифр. Для предоставления каждой десятичной цифры обычно используется 4 бита, то есть один байт позволяет хранить две десятичных цифры, или значение от 0 до 99. В то же время, использование байта для представления числа в двоичной форме позволяет хранить значения в диапазоне от 0 до 255. К десятичным типам данных относятся следующие:
- Decimal [(p [, s])] (или dec) и Numeric [(p [, s])]. Эти два типа практически не различаются, и их можно с успехом взаимно заменять. Эти типы содержат фиксированное количество знаков до и после запятой. При использовании типов decimal и numeric можно задавать значения, лежащие в диапазоне от –(1038-1) до 1038-1. Аргумент p определяет максимально возможное количество десятичных знаков (до и после запятой в сумме). Максимальное значение этого параметра равно 38. Аргумент s определяет количество десятичных знаков после запятой, которое будет храниться в этом типе данных. Это значение может быть равно значению p, но не может превышать его. Если этот аргумент не указан, то по умолчанию используется значение 0, то есть хранение цифр после запятой не допускается.
К приблизительным типам данных относят следующие:
- Float [(n)]. Этот тип представляет данные с плавающей запятой. Возможные значения лежат в пределах от -1,79*10308 до 1,79*10308. Значение n определяет количество бит, используемых для хранения мантиссы. Этот параметр определяет точность данных и может принимать значение от 1до 53. Физически тип fioat поддерживает два вида точности: до 7 цифр и до 15 цифр. В первом случае значение n может быть от 1 до 24 и для хранения типа float используется 4 байта. Во втором случае n может принимать значение от 25 до 53 и для хранения типа float используется 8 байт.
- Real. Этот тип данных представляет частный случай типа float со значением аргумента n, равным 24. Для хранения типа real используется 4 байта, и он обеспечивает представление чисел в диапазоне от -3,40*1038 до 3,40*1038.
Денежные типы данных.
Для хранения данных о денежных суммах Transact-SQL предлагает использовать типы данных, дающие хранение до 4 знаков после запятой.
К денежным типам данных относятся:
- Money. Для данных этого типа отводится 8 байт, что обеспечивает представление чисел в диапазоне от -922 337 203 685 477,5808 до +922 377 203 685 477,5807. Если необходимо хранить данные большей длины, то можно использовать тип decimal или numeric.
- Small money. Это более компактный вариант типа money. Для хранения значений типа smallmoney отводятся 4 байта, что обеспечивает представление чисел в диапазоне от -214 748,3648 до 214 748,3647.
Типы данных для хранения информации о времени.
Для хранения информации о дате и времени Transact-SQL предлагает два типа данных, позволяющих одновременно хранить сведения и о дате, и о времени. Нет встроенных типов, позволяющих хранить отдельно информацию только о дате или только о времени. Использование специализированных типов позволяет более гибко управлять данными о времени и проводить с ними различные операции. К временным типам данных относят следующие :
- Datetime. Для предоставления этого типа используется 8 байт. В первых 4 хранится информация о дате. Это значение- своего рода смещение относительно базовой даты. В качестве базовой даты было выбрано 1 января 1753 г. Оставшиеся 4 байта хранят информацию о количестве миллисекунд, прошедших после полуночи данного дня. В итоге тип данных datetime позволяет хранить значения о дате и времени в диапазоне от 1 января 1753 г. до 31 декабря 9999 г. с точностью до 3,33 мс.
- Smalldatetime. Для представления данных этого типа используется 4 байта. Первые 2 байта используются для хранения информации о дате, а оставшиеся 2 байта - о времени. Тип данных smalldatetime обеспечивает хранение информации о дате в диапазоне от 1 января 1900 г. до 6 июня 2079 г. с точностью до минуты.
Бинарные типы данных.
Бинарные типы данных используются для хранения последовательности двоичных значений большой длины. Большинство типов Transact-SQL позволяют хранить значения длиной до нескольких байт, которые в большинстве случаев представляют физические характеристики объектов. В бинарных типах данных можно хранить любые значения, начиная от текста и заканчивая исполняемым кодом программы. Бинарные типы делятся:
- Binary (n). Этот тип данных позволяет хранить до 8000 байт, что стало возможно благодаря изменению внутренней архитектуры системы хранения данных Transact-SQL, а конкретно - размера страницы. Данные типа binary не могут размещаться более чем на одной странице, поэтому их максимальный размер зависит от размера страницы. Значение n определяет количество байт, которое будет хранить.
- Verbinary(n). Этот тип похож на тип binary. Аргумент n (максимальное значение-8000) определяет только максимальную длину, при повышении которой происходит усечение данных.
- Image. Этот бинарный тип позволяет преодолевать ограничение длины в 8000 байтов, характерное для типов binary и varbinary. При использовании этого типа допускается хранение битовых полей длиной до 231-1 (2 147 483 647).
При
выборе того или иного типа данных
придётся выбирать между производительностью
работы системы хранения и свободным пространством
в базе данных. Тип данных image стоит в стороне от
типов binary и varbinary, и его использование
оправдано лишь в том случае, если необходимо
хранить действительно длинные поля бинарных
данных.
Символьные типы данных.
Для хранения текстовой информации используют символьные и текстовые типы данных. Характерное отличие между символьными и текстовыми типами данных заключается в максимальном количестве символов, которое может хранить тот или иной тип данных. К символьным типам относят типы:

- Transact-SQL
- Translation into English of the words “обрабатывать” and “обработка”
- Translation is a means of interlingual communication
- Translation of Irony
- Translator' false friends
- Transnational movements: to what extent do they express a discourse of resistance that is truly global?
- Transporta loģistika
- Total Quality Management (всеобщее управление качеством): концепция и практика реализации
- Toyota – пример наилучшего качества
- TQM в Российских компаниях. Проблемы
- TQM как национальная идея России
- TQM конкретное преимущество, стратегическое управление
- TQM: конкретное преимущество, стратегическое управление
- Traditions customs and habits of great Вritain