double arrow

Пример 2.. Создание реляционных таблиц

Изменение структуры таблиц.

Пример 1.

Создание реляционных таблиц.

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

Синтаксис оператора создания новой таблицы:

CREATE TABLE таблица (поле1 тип [(размер)] [индекс 1]

[, поле2 тип [(размер)] [индекс2] [,…]] [, составной индекс[,…]])

где таблица — имя создаваемой таблицы, поле1, поле2 — имена полей таблицы, тип — тип поля;

размер — размер текстового поля,

индекс 1, индекс 2 — директивы создания простых индексов;

составной индекс — директива создания составного индекса.

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

CONSTRAINT имя индекса {PRIMARY KEY|UNIQUE| REFERENCES внешняя таблица [(внешнее поле)]}

Директива создания составного индекса (помещается в любом месте после определения его элементов):

CONSTRAINT имя {PRIMARY KEY (ключевое 1[, ключевое2 [, …]]) IUNIQUE (уникальное 1[, ...]]) | FOREIGN KEY (ссылка1[, ссылка2[,…]]) REFERENCES внешняя таблица [(внешнее поле1[, внешнее поле2[,…]])]}.

Служебные слова:

UNIQUE — уникальный индекс (в таблице не может быть двух записей, имеющих одно и то же значение полей, входящих в индекс);

PRIMARY KEY — первичный ключ таблицы (может состоять из нескольких полей; упорядочивает записи таблицы);

FOREIGN KEY — внешний ключ для связи с другими таблицами (может состоять из нескольких полей);

REFERENCES — ссылка на внешнюю таблицу.

CREATE TABLE Студент

([Имя] TEXT,

[Фамилия] TEXT,

[Дата рождения] DATETIME,

CONSTRAINT Адр UNIQUE ([Имя]), [Фамилия], [Дата рождения]))

В результате выполнения запроса будет создана таблица СТУДЕНТ, в составе которой:

• два текстовых поля: Имя, Фамилия;

• одно поле типа дата/время — Дата рождения.

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

При необходимости можно изменить структуру таблицы:

• удалить существующие поля;

• добавить новые поля;

• создать или удалить индексы.

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

ALTER TABLE таблица

ADD{[COLUMN]поле тип[(paзмep)][CONSTRAINT индекс]

CONSTRAINT составной индекс}|

DROP {[COLUMN] поле i CONSTRAINT имя индекса}}

Опция ADD обеспечивает добавление поля, опция DROP — удаление поля таблицы, добавление опции CONSTRAINT означает подобные действия для индексов таблицы.

ALTER TABLE Студент ADD COLUMN [Группа] ТЕХТ(5)

Для создания нового индекса для существующей таблицы можно использовать также команду:

CREATE [UNIQUE] INDEX индекс

ON таблица (поле[, …])

[WITH {PRIMARY|DISALLOW NULL|IGNORE NULL}]

Фраза WITH обеспечивает наложение условий на значения полей, включенных в индекс:

DISALLOW NULL — запретить пустые значения в индексированных полях новых записей;

IGNORE NULL — включать в индекс записи, имеющие пустые значения в индексированных полях.


Сейчас читают про: