Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_po_PrBD_lab.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

Имя_столбца тип 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].

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]