ВУЗ:
Составители:
Рубрика:
CREATE TABLE… (
tovar VARCHAR (20) NOT NULL,
…,
PRIMARY KEY (tovar));
PRIMARY KEY – это первичный ключ построений по столбцу или столбцам. Столбцы должны
иметь значение NOT NULL. Первичный ключ служит для установления связи с внешним ключом
(foreign key) дочерней таблицы и определяет ссылочную целостность между родительской и дочер-
ней таблицами.
Уникальный ключ строится по столбцу (столбцам), когда столбец не входит в первичный ключ и
имеет уникальное значение (нет одинаковых значений).
CREATE TABLE klient (
Imja_klienta VARCHAR (20) NOT NULL PRIMARY KEY,
Nom_scheta VARCHAR (50) NOT NULL,
UNIQUE (nom_scheta));
Допускается также
nom_scheta VARCHAR (50) NOT NULL UNIQUE
Внешний ключ строится в дочерней таблице для соединения с родительской таблицей. Формат
его описания имеет вид
FOREIGN KEY (<список_ст_внешнего_ключа>)
REFERENCES <имя_род_табл>
[<cписок_ст_род_табл>]
[ON DELETE {NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
[ON UPDATE {NO ACTION | CASCADE | SET DEFAULT | SET NULL}]
где <список_ст_внешнего_ключа> – столбцы дочерней таблицы;
<имя_род_табл> – таблица, в которой описан первичный ключ (или столбец с атрибутом UNIQUE);
список_ст_род_табл – не обязателен при ссылке на первичный ключ родительской таблицы, в дру-
гих случаях необходим способ изменения записей дочерней таблицы при удалении или изменении
поля связи в родительской таблице (ON DELETE, ON UPDATE) со значениями NO ACTION – запрет,
CASCADE – название, SET DEFAULT – в поле дочерней таблицы заносится значение, определенное
ранее по умолчанию, SET NULL – заносится значение NULL.
Пример. Определим две таблицы:
− родительская detal с полями name_det (имя детали) и cena_ed (цена за единицу), первичный ключ
по полю name_det;
− дочерняя prihod (приход со склада) с полями n_prihod (номер прихода), date_prihod (дата прихо-
да), name_det (имя детали), kolvo (количество деталей в приходе). Первичный ключ по n_prihod, внеш-
ний – name_det.
Detal Prihod
Name_det Zena_ed N_prihod Date_prihod Name_det kolvo
… … … … … …
… … … … … …
Команды создания таких таблиц будут выглядеть следующим образом
CREATE TABLE detal (
Name_det VARCHAR (20) NOT NULL
1
,
Cena_ed INTEGER NOT NULL,
1
Должны быть описаны одинаково.
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »
