Идентификаторы языка Transact-SQL
Элементы языка SQL на примере Transact-SQL
Состав языка SQL
Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям. Можно выделить следующие группы операторов
- операторы определения данных (Data Definition Language, DDL);
- операторы манипуляции данными (Data Manipulation Language, DML);
- операторы управления доступом к данным (Data Control Language, DCL);
- операторы управления транзакциями (Transaction Control Language, TCL).
Имя объекта базы данных называется его идентификатором. Идентификаторы в Microsoft SQL Server 2008 могут присваиваться любым сущностям: серверам, базам данных и их объектам, например таблицам, представлениям, столбцам, индексам, триггерам, процедурам, ограничениям и правилам. Для большинства объектов идентификаторы необходимы, а для некоторых, например ограничений, необязательны.
Идентификатор объекта создается при определении объекта. Затем идентификатор используется для обращения к объекту.
Существует два класса идентификаторов: обычные идентификаторы и идентификаторы с разделителем. Как обычные идентификаторы, так и идентификаторы с разделителем могут содержать от 1 до 128 символов. Для локальных временных таблиц идентификатор может содержать не более 116 символов.
Определение 1.1. Обычные идентификаторы соответствуют правилам форматирования идентификаторов.
Определение 1.2. Идентификаторы с разделителем заключаются в двойные кавычки (") или квадратные скобки ([ ]).
С объектом, содержащим данные, связан тип, определяющий вид данных, которые могут храниться в объекте, например символы, целые числа или двоичные данные. Типы данных имеют следующие объекты:
- столбцы таблиц и представлений;
- параметры хранимых процедур;
- переменные;
- функции Transact-SQL, возвращающие одно или несколько значений конкретного типа данных;
- хранимые процедуры, возвращающие значение (это значение всегда имеет тип integer).
При назначении типа данных объекту определяются четыре атрибута объекта:
- вид данных, содержащихся в объекте;
- размер или длина хранимого объектом значения;
- точность числа (только в случае числовых типов);
- масштаб числа (только в случае числовых типов).
Простые типы данных в SQL, как и в подавляющем большинстве других языков, можно разделить на несколько групп: числовые, строковые, даты и времени и пр. Основные типы данных представлены в таблицах 1.3–1.8.
Таблица 1.3 – Числовые типы данных Transact-SQL
Название | Описание |
int | 32-хразрядное целое со знаком (4 байта)в диапазоне от -2147483648 до 2147483647. |
bigint | 64-хразрядное целое со знаком (8 байт)в диапазоне от -9223372036854775808 до 9223372036854775807. |
smallint | 16-иразрядное целое со знаком (2 байта) в диапазоне от -32768 до 32767. |
tinyint | 8-иразрядное целое без знака (1 байт) в диапазоне от 0 до 255. |
bit | 1-оразрядное целое, заменяет логический тип данных, как 1 байт (8 бит), может принимать значения: либо 0, либо 1. |
decimal или numeric | Вещественное число с фиксированной запятой. Название может быть сокращено до dec. Синтаксис определения decimal(p, s), где p – точность (количество десятичных разрядов числа) от 1 до 38, s – масштаб (количество десятичных разрядов после запятой) от 0 до p. В памяти значения данного типа занимают различное число байт, зависящее от точности при точности 1–9 знаков – 5 байт, при точности 10–19 знаков – 9 байт, при точности 20–28 знаков – 13 байт, при точности 29–38 знаков – 17 байт |
float | Вещественное число с плавающей запятой. Синтаксис определения: float[(p)], где p – точность (число знаков основания) от 1 до 53. При точности 1–24 знаков для хранения числа выделяется 4 байта памяти, а при точности 25–53 знака – 8 байт. По умолчанию p = 53. |
Таблица 1.4 – Денежные типы данных Transact-SQL
Название | Описание |
money | Вещественное число с фиксированной запятой (4 знака после запятой). Занимает 64 разряда (8 байт). Может принимать значения от -922337203685477,5808 до 922337203685477,5807. |
smallmoney | Аналогично money, только 32-хразрядное (4 байта), но также 4 знака после запятой. Может принимать значения от -214748,3648 до 214748,3647. |
Таблица 1.5– Символьные типы данных Transact-SQL
Название | Описание |
char | Массив 8-разрядных символов фиксированного размера. Синтаксис определения: char[(n)], где n – число символов от 1 до 8000. Если n не задается в определении данных или в инструкции объявления переменной, длина по умолчанию равна 1. Если при использовании функций CAST и CONVERT n не задается, длина по умолчанию равна 30. Синонимом по стандарту ISO для типа char является character. |
varchar | Аналогичен char, но при хранении строк памяти отводится по длине строки, а не всегда n байт, но не более n. Синтаксис определения: varchar[(n)], где n – число символов от 1 до 8000. Если n не задается в определении данных или в инструкции объявления переменной, длина по умолчанию равна 1. Если при использовании функций CAST и CONVERT n не задается, длина по умолчанию равна 30. Синонимами по стандарту ISO для типа varchar являются типы char varying или character varying. |
text | Массив 8-разрядных символов размером до 2 Гб. |
nchar | Массив 16-разрядных символов фиксированного размера. Символы хранятся в кодировке UNICODE UCS-2. Синтаксис определения: nchar[(n)], где n – число символов от 1 до 4000. Если n не задается в определении данных или в инструкции объявления переменной, длина по умолчанию равна 1. Если при использовании функций CAST и CONVERT n не задается, длина по умолчанию равна 30. Синонимами по стандарту ISO для типа nchar являются типы national char и national character. |
nvarchar | Аналогичен nchar за исключением того, что при хранении строк памяти отводится по длине строки, а не всегда n байт, но не более n. Синтаксис определения: nvarchar[(n)], где n – число символов от 1 до 4000. Если n не задается в определении данных или в инструкции объявления переменной, длина по умолчанию равна 1. Если при использовании функций CAST и CONVERT n не задается, длина по умолчанию равна 30. Синонимами по стандарту ISO для типа nvarchar являются типы national char varying и national character varying. |
Ntext | Массив 16-иразрядных символов размером до 2 Гб. Символы хранятся в кодировке UNICODE UCS-2. Синонимом по стандарту ISO для типа ntext является national text. |