Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы ГЭК (для заочников).doc
Скачиваний:
53
Добавлен:
26.04.2019
Размер:
348.67 Кб
Скачать

25. Управляющие конструкции t-sql.

BEGIN...END

С помощью этой конструкции выполняется группировка двух и более команд в единый блок. Сгруппированные команды воспринимаются интерпретатором Transact-SQL как один оператор. Подобная группировка требуется для конструкций поливариантных ветвлений, условных и циклических конструкций. Ключевое слово BEGIN ставится в начале блока. После него располагаются одна или несколько команд. Завершается блок ключевым словом END:

Блоки BEGIN...END могут быть вложенными. SQL Server 7.0 практически не ограничивает глубину вложенности блоков. На практике глубина вложенности редко превышает 5-7.

Для облегчения понимания структуры программы вложенные блоки принято выделять, добавляя в начале строки символы табуляции или пробела.

Некоторые команды Transact-SQL не должны выполняться вместе с другими командами, поэтому их включение в конструкцию BEGIN...END совместно с другими командами не допускается. К таким командам относятся команды резервного копирования, изменения структуры таблиц, хранимых процедур и им подобные.

IF...ELSE

Часто определенная часть программы должна выполняться только при некотором условии.. Синтаксис этой конструкции следующий:

IF Boolean_expression

{sql_statement | statement_block}

[ELSE

{sql_statement | statement_block}]

Аргумент boolean__expression определяет логическое условие, которое должно возвращать одно из двух значений: TRUE (истина) — если условие выполняется и FALSE (ложь) — если условие не выполняется. Если возвращается значение TRUE, выполняется первая команда sql_statement или блок команд statement_block. Если логическое условие возвращает FALSE, то будет выполнена команда, находящаяся после ключевого слова ELSE (иначе). При отсутствии команд, выполняемых при несоблюдении условия, ключевое слово ELSE можно не указывать.

CASE...END

Эта конструкция часто используется для замены множества одиночных или вложенных конструкций IF...ELSE. Конструкция CASE...END возвращает результат, ко­торый можно использовать в качестве переменной в других выражениях. При этом она рассматривается как функция. Синтаксис конструкции CASE...END следующий:

CASE input_expression

WHEN { when_expression | Boolean_expression }

THEN result_expression

[...n]

[ ELSE else_result_expression ]

END

Аргумент input_expression определяет входное значение. Можно указать имя переменной или использовать функцию. Аргумент when_expression определяет один из вариантов значений аргумента input_expression. Если аргументы when_expression и input_expression совпадают, то конструкция CASE...END возвращает значение resu1t_expression. Можно указать несколько строк WHEN...THEN, которые будут содержать все возможные варианты величины input_expression. Если все же значение входного параметра не найдено ни в одной строке WHEN...THEN, то тогда будет возвращено значение, указанное после ключевого слова ELSE:

26. Процесс проектирования таблиц в реляционной базе данных. Определение идентификационной колонки.

Процесс создания таблицы начинается с проектирования ее будущей структуры. В процессе проектирования необходимо решить следующие вопросы:

1)Для хранения каких данных предназначена создаваемая таблица?

2)Какие колонки могут содержать пустые значения (значения NULL)?

3)На какие колонки будут наложены проверочные ограничения, для каких колонок будут определены значения по умолчанию?

4)Какие колонки будут определены как первичный и внешний ключи?

Проектируя таблицу, необходимо решить, каким образом будет обеспечиваться целостность данных в ней. Для этого следует определить ограничения на значения колонок (constraints). SQL Server 7.0 позволяет управлять значениями колонок при помощи следующих механизмов:

1.определение первичного ключа (Primary Key);

2.определение внешнего ключа (Foreign Key);

3.создание уникальных колонок (Unique);

4.наложение проверочных ограничений на значения колонок (Check);

5.определение значений по умолчанию (Defaults);

6.определение возможности принимать неопределенные значения (NULL).

Определение идентификационной колонки (Identity)

При проектировании таблицы часто возникает потребность в колонке, которая будет содержать последовательность числовых значений. Как правило, это колонка, которая используется для хранения идентификационных номеров объектов. Эти номера получаются путем увеличения значения, полученного для предыдущей строки, на заданное приращение. В подобной ситуации можно поручить заполнение колонки непосредственно SQL Server. Для этого при создании таблицы для колонки необходимо определить свойство Identity. Дополнительно потребуется задать начальное значение и величину приращения. В таблице можно определить только одну идентификационную колонку, которую обычно используют для обеспечения уникальности строк.

Тем не менее, SQL Server предоставляет возможность определить колонку, которая будет содержать глобально уникальные значения (так называемые глобальные идентификационные номера — GUID). Тип данных колонки должен быть uniqueidentifier.