CREATE [UNIQUE][ASC[ENDING]|[DESC[ENDING]] INDEX <IndexName> ON <TableName>(<Field1Name>[,<Field2Name> …]);
Приклад 1:
CREATE UNIQUE INDEX PostVykl ON POSADA1(PostVykl);
Результат показано на рис. 5.6.
Рис. 5.6. Результат індексації поля PostVykl таблиці POSADA1
В СКБД Access, як і у більшості сучасних СКБД, поле або сукупність полів, що визначені як первинний ключ, індексуються автоматично, при цьому, природно, цей індекс є унікальним. Різниця між індексом, що є одночасно й первинним ключем, і просто унікальним індексом, полягає в тому, що поля первинного ключа не можуть приймати значення Null, в той час як поля просто унікального індексу можуть приймати такі значення, але не більше одного разу. Не унікальний індекс можна створити командою CREATE INDEX.
Приклад 2:
CREATE INDEX NmKf ON VYKLADACH1(NomKaf);
Результат показано на рис. 5.7. Щоб отримати більш детальну інформацію, крім тієї, що видно із структури таблиці (ім’я індексу та його склад), треба при відкритій у режимі конструктора таблиці зайти на панель інструментів Вид→Індекси.
Рис. 5.7. Результат індексації поля NomKaf таблиці VYKLADACH
Приклад 3:
CREATE INDEX KafDysc ON ZAKR_DYSC(KodVykl, KodDysc);
Результат індексації показано на рис. 5.8.
Рис. 5.8. Результат індексації полів (NomKaf, KodDysc) таблиці ZAKR_DYSC
Як бачимо, таблиця ZAKR_DYSCвже має два індекси. Індекс Zakr, який складається із полів (KodVykl, KodDysc), був створений автоматично при визначенні цій сукупності полів як PRIMARY KEY при створенні таблиці (п. 5.2.1, приклад 4).
5.2.3. DROP TABLE – видалити таблицю
Синтаксис:
DROP TABLE <TableName1> [,<TableName2> [, … ]];
Приклад 1:
DROP TABLE DYSCYPL1;
5.2.4. DROP INDEX – видалити індекс
Синтаксис:
DROP INDEX <IndexName> ON <TableName>;
Приклад 1:
DROP INDEXKafDyscONZAKR_DYSC;
Інформація про індекси таблиці наведено на рис. 5.9. Як бачимо, в ній залишився один індексZakr , який був створений автоматично при встановленні первинного ключа.
Рис. 5.9. Індекси таблиці ZAKR_DYSC після видалення індексу KafDysc
5.2.5. ALTER TABLE - змінити структуру таблиці
Ця команда дозволяє робити практично все з таблицями, що являються частиною бази даних: додати поля разом з описом їх властивостей, у тому числі додати індекс –ADD, видаляти поля та індекси – DROP).
Синтаксис:
ALTER TABLE <TableName1> <Operation1>[,< Operation2> […]];
Приклад 1: додати 2 поля і складений індекс до таблиці ZAKR_DYSC
ALTER TABLE ZAKR_DYSC ADD KodPostTEXT (2), NomKafBYTE, NazvKaf TEXT (25),CONSTRAINT Idx1 UNIQUE (KodVykl, NazvDysc) );
У режимі конструктора нову структуру таблиці показано на рис. 5.10, а її індекси – на рис. 5.11.
Рис. 5.10. Структура таблиці ZAKR_DYSC
Рис. 5.11. Первинний ключ і складені індекси таблиціZAKR_DYSC
Приклад 2: видалимо індексIdx1із таблиці ZAKR_DYSC.
ALTER TABLE ZAKR_DYSC DROP CONSTRAINT Idx1;
Після виконання цього запиту структура індексів повернеться до стану, що приведений на рис. 5.8.
Приклад 3: видалимо поле NazvKafіз таблиці ZAKR_DYSC.
ALTER TABLE ZAKR_DYSCDROP NazvKaf;
Примітка. Запити 2 і 3 можна було об’єднати в один запит:
ALTER TABLE ZAKR_DYSC DROP CONSTRAINT Idx1, COLUMN NazvKaf;
Приклад 4: Надамо полю NormPost таблиці POSADA1 властивість необов’язкового значення (NULL). Для цього прийдеться спочатку вилучити його, а потім додати з новою властивістю, без якої буде неможливим виконання операції п. 5.2.6.3.
1-й запит. ALTER TABLE POSADA1 DROP COLUMN NormPost;
2-й запит. ALTER TABLE POSADA1 ADD COLUMN NormPost NUMBER NULL;