- •Рецензенты:
- •Введение
- •Лабораторная работа №1: «Логическое проектирование»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №2: «Физическое проектирование: построение схемы данных»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №3: «Создание таблиц базы данных в ms sql Server 2000»
- •Имя_столбца тип constraint имя_ограничения ограничение
- •Имя_столбца as выражение
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №4: «Создание представлений в ms sql Server 2000»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №5: «Разработка sql-сценариев»
- •Exec имя_сценария.Sql
- •Declare имя_переменной тип_переменной
- •Begin набор операторов end
- •If логическое_условие
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №6: «Разработка хранимых процедур»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №7: «Создание триггеров»
- •Вопросы к допуску
- •Контрольные вопросы
- •Лабораторная работа №8: «Создание учетных записей. Управление разрешениями»
- •Вопросы к допуску
- •Контрольные вопросы
- •Рекомендуемая литература
Имя_столбца тип constraint имя_ограничения ограничение
Имя столбца и его тип обязательно включаются в описание. Ограничению может предшествовать ключевое слово CONSTRAINT и имя ограничения, однако это не является обязательным и служит для возможной дальнейшей работы с данным ограничением (например, удалять ограничения при редактировании таблицы командой alter table можно только по их имени). Каждому столбцу может быть назначено произвольное количество ограничений уровня атрибутов, от нуля и более. Все ограничения также отделяются друг от друга пробелами. Признаком описания нового столбца (или описания ограничений уровня таблицы) служит запятая.
В T-SQL допускается использование вычисляемых столбцов в таблицах. В таких случаях синтаксис описания столбца выглядит следующим образом:
Имя_столбца as выражение
Выражение может содержать в себе имена других столбцов, арифметические операции и встроенные функции T-SQL.
Описание ограничений табличного уровня также может начинаться с ключевого слова CONSTRAINT и имени ограничения (которые не являются обязательными) после чего следует непосредственно само ограничение.
В связи с тем, что типы столбцов и ограничения были подробно описаны в предыдущей лабораторной работе, мы не будем повторно описывать их. Заметим только, что кроме встроенных типов можно использовать пользовательские. Для этого используют следующую команду:
CREATE DOMAIN имя_пользовательского_типа имя_встроенного_типа ограничения
Таким образом, пользовательский тип строится на основе некоторого встроенного типа, на который наложены ограничения уровня атрибутов. Рассмотрим пример:
CREATE DOMAIN item_id char(5) NOT NULL CHECK (item_id like ‘[A-Z][A-Z][0-9][0-9][0-9]’)
В данном примере, мы создали пользовательский тип под именем item_id, который базируется на встроенном типе char(5), т.е. представляет собой текстовую строку из 5 символов, при этом первые 2 символа являются буквами латинского алфавита (заглавными), а последние три – цифры от 0 до 9. Кроме того, столбцы типа item_id не могут содержать пустых значений, что задается ограничением NOT NULL.
Завершим изучение команды Create table примеров sql-кода создания таблиц, которые мы проектировали на первых 2-х лабораторных работах:
CREATE TABLE worker
(
wrkr_id item_id PRIMARY KEY,
wrkr_name varchar(30) NOT NULL UNIQUE,
h_rate smallmoney,
skill_type varchar(10),
supv_id item_id
)
CREATE TABLE building
(
bldg_id item_id PRIMARY KEY,
address varchar(40),
bldg_type varchar(9) DEFAULT ‘Офис’ CHECK (bldg_type in ‘Офис’, ‘Склад’, ‘Жилой дом’, ‘Магазин’),
status decimal(1) DEFAULT 1 CHECK (status between 0 and 4)
)
CREATE TABLE assignment
(
wrkr_id item_id,
bldg_id item_id,
start_day datetime,
num_days smallint CHECK (num_days > 0),
CONSTRAINT assignment_pk PRIMARY KEY (wrkr_id, bldg_id),
CONSTRAINT assignment_fk_wrkr FOREIGN KEY wrkr_id REFERENCES worker ON DELETE SET NULL,
CONSTRAINT assignment_fk_bldg FOREIGN KEY bldg_id REFERENCES building ON DELETE SET NULL
)
После того, как таблицы созданы можно отредактировать их структуру или удалить их. Удаление производиться с помощью команды: DROP TABLE имя_таблицы. Команда изменения структуры таблицы имеет более сложный синтаксис:
ALTER TABLE имя_таблицы
{
alter column описание_столбца,
add описание_столбца,
drop column имя_столбца,
add описание_ограничения,
drop constraint имя_ограничения,
enable | disable trigger имя_триггера
}
Рассмотрим более подробно те команды, которые используются внутри alter table:
Alter column – используется для изменения существующих в таблице столбцов. После нее следует новое описание некоторого столбца, при этом имя столбца сохраняется;
Add – добавляет новый столбец в таблицу. Может быть добавлен как обычный, так и вычисляемый столбец. Кроме того, с помощью данной команды можно добавить новое ограничение уровня таблицы;
Drop column – удаляет столбец с указанным именем;
Drop constraint – удаляет ограничение с указанным именем;
Enable trigger или Disable trigger – позволяют включить или временно отключить выполнение указанного триггера. Распространяется только на те триггеры, которые связаны с данной таблицей.
Для работы с данными T-SQL использует команды SELECT, INSERT, UPDATE и DELETE, которые подробно рассмотрены в [7].
