Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
327.17 Кб
Скачать

Оператор alter table5

Меняет структуру таблицы после ее создания оператором CREATE TABLE. Формат

ALTER TABLE table {ADD {COLUMN field type[(size)] [NOT NULL][CONSTRAINT index] | CONSTRAINT multifieldindex} |DROP {COLUMN field I CONSTRAINT indexname} }

Оператор ALTER TABLE имеет следующие части:

Часть

Описание

table

Имя изменяемой таблицы

field

Имя добавляемого или удаляемого поля

type

Тип поля

size

Размер поля в символах (для Text и Binary полей)

index

Индекс для поля (см. оператор CONSTRAINT)

multifieldindex

Определение составного индекса, добавляемого к таблице (см. оператор CONSTRAINT)

indexname

Имя удаляемого составного индекса.

С помощью ALTER TABLE в существующей таблице можно сделать различные изменения:

  • ADD COLUMN добавляет поле в таблицу. Нужно указать имя и тип поля, а для типов Text и Binary – размер. Например, следующий оператор добавляет 25-символьное текстовое поле Notes в таблицу Employees:

ALTER TABLE Employees ADD COLUMN Notes TEXT(25)

Можно также добавить индекс для этого поля (см. CONSTRAINT). Если для поля указано NOT NULL, то в новые записи необходито будет вводит допустимые данные.

  • ADD CONSTRAINT добавляет составной индекс (см. CONSTRAINT).

  • DROP COLUMN удаляет поле. Указывается только имя поля.

  • DROP CONSTRAINT удаляет составной индекс. Указывается только имя индекса.

За один раз нельзя добавить или удалить более одного поля или индекса. Для добавления индекса можно также использовать CREATE INDEX., а для удаления – DROP. Можно указывать NOT NULL для одного поля или внутри именованного выражения для нескольких полей (?). При повторном применении к тому же полю NOT NULL вызывает ошибку выполнения.

Следующие запросы меняют таблицы в базе Northwind (если изменения нежелательны, нужно предварительно сделать копию). Запросы вводятся в SQL окне конструктора запросов, затем нужно выполнить запрос.

Ввести в таблицу Employees поле Salary типа Currency:

ALTER TABLE Employees ADD COLUMN Salary CURRENCY;

Удалить поле Salary из таблицы Employees:

ALTER TABLE Employees DROP COLUMN Salary;

Следующий пример добавляет внешний ключ к таблице Orders. Внешний ключ основан на поле EmployeeID и ссылается на поле EmployeeID таблицы Employees. В данном случае не обязательно указывать поле EmployeeID после таблицы Employees в выражении REFERENCES, т.к. EmployeeID является ее первичным ключом.

Sub AlterTableX3()

Dim dbs As Database

' Modify this line to include the path to Northwind on your computer.

Set dbs = OpenDatabase("Northwind.mdb")

' Add a foreign key to the Orders table.

dbs.Execute "ALTER TABLE Orders ADD CONSTRAINT OrdersRelationship " _ & "FOREIGN KEY (EmployeeID) REFERENCES Employees (EmployeeID);"

dbs.Close

End Sub

Следующая процедура удаляет внешний ключ из таблицы Orders:

Sub AlterTableX4()

Dim dbs As Database

' Modify this line to include the path to Northwind on your computer.

Set dbs = OpenDatabase("Northwind.mdb")

' Remove the OrdersRelationship foreign key from the Orders table.

dbs.Execute "ALTER TABLE Orders DROP CONSTRAINT OrdersRelationship;"

dbs.Close

End Sub

Изменения, проводимые следующими двумя запросами, можно увидель в окне Relationships (меню Tools). Удаление внешнего ключа из таблицы Orders:

ALTER TABLE Orders DROP CONSTRAINT EmployeesOrders;

Добавление внешнего ключа в таблицу Orders:

ALTER TABLE Orders ADD CONSTRAINT EmployeesOrders FOREIGN KEY (EmployeeID) REFERENCES Employees (EmployeeID);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]