Get Started. It's Free
or sign up with your email address
Transact-SQL by Mind Map: Transact-SQL

1. Основные компоненты Transact-SQL

1.1. Выражения

1.1.1. это комбинация символов и операторов, которая получает на вход скалярную величину, а на выходе дает другую величину или исполняет какое-то действие.

1.1.1.1. DDL (Data Definition Language) — используются для создания объектов в базе данных. Основные представители данного класса: CREATE — создание объектов, ALTER — изменение объектов, DROP — удаление объектов.

1.1.1.2. DCL (Data Control Language) — предназначены для назначения прав на объекты базы данных. Основные представители данного класса: GRANT — разрешение на объект, DENY — запрет на объект, REVOKE — отмена разрешений и запретов на объект.

1.1.1.3. DML (Data Manipulation Language) — используются для запросов и изменения данных. Основные представители данного класса: SELECT — выборка данных, INSERT — вставка данных, UPDATE — изменение данных, DELETE — удаление данных.

1.2. Системные функции

1.2.1. Системные функции используются для получения информации о компьютерных системах, пользователях, базах данных и объектах баз данных. Например, системные функции позволяют получить информацию о характеристиках объектов базы данных внутри хранимых процедур, на основании которой с помощью условных инструкций (conditional statements) можно выполнять самые разные операции.

1.2.1.1. HOST_NAME

1.2.1.2. HOST_ID

1.2.1.3. SUPER_ID(['имя_входа'])

1.2.1.4. SUPER_NAME([ид_входа])

1.2.1.5. USER_ID(['имя_пользователя'])

1.3. Операторы - это знаки операций над одним или несколькими простыми выражениями для создания более сложного выражения

1.3.1. Простейшие операторы - унарные операторы, которые работают только с одним операндом. Эти операторы используются с любыми величинами числового типа

1.3.1.1. + (-) для обозначения положительного (отрицательного) числа, ~ для получения дополнения числа (выполняется побитовая операция инверсии над числовым операндом - каждый бит числа дополняется до единицы)

1.3.2. Оператор присваивания – используется для присваивания переменной определенного значения, полученного в результате вычисления выражения. Имеется один оператор присваивания - знак равенства =. Помимо присваивания, знак равенства также используется в качестве оператора сравнения.

1.3.3. Арифметические операторы - это знаки бинарных операций, выполняемых над операндами, имеющими числовой тип данных

1.3.3.1. сложение +, вычитание -, умножение *, деление /, получение остатка от деления %

1.3.4. Строковые операторы. Единственная операция, которую можно непосредственно производить над операндами символьного типа – это конкатенация (слияние строк). Для обозначения конкатенации используется оператор +

1.3.5. Операторы сравнения - дают информацию о сравнительной величине операндов: равно =, больше >, меньше <, меньше или равно <=, больше или равно >=, не равно != или <>, не менее чем !<, не более чем !>. Результат выполнения оператора сравнения – значение TRUE, если условие выполняется, или FALSE – если нет.

1.3.6. Логические операторы – возвращают значения TRUE или FALSE, используются в различных конструкциях, включая запросы.

1.3.6.1. ALL AND ANY BETWEEN EXIST IN LIKE NOT OR SOME

1.3.7. Битовые операторы – выполняют побитовые операции над значениями числового типа

1.3.7.1. битовый AND (&), битовый OR ( | ), битовый исключающий OR, или XOR (^)

1.4. Идентификаторы - используются для обращения к конкретному объекту БД (переменной, таблице, столбцу и т. д.), то есть являются именами объектов

1.4.1. Стандартные идентификаторы – при их определении используются все правила создания идентификаторов

1.4.1.1. Первый символ в идентификаторе должен: Соответствовать стандарту Unicode Standard 2.0, определяющему, что этот символ - любой латинский символ (a-z, A-Z) или символ национального алфавита.

1.4.1.1.1. Некоторые символы в начале идентификатора имеют специальное значение: идентификаторы, начинающиеся со знаков: #, ##, @, обозначают соответственно временную таблицу (процедуру), глобальный временный объект, переменную.

1.4.1.2. Нельзя использовать внутри идентификаторов специальные символы:

1.4.1.2.1. ~ ! % ^ & - ( ) { } '' . \ пробел

1.4.1.3. При выборе имени нужно убедиться, что оно не является зарезервированным словом, и что еще не существует объекта с таким именем (без учета регистра).

1.4.2. Ограниченные идентификаторы – при их определении не соблюдались какие-либо правила создания идентификаторов. Такие идентификаторы заключаются в ограничители: квадратные скобки [ ] или двойные кавычки '' ''

1.4.2.1. SELECT * FROM [My Table] /* В этот идентификатор входит пробел и зарезервированное слово Table */ WHERE [order]>1000 /* Этот идентификатор представляет собой зарезервированное слово order */

1.4.3. Стандартные и ограниченные идентификаторы должны содержать от 1 до 128 символов (для временных таблиц - до 116 символов)

1.5. Элементы управления сценарием

1.5.1. Блок группировки — структура, объединяющая список выражений в один логический блок (BEGIN … END).

1.5.2. Блок условия — структура, проверяющая выполнения определённого условия (IF … ELSE).

1.5.3. Блок цикла — структура, организующая повторение выполнения логического блока (WHILE … BREAK … CONTINUE).

1.5.4. Переход — команда, выполняющая переход потока выполнения сценария на указанную метку (GOTO).

1.5.5. Задержка — команда, задерживающая выполнение сценария (WAITFOR).

1.5.6. Вызов ошибки — команда, генерирующая ошибку выполнения сценария (RAISERROR).

2. В настоящее время, несмотря на все усилия добиться единого стандарта, производители СУБД используют и развивают свои модификации SQL. В СУБД MS SQL Server 2005, 2008 (и ряде предыдущих версий этой СУБД) реализован вариант SQL - Transact-SQL (используется также сокращение T-SQL). Transact-SQL поддерживает большинство возможностей стандартов ANSI и ряд расширений этих стандартов, увеличивающих возможности по обработке данных.