-- Столбец с неименованным ограничением уникальности
st_name varchar(80) unique
-- То же самое, но с присвоением имени ОЦ
st_name varchar(80) constraint st_name_unique unique
-- Определение внешнего ключа
id_train int constraint fk_coach_train foreign key references trains(id_train)
-- Ограничение check
mark tinyint check mark >= 3 and mark <= 5
-- Это же ограничение можно записать так
mark tinyint check mark between 3 and 5
Несколько по-другому выглядит описание ОЦ табличного уровня:
[constraint имя]
{{primary key | unique} (столбец [,…n] )}
| foreign key (столбец [,…n]) references таблица [(столбец [,…n)]
[on delete {cascade | no action}]
[on update {cascade | no action}]
| check (условия)}
Здесь после ключевых слов primarykey, foreignkey, notnull, unique должны указываться списки столбцов (в круглых скобках). Исключением является ОЦ check, поскольку имена столбцов для него фигурируют в логическом условии.
Необходимо заметить, что нельзя привязывать ОЦ к вычисляемым столбцам.
Полный синтаксис команды createtable и всех связанных с ней конструкций можно найти в справочной системе SQL Server или в [2].
2.2.3. Модификация структуры таблиц. Удаление таблиц
На практике нередко возникают случаи, когда уже существующую и заполненную таблицу необходимо определенным образом реорганизовать: добавить или удалить столбец, изменить тип столбца, добавить или удалить ОЦ и т. п. В большинстве диалектов SQL существует команда altertable, предназначенная для этих целей. Синтаксис ее (опять-таки упрощенный) в Transact-SQL имеет следующий вид:
altertable имя_таблицы
{altercolumn имя_столбца новый_тип_данных
| add
{<определение_столбца>
|<определение_вычисляемого_столбца>
|<ограничение_на_уровне_таблицы>} [,…n]
| drop
{[constraint] имя_ограничения
| column имя_столбца} [,…n]
| {check | nocheck} constraint
{all | имя_ограничения} [,…n]
| {enable | disable} trigger {all | имя_триггера [,…n]}}
За ключевыми словами altertable и именем таблицы следует одна из секций: altercolumn, add, drop, {check | nocheck} и т. п. В настоящей работе обозреваются только некоторые из них.
В секции altercolumn подвергается изменениям существующий столбец таблицы, а вернее – его тип, поскольку переименовывать столбцы командой altertable нельзя.
В секции add описывается новый столбец (простой или вычисляемый) или новое ОЦ уровня таблицы – по аналогии с тем, как это делается для createtable.
В секции drop указываются ограничения и столбцы, удаляемые из таблицы.
Секция {check | nocheck} позволяет приостанавливать действия ОЦ без их удаления (nocheck имя_ОЦ) и вновь «включать», т. е. приводить в действие ранее приостановленные ограничения (check имя_ОЦ).
Чтобы удалить таблицу из БД, следует воспользоваться оператором droptable, после которого через пробел указывается имя таблицы. Таблица не будет уничтожена, если другие таблицы связаны с ней через внешний ключ: они должны быть удалены в первую очередь.
2.2.4. Вставка, удаление, модификация строк
Вставка
За вставку строк в таблицу отвечает оператор insert. Его упрощенный синтаксис:
insertinto имя_таблицы [(имена_атрибутов)] values (список_значений)
Записанный в таком виде, оператор позволяет добавить одну запись. При этом в списке имен атрибутов (полей) можно указать поля, значение задается явно. Выше приводился пример таблицы trains с четырьмя атрибутами: id_train, train_name, train_type и train_number. Рассмотрим случай вставки в неё строки с явным указанием атрибутов:
insert into trains (id_train, train_name) values (1, ‘Смена’)
Список значений строго соответствует списку атрибутов. Поля вставленной строки будут равны:
id_train – 1
train_name – ‘Смена’
train_type – NULL
train_number – NULL.
Таким образом, умалчиваемые атрибуты принимают либо неопределенное, либо умалчиваемое (default) значение.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.