- •Выборка данных
- •Оператор select
- •Выражения sql
- •Выражение from
- •Операции left join, right join
- •Операция inner join
- •Выражение in
- •Предикаты all, distinct, distinctrow, top
- •Объявление with owneraccess option
- •Выражение where
- •Операция Like
- •Операция In
- •Операция Between...And
- •Подзапрос
- •Выражение order by
- •Выражение group by
- •Выражение having
- •Оператор union
- •Оператор transform
- •Выражение procedure
- •Объявление parameters
- •Изменение данных
- •Оператор update
- •Оператор insert into
- •Оператор delete
- •Изменение структуры
- •Оператор select...Into
- •Оператор create table3
- •Выражение constraint4
- •Оператор alter table5
- •Оператор create index6
- •Оператор drop7
- •Агрегатные функции
- •Функция Count
- •Функция Avg
- •Функция Sum
- •Функции Var и VarP
- •Функции StDev и StDevP
- •Функции Min, Max
- •Функции First, Last
Оператор 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);
