Студопедия — CASE...END
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

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.

 

27. Создание таблиц средствами T-SQL.

Чтобы создать таблицу, необходимо прежде всего определить ее имя. Имя таблицы можно указать по одному из трех сценариев. В самом банальном случае, когда таблица создается в текущей базе данных, можно просто указать имя таблицы (не больше 128 символов). Если вы принадлежите к стандартной роли сервера sysadmin или стандартным ролям базы данных db_owner и db_ddladmin, то можете создавать объекты для других пользователей. При этом в процессе создания необходимо указать в качестве владельца требуемое имя учетной записи. При этом имя таблицы будет выглядеть как имя_владельца.имя таблицы.

CREATE TABLE [ data base [owner]. | owner. ] name

({ <column_definition>

| columnjiame AS | <table_constraint>})

[ON {filegroup | DEFAULT} ]

Ключевое слово ON позволяет указать файловую группу, в которой будет располагаться таблица. Здесь есть две возможности: либо явно указать имя файловой группы (причем она уже должна существовать в базе данных), либо использовать ключевое слово DEFAULT, которое предписывает системе расположить таблицу в файловой группе по умолчанию.

 

Определение каждой колонки таблицы, в синтаксисе команды обозначенное как <column_defimtion>, имеет следующий формат:

<column_definition>::= { columnjiame data_type }

[ [ DEFAULT constant_expression ]

| [ IDENTITY [(seed, increment) [NOT FOR REPLICATION] ] ] ]

[ ROWGUIDCOL ]

[ <column_constraint>] [...n]

Подобным образом необходимо описать каждую колонку в таблице. Прежде всего следует определить имя колонки (column_name), а также тип хранимых в ней данных (data_type). При описании могут быть использованы следующие ключевые слова:

DEFAULT — определяет значение по умолчанию (constant_expression), которое будет использовано, если при вводе строки явно не указано другое значение.

IDENTITY — предписывает системе осуществлять заполнение колонки автоматически. Если вы решили использовать это ключевое слово, необходимо также указать начальное значение (seed) и приращение (increment). В случае, когда указано NOT FOR REPLICATION, эта колонка не будет автоматически заполняться для строк, вставляемых в таблицу в процессе репликации, так что эти строки сохранят свои значения.

ROWGUIDCOL — данная колонка будет использоваться для хранения глобального идентификационного номера.

Кроме того, для колонки можно определить ограничения на значения. Это делается следующим образом:

<column_constraint>::= [CONSTRAINT constraintjiame]

{ [ NULL | NOT NULL ]

| [ { PRIMARY KEY | UNIQUE }

[CLUSTERED | NONCLUSTERED]

[WITH FILLFACTOR = fill factor]

[ON {filegroup | DEFAULT} ] ] ]

| [ [FOREIGN KEY]

REFERENCES refutable [(ref_column) ]

[NOT FOR REPLICATION]]

| CHECK [NOT FOR REPLICATION]

(logical_expression) }

Наложение ограничения на значение колонки должно начинаться с ключевого слова CONSTRAINT, после которого необходимо указать имя ограничения на зна­чение. Для каждого ограничения желательно указать, допустимо ли для колонки значение NULL, выбрав соответствующее ключевое слово (NULL или NOT NULL). После этого требуется определить тип ограничения:

PRIMARY KEY — определяет колонку как первичный ключ таблицы. В качестве альтернативы можно определить колонку как уникальную, воспользовавшись ключевым словом UNIQUE. При необходимости можно также указать, будет ли индекс, создаваемый для данного ограничения, кластерным (ключевое слово CLUSTERED) или некластерным (NONCLUSTERED). Однако необходимо помнить, что кластерный индекс можно определить только для одного ограничения, поэтому требуется решить, с каким ограничением (первичный ключ или уникальная колонка) вы будете его использовать. Если вы создаете индекс, необходимо также указать степень заполнения его страниц (ключевое слово WITH FILLFACTOR).

1 FOREIGN KEY — определяет колонку как внешний ключ таблицы. Одновременно, используя ключевое слово REFERENCES, необходимо указать имя таблицы, с которой будет связана создаваемая таблица. Дополнительно потребуется указать ее колонки, которые будут связаны с данной колонкой.

1 CHECK — накладывает на колонку проверочное ограничение. При этом необходимо определить логическое выражение (logicalexpression), которое будет использоваться системой для осуществления контроля за вводимыми в колонку данными. Если необходимо, чтобы это ограничение не распространялось на процесс репликации, используйте ключевое слово NOT FOR REPLICATION.

Однако можно определять ограничения на значения колонок и другим спосо­бом — через определение ограничений на уровне всей таблицы:

<table_constraint>::= [CONSTRAINT constraintjiame]

{[ { PRIMARY KEY | UNIQUE }

[ CLUSTERED | NONCLUSTERED]

{ (column[....n]) }

[ WITH FILLFACTOR = fill factor]

[ON {filegroup | DEFAULT} ] ]

| FOREIGN KEY

[(column[___n])]

REFERENCES refutable [(ref_column[,...n])] [NOT FOR REPLICATION]

CHECK [NOT FOR REPLICATION] (search_conditions)}

Ключевые слова и аргументы имеют смысл, полностью аналогичный описанным ранее.

Следует заметить, что можно определить виртуальную колонку, которая будет производной от других колонок. При этом на хранение ее значений не требуется физической памяти, поскольку они в любой момент могут быть получены для любой строки путем вычислений. Определение виртуальной колонки имеет следующий формат:

имя_колонки AS выражение

Выражение может включать имена колонок, функции и арифметические операции.

 







Дата добавления: 2015-04-19; просмотров: 688. Нарушение авторских прав; Мы поможем в написании вашей работы!



Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

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

Лечебно-охранительный режим, его элементы и значение.   Терапевтическое воздействие на пациента подразумевает не только использование всех видов лечения, но и применение лечебно-охранительного режима – соблюдение условий поведения, способствующих выздоровлению...

Тема: Кинематика поступательного и вращательного движения. 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью, проекция которой изменяется со временем 1. Твердое тело начинает вращаться вокруг оси Z с угловой скоростью...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия