Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Б/Д.doc
Скачиваний:
19
Добавлен:
25.04.2019
Размер:
389.63 Кб
Скачать

Создание таблиц

Создание таблиц при помощи SQL запросов особенно актуально в системах типа Клиент – Сервер, для того чтобы управлять БД на сервере через компьютер клиента.

Ядро базы данных Microsoft Jet не поддерживает использование инструкции CREATE TABLE или любой другой инструкции языка определения данных (DDL) с базами данных, несовместимыми со стандартом Microsoft Jet. Вместо них применяются методы Create объектов доступа к данным (DAO).

Синтаксис

CREATE TABLE таблица (поле_1 тип [(размер)]

[NOT NULL] [индекс_1] [, поле_2 тип [(размер)]

[NOT NULL] [индекс_2] [, ...]] [, CONSTRAINT составнойИндекс [, ...]])

Таблица – имя создаваемой таблицы.

поле_1, поле_2 – имена одного или нескольких полей, создаваемых в новой таблице. Таблица должна содержать хотя бы одно поле.

Тип – тип данных поля в новой таблице.

Размер – размер поля в символах (только для текстовых и двоичных полей).

индекс_1, индекс_2 – предложение CONSTRAINT, предназначенное для создания простого индекса. Для получения более подробных сведений смотрите описание предложения CONSTRAINT.

составнойИндекс – предложение CONSTRAINT, предназначенное для создания составного индекса. Для получения более подробных сведений смотрите описание предложения CONSTRAINT.

Инструкция CREATE TABLE используется для описания новой таблицы, ее полей и индексов. Если для поля добавлено ограничение NOT NULL, то при добавлении новых записей это поле должно содержать допустимые данные. Предложение CONSTRAINT устанавливает различные ограничения на поле и может быть использовано для определения ключа. Кроме того, для создания ключа или дополнительного индекса для существующей таблицы можно использовать инструкцию CREATE INDEX.

Допускается использование ограничения NOT NULL для одиночного поля, а также внутри именованного предложения CONSTRAINT, применяемого к одиночному полю или к именованному предложению CONSTRAINT. Ограничение NOT NULL можно наложить на поле только один раз, в противном случае возникает ошибка выполнения.

В следующем примере создается новая таблица с двумя текстовыми полями:

CREATE TABLE ПерваяТаблица (Имя TEXT, Фамилия TEXT);

В следующем примере создается новая таблица с двумя текстовыми полями и одним полем даты/времени. Из этих трех полей создается уникальный индекс:

CREATE TABLE ВтораяТаблица (Имя TEXT,

Фамилия TEXT, ДатаРождения DATETIME,

CONSTRAINT МойИндекс UNIQUE (Имя, Фамилия, ДатаРождения));

В следующем примере создается новая таблица с двумя текстовыми полями и числовым полем. Поле SSN делается ключевым полем.

CREATE TABLE ТретьяТаблица (Имя TEXT, Фамилия TEXT, SSN INTEGER

CONSTRAINT МойИндекс PRIMARY KEY);

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

Предложение CONSTRAINT используется в инструкциях ALTER TABLE и CREATE TABLE для создания или удаления индексов. Существуют два типа предложений CONSTRAINT: одно для создания простого индекса (по одному полю), а второе для создания составного индекса (по нескольким полям). Ядро базы данных Microsoft Jet не поддерживает использование инструкции CONSTRAINT и всех инструкций языка определения данных (DDL) с базами данных, несовместимыми со стандартом Microsoft Jet. Используйте вместо них методы Create объектов доступа к данным (DAO).

Синтаксис

Простой индекс:

CONSTRAINT имя {PRIMARY KEY | UNIQUE | NOT NULL |

REFERENCES внешняяТаблица [(внешнееПоле_1, внешнееПоле_2)]}

Составной индекс:

CONSTRAINT имя

{PRIMARY KEY (ключевое_1[, ключевое_2 [, ...]]) |

UNIQUE (уникальное_1[, уникальное_2 [, ...]]) |

NOT NULL (непустое_1[, непустое_2 [, ...]]) |

FOREIGN KEY (ссылка_1[, ссылка_2 [, ...]])

REFERENCES внешняяТаблица [(внешнееПоле_1 [, внешнееПоле_2 [, ...]])]}

Имя – имя индекса, который следует создать.

ключевое_1, ключевое_2 – имена одного или нескольких полей, которые следует назначить ключевыми.

уникальное_1, уникальное_2 – имена одного или нескольких полей, которые следует включить в уникальный индекс.

непустое_1, непустое_2 – имена одного или нескольких полей, в которых запрещаются значения Null.

ссылка_1, ссылка_2 – имена одного или нескольких полей, включенных во внешний ключ, которые содержат ссылки на поля в другой таблице.

внешняяТаблица – имя внешней таблицы, которая содержит поля, указанные с помощью аргумента внешнееПоле.

внешнееПоле_1, внешнееПоле_2 – имена одного или нескольких полей во внешнейТаблице, на которые ссылаются поля, указанные с помощью аргумента ссылка_1, ссылка_2. Это предложение можно опустить, если данное поле является ключом внешнейТаблицы.

Предложение CONSTRAINT, предназначенное для создания простого индекса, располагается сразу после описания типа поля в предложении, определяющем поля в инструкции ALTER TABLE или CREATE TABLE.

Применяйте предложение CONSTRAINT, предназначенное для создания составного индекса, если требуется использовать зарезервированное слово CONSTRAINT вне предложения, описывающего поля в инструкции ALTER TABLE или CREATE TABLE.

Предложение CONSTRAINT позволяет создать для поля индекс одного из двух описанных ниже типов:

· Для создания уникального индекса используйте зарезервированное слово UNIQUE. Это означает, что в таблице не может быть двух записей, имеющих одно и то же значение в этом поле. Уникальный индекс создается для любого поля или любой группы полей. Если в таблице определен составной уникальный индекс, то комбинация значений включенных в него полей должна быть уникальной для каждой записи таблицы, хотя отдельные поля и могут иметь совпадающие значения.

· Для создания ключа таблицы, состоящего из одного или нескольких полей, используйте зарезервированные слова PRIMARY KEY. Все значения ключа таблицы должны быть уникальными и не значениями Null. Кроме того, в таблице может быть только один ключ

Нельзя использовать зарезервированные слова PRIMARY KEY при создании индекса в таблице, в которой уже определен ключ; в противном случае возникнет ошибка.

· Для создания внешнего ключа можно использовать зарезервированные слова FOREIGN KEY. Если ключ внешней таблицы состоит из нескольких полей, необходимо использовать предложение CONSTRAINT, предназначенное для создания составного индекса. При этом следует перечислить все поля, содержащие ссылки на поля во внешней таблице, а также указать имя внешней таблицы и имена полей внешней таблицы, на которые ссылаются поля, перечисленные выше, причем в том же порядке. Если последние поля являются ключом внешней таблицы, то указывать их необязательно, поскольку ядро базы данных считает, что в качестве этих полей следует использовать поля, составляющие ключ внешней таблицы.