- •Глава 2. Использование субд access
- •2.8. Обработка данных в базе
- •2.8.5. Элементы языка sql и запросы в форме sql
- •Глава 2. Использование субд access
- •2.8. Обработка данных в базе
- •Глава 2. Использование субд access
- •2.8. Обработка данных в базе
- •Глава 2. Использование субд access
- •2.8. Обработка данных в базе
- •Глава 2. Использование субд access
- •2.8. Обработка данных в базе
- •Глава 2. Использование субд access
- •2.8. Обработка данных в базе
- •Глава 2. Использование субд access
- •2.8. Обработка данных в базе
- •Глава 2. Использование субд access
- •2.8. Обработка данных в базе
- •Глава 2. Использование субд access
Глава 2. Использование субд access
Каждый индекс имеет уникальное в пределах данной таблицы имя. Для создания простого индекса используется фраза (помещается за именем поля):
CONSTRAINT имя индекса {PRIMARY KEY|UNIQUE| REFERENCES внешняя таблица [(внешнее поле)]}
Директива создания составного индекса (помешается в любом месте после определения его элементов):
CONSTRAINT имя {PRIMARY KEY (ключевое 1[, ключевое2 [, ...]]) IUNIQUE (уникальное 1[, ...]]) | FOREIGN KEY (ссылкаЦ, ссылка2[, ...]]) REFERENCES внешняя таблица [(внешнее полеЦ, внешнее поле2[, ...]])]}
Служебные слова:
UNIQUE — уникальный индекс (в таблице не может бьт двух записей, имеющих одно и то же значение полей, входящих и индекс);
PRIMARY KEY — первичный ключ таблицы (может состоять из нескольких полей; упорядочивает записи таблицы);
FOREIGN KEY — внешний ключ для связи с другими таблицами (может состоять из нескольких полей);
REFERENCES — ссылка на внешнюю таблицу.
Пример 2.1.
CREATE TABLE Студент
([Имя] TEXT,
[Фамилия] TEXT,
[Дата рождения] DATETIME,
CONSTRAINT Адр UNIQUE ([Имя]), [Фамилия], [Дата рождения]))
В результате выполнения запроса будет создана таблица СТУДЕНТ, в составе которой:
• два текстовых поля: Имя, Фамилия;
• одно поле типа дата/время — Дата рождения.
Будет создан составной индекс с именем Адр по значениям указанных полей, индекс имеет уникальное значение, в таблице не может быть двух записей с одинаковыми значениями полей, образующих индекс.
2. Изменение структуры таблиц. При необходимости можно изменить структуру таблицы:
• удалить существующие поля;
• добавить новые поля;
• создать или удалить индексы.
2.8. Обработка данных в базе
65
Все указанные действия затрагивают одновременно только одно поле или один индекс:
ALTER TABLE таблица
ADD{[COLUMN]nojie Tnn[(pa3Mep)][CONSTRAINT индекс]
CONSTRAINT составной индекс}]
DROP {[COLUMN] поле i CONSTRAINT имя индекса}}
Опция ADD обеспечивает добавление поля, опция DROP — удаление поля таблицы, добавление опции CONSTRAINT означает подобные действия для индексов таблицы.
Пример 2.2.
ALTER TABLE Студент ADD COLUMN |Группа] ТЕХТ(5)
Для создания нового индекса для существующей таблицы можно использовать также команду:
CREATE [UNIQUE] INDEX индекс
ON таблица (поле[, ...])
[WITH {PRIMARY|DISALLOW NULL|IGNORE NULL}]
Фраза WITH обеспечивает наложение условий на значения полей, включенных в индекс:
DISALLOW NULL — запретить пустые значения в индексированных полях новых записей;
IGNORE NULL — включать в индекс записи, имеющие пустые значения в индексированных полях.
Пример 2.3.
CREATE INDEX Гр ON Студент([группа]) WITH DISALLOW NULL
3. Удаление таблицы. Для удаления таблицы (одновременно и структуры, и данных) используется команда:
DROP TABLE имя таблицы
Для удаления только индекса таблицы (сами данные не разрушаются) выполняется команда:
DROP INDEX имя индекса ON имя таблицы Пример 2.4.
DROP INDEX Адр ON Студент
— удален только индекс Адр;
DROP TABLE Студент
— удалена вся таблица.
66
