ALTER 구문을 이용하여 테이블의 구조를 변경할 수 있다. 대상 테이블에 컬럼 추가/삭제, 인덱스 생성/삭제, 기존 컬럼의 타입 변경, 테이블 이름 변경, 컬럼 이름 변경 등을 수행하거나 테이블 제약 조건을 변경한다. TABLE은 CLASS와 동의어이고, VIEW는 VCLASS와 동의어이다. COLUMN은 ATTRIBUTE와 동의어이다.
ALTER [ <class_type> ] <table_name> <alter_clause> ;
<class_type> ::= TABLE | CLASS | VCLASS | VIEW
<alter_clause> ::= ADD <alter_add> [ INHERIT <resolution_comma_list> ] |
ADD { KEY | INDEX } [index_name] (<index_col_name>) |
ALTER [ COLUMN ] column_name SET DEFAULT <value_specifiation> |
DROP <alter_drop> [ INHERIT <resolution_comma_list> ] |
DROP { KEY | INDEX } index_name |
DROP FOREIGN KEY constraint_name |
DROP PRIMARY KEY |
RENAME <alter_rename> [ INHERIT <resolution_comma_list> ] |
CHANGE <alter_change> |
INHERIT <resolution_comma_list>
<alter_add> ::= [ ATTRIBUTE | COLUMN ] [(]<class_element_comma_list>[)] [ FIRST | AFTER old_column_name ] |
CLASS ATTRIBUTE <column_definition_comma_list> |
CONSTRAINT < constraint_name > <column_constraint> ( column_name )|
FILE <file_name_comma_list> |
METHOD <method_definition_comma_list> |
QUERY <select_statement> |
SUPERCLASS <class_name_comma_list>
<alter_change> ::= FILE <file_path_name> AS <file_path_name> |
METHOD <method_definition_comma_list> |
QUERY [ <unsigned_integer_literal> ] <select_statement> |
<column_name> DEFAULT <value_specifiation>
<alter_drop> ::= [ ATTRIBUTE | COLUMN | METHOD ]
<column_name_comma_list> |
FILE <file_name_comma_list> |
QUERY [ <unsigned_integer_literal> ] |
SUPERCLASS <class_name_comma_list> |
CONSTRAINT <constraint_name>
<alter_rename> ::= [ ATTRIBUTE | COLUMN | METHOD ]
<old_column_name> AS <new_column_name> |
FUNCTION OF <column_name> AS <function_name>
FILE <file_path_name> AS <file_path_name>
<resolution> ::= { column_name | method_name } OF <superclass_name>
[ AS alias ]
<class_element> ::= <column_definition> | <table_constraint>
<column_constraint> ::= UNIQUE [ KEY ] | PRIMARY KEY | FOREIGN KEY
<index_col_name> ::=
column_name [(length)] [ ASC | DESC ]
테이블의 소유자, DBA, DBA의 멤버만이 테이블 스키마를 변경할 수 있으며, 그 밖의 사용자는 소유자나 DBA로부터 이름을 변경할 수 있는 권한을 받아야 한다(권한 관련 사항은 권한 부여 참조).