Создание реляционных таблиц. Создание реляционной базы данных означает спецификацию состава полей: указание имени, типа и длины каждого поля (если это необходимо). При этом каждая таблица должна иметь уникальное имя.
Синтаксис оператора создания новой таблицы:
CREATE TABLE таблица (поле1 тип [(размер)] [индекс1]
[, поле2 тип [(размер)] [индекс2] [,...] ] [, составной индекс [,...]])
Здесь таблица — имя создаваемой таблицы; поле1, поле2 — имена полей таблицы; тип — тип поля; размер — размер текстового поля; индекс1, индекс2 — директивы создания простых индексов; составной индекс — директива создания составного индекса.
Некоторые типы данных:
AUTOINCREMENT – Счетчик
INTEGER – Числовой
TEXT – Текстовый
CURRENCY – Денежный
DATE – Дата/время
BIT - Логический
Каждый индекс имеет уникальное в пределах данной таблицы имя. Для создания простого индекса используется следующая фраза (размещаемая за именем поля):
CONSTRAINT имя индекса {PRIMARY KEY | UNIQUE | REFERENCES внешняя таблица [(внешнее поле)]}
Директива создания составного индекса (размещаемая в любом месте после определения его элементов) имеет следующий вид:
CONSTRAINT имя {PRIMARY KEY (ключевое]. [, ключевое2 [,...]]) | UNIQUE (уникальное! [,...]]) | FOREIGN KEY (ссыл ка1[, ссылка2[,...]]) REFERENCES внешняя таблица [(внешнее поле1[, внешнее поле2[,...]])]}
Значения служебных слов:
UNIQUE — уникальный индекс (в таблице не может быть двух записей, имеющих одно и то же значение полей, входящих в него);
PRIMARYKEY — первичный ключ таблицы, который может состоять из нескольких полей (упорядочивает записи таблицы);
FOREIGN KEY — внешний ключ для связи с другими таблицами (может состоять из нескольких полей);
REFERENCES — ссылка на внешнюю таблицу.
Пример 1. Создание таблицы Производители:
CREATE TABLE Производители ([КодПроизводителя] AUTOINCREMENT, [Наименование] TEXT, CONSTRAINT Код PRIMARY KEY ([КодПроизводителя]));
Откройте таблицу Производители в режиме конструктора и просмотрите результат
Пример 2. Создание таблицы Товары:
CREATE TABLE Товары (КодТовара INTEGER PRIMARY KEY, Наименование TEXT, Производитель INTEGER, CONSTRAINT Пр FOREIGN KEY (Производитель) REFERENCES Производитель)
Откройте таблицу Товары в режиме конструктора и просмотрите результат. Затем с помощью схемы данных проверьте, что между таблицами установилась связь один-ко-многим
Изменение структуры таблиц. При необходимости можно изменить структуру таблицы:
• удалить существующие поля;
• добавить новые поля;
• создать или удалить индексы
Приэтом все указанные действия затрагивают только одно поле или один индекс:
ALTER TABLE таблица
ADD {[COLUMN] поле тип[(размер)] [CONSTRAINT индекс]
CONSTRAINT составной индекс} |
DROP {[COLUMN] поле i CONSTRAINT имя индекса}}
Опция ADD обеспечивает добавление поля таблицы, а опция DROP — удаление. Добавление опции CONSTRAINT означает подобные действия для индексов таблицы.
Пример 3. Изменение структуры таблицы:
ALTER TABLE Товары ADD COLUMN [Гарантия] TEXT (6)
Для создания нового индекса в существующей таблице можно также использовать следующую команду:
CREATE [UNIQUE] INDEX индекс ON таблица (поле[,...]) [WITH {PRIMARY|DISALLOW NULL|IGNORE NULL}]
Фраза WITH обеспечивает наложение условий на значения полей, включенных в индекс:
DISALLOW NULL — запретить пустые значения в индексированных полях новых записей;
IGNORE NULL — включать в индекс записи, имеющие пустые значения в индексированных полях
Пример 4. Создание индекса таблицы:
CREATE INDEX Н ON Товары ([Наименование]) WITH DISALLOW NULL
Откройте таблицу Товары в режиме конструктора и посмотрите, какое значение приняло свойство Индексированное поле для поля «Наименование»
Удаление таблицы. Для удаления таблицы (одновременно и структуры, и данных) используется следующая команда:
DROP TABLE имя таблицы
Для удаления только индекса таблицы (сами данные при этом не разрушаются) необходимо выполнить следующую команду:
DROP INDEX имя индекса ON имя таблицы
Пример 5. Удаление только индекса Нтаблицы:
DROP INDEX Н ON Товары
Откройте таблицу Товары в режиме конструктора и посмотрите, какое значение приняло свойство Индексированное поле для поля «Наименование»
Пример 6. Удаление всей таблицы:
DROP TABLE Товары
Ввод данных в таблицу. Формирование новой записи в таблице выполняется следующей командой:
INSERT INTO таблица [(поле1[, поле2[,...]])] VALUES (значение1[, значение2 [,...])
Здесь указываются имя таблицы, в которую добавляют запись, и состав полей, для которых вводятся значения.
Пример 7. Ввод данных в таблицу:
INSERT INTO Производитель ([Наименование]) VALUES ("LG")