Переменные в Transact-SQL


Общие сведения о Transact-SQL

 

В 1970-х годах был разработан специальный язык SEQUEL (Structured English Query Language), который позднее был переименован в SQL. В 1986 году комитетом ANSI (American National Standards Institute) был принят первый стандарт языка. Последним принятым стандартом является ISO SQL:2008.

Язык SQL разрабатывался как непроцедурный язык, который будет доступен обычным пользователям, а не только программистам. Однако со временем язык становился все сложнее и сейчас предназначен в большей степени для программистов. Несмотря на существование стандартов языка SQL, в каждой СУБД используется свое расширение этого языка. Основной причиной использования расширений SQL является потребность применять SQL не только как язык запросов, но и как язык программирования, для этого, как правило, вводятся так называемые хранимые процедуры. СУБД Microsoft SQL Server использует свое расширение языка, которое называется Transact-SQL и включает в себя следующее:

· управляющие конструкции;

· локальные переменные;

· дополнительные функции (математические, строковые и другие);

· поддержка аутентификации Windows.

 

Типы данных

 

MS SQL Server поддерживает все основные простые типы данных, используемые в современных языках программирования. В версии MS SQL Server 2008 были добавлены несколько новых типов, а некоторые перестали рекомендоваться к использованию.

Типы данных в MS SQL Server можно разделить на семь категорий.

 

1. Целые числа:

· Bit (1 байт). На самом деле первый бит в таблице будет занимать один байт, однако следующие семь бит в этой таблице будут храниться в том же байте.

· Bigint (8 байт). 64-разрядное целое число, позволяет хранить числа от –263 до +263–1.

· Int (4 байта). Диапазон значений от –2 147 483 648 до +2 147 483 647.

· SmallInt (2 байта). Диапазон значений от –32768 до +32767.

· TinyInt (1 байт). Диапазон значений от 0 до 255.

 

2. Числа с фиксированной запятой:

· Decimal или Numeric. Диапазон значений от –1038–1 до +1038–1.

· Money (8 байт). Денежный формат, диапазон значений от –263 до +263 с четырьмя знаками после запятой.

· SmallMoney (4 байта). Денежный формат, диапазон значений от
–214748,3648 до +214748,3647.

 

3. Числа с плавающей запятой:

· Float. Диапазон значений от –1,79E +308 до +1,79E +308.

 

4. Дата и время:

· DateTime (8 байт). Диапазон значений от 1 января 1753 года до 31 декабря 9999 года с точностью до трех сотых секунды.

· DateTime2 (6-8 байт). Новый тип данных, поддерживает точность до 0,1 мс.

· SmallDateTime (4 байта). Диапазон значений от 1 января 1900 года до 6 июня 2079 года с точностью одна минута.

· DateTimeOffset (8-10 байт). Аналогичен типу DateTime, но хранит ещё сдвиг относительно времени UTC[1].

· Date (3 байта). Хранит только дату. Диапазон значений от 1 января 0001 года до 31 декабря 9999 года.

· Time (3-5 байт). Хранит только время с точностью до 0,1 мс.

 

5. Символьные строки:

· Char. Строка фиксированной длины. Максимальная длина строки 8000 символов.

· VarChar. Строка переменной длины. Максимальная длина строки 8000, но при использовании ключевого слова «max» может хранить до 231 байт.

· Text. Применялся для хранения больших строк, сейчас рекомендуется использование varchar(max) вместо text. Оставлен для обратной совместимости.

· Nchar. Строка фиксированной длины в Юникоде. Максимальная длина строки 4000 символов.

· NvarChar. Строка переменной длины в Юникоде. Максимальная длина строки 4000 символов, но при использовании ключевого слова «max» может хранить до 231 байт.

· Ntext. Аналогичен типу text, но предназначен для работы с Юникод. Сейчас рекомендуется использовать nvarchar(max). Оставлен для обратной совместимости.

 

6. Двоичные данные:

· Binary. Позволяет хранить двоичные данные размером до 8000 байт.

· VarBinary. Тип данных переменной длины, позволяет хранить до 8000 байт, но при использовании ключевого слова «max» до 231 байт.

· Image. Использовался для хранения больших объемов данных, сейчас рекомендуется использовать varbinary(max). Оставлен для обратной совместимости.

 

7. Прочие типы данных:

· Table. Особый тип данных, используемый в основном для временного хранения таблиц и для передачи в качестве параметра в функции.

· HierarchyID. Используется для представления положения в иерархической структуре.

· Sql_variant. Тип данных, хранящий значения различных типов данных, поддерживаемых MS SQL Server.

· XML. Позволяет хранить XML-данные.

· Cursor(1 байт). Тип данных для переменных или выходных параметров хранимых процедур, которые содержат ссылку на курсор.

· Timestamp/ rowversion (8 байт). Это тип данных, который представляет собой автоматически сформированные уникальные двоичные числа в базе данных. Значение данного типа генерируется БД автоматически при вставке или изменении записи.

· UniqueIdentifier (16 байт). Представляет собой GUID (Special Globally Unique Identifier). Гарантируется уникальность данного значения.

 

Переменные в Transact-SQL

 

Любой объект базы данных должен обладать уникальным именем внутри этой базы. На основе имени происходит обращение к этому объекту. Имена объектов называются идентификаторами. Transact-SQL накладывает ряд ограничений на порядок именования объектов:

· первый символ имени должен быть одним из символов латинского алфавита (A-Z, a-z), либо символом @, # или _, т.е. не допускается использование цифр и прочих специальных символов. Остальная часть имени может включать любые символы алфавита, цифры и некоторые специальные символы;

· общая длина имени обычного объекта не должна превышать 128 символов, для временных объектов – 116;

· внутри имени запрещается использование пробелов, скобок и таких символов, как ~, !, %, ^, & и др.

· имя объекта не должно совпадать с зарезервированным словом и с именем уже существующего объекта;

· если имя объекта содержит пробелы или совпадает с зарезервированным словом, то его необходимо поместить внутрь квадратных скобок [ ].

Замечание: Transact-SQL является CASE-нечувствительным языком, т.е. не различает регистра символов.

 

Имена локальных переменных должны удовлетворять перечисленным правилам именования объектов и всегда должны начинаться с символа @. Область действия переменной ограничена пакетом операторов или процедурой, в которой она была объявлена.

 



Дата добавления: 2021-04-21; просмотров: 112;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.01 сек.