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

Создание новой таблицы:

CREATE TABLE имя_таблицы(
имя_поля1 тип_поля1,

имя_поляN тип_поляN,

primary key (ключевое_поле1, …, ключевое_полеN),
foreign key (внешний_ключ) references имя_таблицы (поле таблицы, на которую ссылается внешний ключ) on delete cascade on update cascade);

Внешние ключи (foreign key) — это основной механизм для организации связей между таблицами и поддержания целостности и непротиворечивости информации в базе данных. Внешний ключ – это поле таблицы, которое может содержать только те значения, которые находятся в ключевом поле другой таблицы, на которую ссылается внешний ключ. Внешний ключ связывает две таблицы. Отношение, входящее в связь со стороны "один" (например, "Товар"), называют родительским отношением, а поля, на которые ссылается внешний ключ — родительским ключом. Родительский ключ должен быть первичным или уникальным ключом. Отношение, входящее в связь со стороны "много" (например, "Заказ"), называется дочернем отношением. Обычно такая связь означает, что каждой записи родительской таблицы соответствует ноль, одна или более записей дочерней таблицы.

Например: рассмотрим две таблицы базы данных «Склад»: Товар и Заказ.
Напомним, что ключом отношения Товар является атрибут Артикул товара. Тогда в отношении Заказ атрибут Артикул товара будет внешним ключом, ссылающимся на ключ отношения Товар. Это означает, что значения атрибута Артикул товара отношения Заказ выбираются из значений атрибута Артикул товара отношения Товар.
Значения внешнего ключа могут повторяться. Для отношения Заказ это означает, что один и тот же товар может участвовать в разных поставках. Атрибут, являющийся внешним ключом, может иметь произвольное название, необязательно совпадающее с названием первичного ключа отношения, на которое ссылается внешний ключ. Связанные поля не обязательно должны иметь одинаковые имена, однако, они должны иметь одинаковые типы данных.

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

Существуют две основные стратегии поддержания ссылочной целостности:

Рассмотрим пример создания таблицы "Товар":

CREATE TABLE tovar (
articul smallint not null,
type varchar(50) not null,
firm varchar(50) not null,
description varchar(50) not null,
primary key (articul));

type — наименование товара. Например, процессор, жесткий диск, CD-диск и т.д.
firm — фирма-производитель товара. Например, Acer, Kingston, SONY.
description – описание товара.

Работая с HeidiSQL, можно создать новую таблицу БД, вызвав контекстное меню в левой части окна и выбрав команду Create new — Table (при этом БД должна быть выбрана для работы). Далее необходимо описать структуру таблицы на вкладке Table. Слудует ввести имя таблицы, перечислить имена полей с указанием типов (кнопка Add), определить первичный ключ (команды контекстного меню Create new index, Add to index), внешний ключ (вкладка Foreign keys).

Рассмотрим более подробно процесс создания внешнего ключа для таблиц "Товар" и "Заказ". Следует указать поле данной таблицы, имя связанной таблицы, поле внешнего ключа, параметры обеспечения целостности данных (каскадное обновление и удаление данных). Все поля вкладки заполняются путем выбора значений из списков.

домой назад далее