Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 8.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
384.51 Кб
Скачать

2.2. Изменение состава полей таблицы

Изменение состава полей таблицы заключается в добавлении или удалении по­лей и приводит к изменению ее структуры, при этом таблицу не должны ис­пользовать другие приложения. Изменение состава полей таблицы выполняется оператором alter table:

ALTER TABLE <имя таблицы>

ADD <имя поля> <тип данных >,

DROP <имя поля>,

. . .

ADD <имя поля> <тип данных >,

DROP <имя поля>;

Операнд add добавляет к таблице новое поле, имя и тип которого задаются так же, как и в операторе create table, а операнд drop удаляет из таблицы поле с заданным именем. Операнды add и drop не зависят друг от друга и могут сле­довать в произвольном порядке.

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

Пример изменения структуры таблицы:

ALTER TABLE Personnel.db

ADD Section SMALLINT,

ADD Note CHAR (30),

DROP Position;

К таблице Personnel добавляются целочисленное поле номера отдела section и символьное поле примечаний Note, поле Position удаляется.

2.3. Создание и удаление индекса

Напомним, что индекс обеспечивает быстрый доступ к данным, хранимым в поле, для которого он создан. Для ускорения операций с таблицей индексными следует делать поля, по которым часто производится поиск и отбор записей. Индекс создается оператором create index следующего формата:

CREATE INDEX

<Имя индекса> ON <Имя таблицы> (<Имя поля >, ..., [<Имя поля >]);

Одним оператором можно создать один индекс, при этом одно поле может вхо­дить в состав нескольких индексов. Кроме того, не требуется, чтобы значения составляющих индекс полей были уникальными. При сортировке по индексу записи упорядочиваются в порядке возрастания значений индексных полей.

С помощью оператора create index для таблиц dBase создаются индексы, а для таблиц Paradox — вторичные индексы. Напомним, что первичным индексом таблиц Paradox является ключ, описываемый непосредственно при создании таблицы. Использование оператора create index является единственным спо­собом определения индекса для таблиц dBase.

Так можно создать индекс по одному полю:

CREATE INDEX

IndName on Personnel.Db (Name)

А так по двум:

CREATE INDEX

IndNamePosition on Personnel.Db (Name, Position)

Для удаления индекса используется оператор drop index формата

DROP INDEX

<Имя таблицы>.<Имя индекса >

или

DROP INDEX

<Имя таблицы >.PRIMARY

Во время удаления индекса таблица не должна использоваться другими прило­жениями. При выполнении оператора drop index можно удалить один индекс, обозначив его составным именем, состоящим из имени таблицы и собственно имени индекса. Если удаляется первичный индекс (ключ) таблицы Paradox, то вместо имени индекса указывается описатель primary, поскольку главный ключ не имеет имени.

Например, в операторе

DROP INDEX

"Personnel.db".indNamePosition

ИЗ таблицы Personnel удаляется индекс indNamePost, созданный по полям Name И Position.

Первичный ключ удаляется так:

DROP INDEX

"Personnel.db".PRIMARY

Если удаляемый индекс отсутствует или таблица используется другим приложе­нием, то генерируется исключительная ситуация.