Змінити структуру таблиці можна доповнивши або видаливши поля таблиці чи їх опис (назву, тип, значення за змовчанням, первинні ключі та ін.)
Для доповнення в таблицю нових стовпчиків використовується команда ALTER TABLE. Синтаксис команди такий:
ALTER TABLE <ім`я таблиці> ADD <ім`я стовпчика> <тип даних> (<розмір>)
По цій команді до існуючих в таблиці рядків добавляється стовпчик, в який заноситься NULL-значення. Можна добавити кілька стовпчиків.
Наприклад:
ALTER TABLE customer ADD FIO VARCHAR(25)
У FoxPro синтаксис команди більш розширений
ALTER TABLE <ім`я таблиці>
ADD | ALTER [COLUMN] <ім`я поля> <тип даних> ([<розмір>])
[NULL | NOT NULL]
[CHECK <умова> [ERROR <текст>]]
[DEFAULT <вираз>]
[PRIMARY KEY | UNIQUE]
[REFERENCES <ім`я таблиці2> [TAG <ім`я тегу> ]]
[NOCPTRANS]
Крім обов'язкової частини, в якій задається ім'я стовпчика і його тип даних, визначення стовпчика може містити такі необов`язкові розділи:
DEFAULT - розділ значення стовпчика за змовчанням (<Вираз>);
NULL - дає можливість приймати значення типу NULL;
NOT NULL - наявність невизначених значень заборонено.
CHECK - дозволяє вказати можливі значення для введення даних у стовпчик.
NOCPTRANS - використовується при переносі значень символьних та memo полів з різних кодових сторінок (code page).
Вилучення стовпчика з таблиці виконується за допомогою команди:
ALTER TABLE <ім`я таблиці> DROP <ім`я стовпчика> [,<ім`я стовпчика>...]
Наприклад:
ALTER TABLE customer DROP FIO
Можна видалити стовпчики чи змінити їх опис.
У FoxPro синтаксис команди більш розширений
ALTER TABLE <ім`я таблиці>
[DROP [COLUMN] <ім`я поля> ]
[SET CHECK <вираз> [ERROR <текст>]]
[DROP CHECK]
[ADD PRIMARY KEY <вираз> 3 TAG <ім`я тегу>]
[DROP PRIMARY KEY]
[ADD UNIQUE <вираз> [TAG <ім`я тегу>]]
[DROP UNIQUE TAG TagName4]
[ADD FOREIGN KEY [<вираз>] TAG <ім`я тегу>
REFERENCES TableName2 [TAG <ім`я тегу>]]
[DROP FOREIGN KEY TAG <ім`я тегу> [SAVE]]
[RENAME COLUMN <ім`я поля> TO <ім`я поля>]
[NOVALIDATE]
Або
ALTER TABLE <ім`я таблиці>
ALTER [COLUMN] <ім`я поля>
[NULL | NOT NULL]
[SET DEFAULT <вираз>]]
[SET CHECK l<вираз>] [ERROR <текст>]]
[DROP DEFAULT]
[DROP CHECK]
SET CHECK <вираз>- визначає нове правило для існуючого поля. <вираз>- може бути або вираз логічного типу або визначена користувачем функція.
DROP DEFAULT - знищує визначене за змовчанням значення поля.
DROP CHECK - знищує визначене за змовчанням правило для існуючого поля.
DROP [COLUMN] <ім`я поля> - знищує поле з таблиці.