ALTER TABLE --> <table-name> -+
+-----------------------------+
+-+-+-> ADD -+-> COLUMN col-definition ----------------+-+->
| | +-> CONSTRAINT table-constraint ----------+ |
| | +-> ( -+-> col-definition -+-> ) ---------+ |
| | +------- , <--------+ | |
| +-> ALTER COLUMN --> alter-col-definition ---------+ |
| +-> MODIFY -> ( -+-> alter-col-definition --+-> ) -+ |
| | +------------ , <----------+ | |
| +-> DROP -+-> COLUMN <column-name> ----------------+ |
| | +-> CONSTRAINT <constraint-name> --------+ |
| +-> enable-clause ---------------------------------+ |
| +-> disable-clause --------------------------------+ |
| +-> RENAME TO <new-table-name> --------------------+ |
| +-> COMMENT IS -+> '<quoted-string>' -+------------+ |
| +----- / -------------+ |
+-------------------------- <--------------------------+
col-definition =
--> <column-name> --+
+---------------+
+-> add-column-type -+---------------------------+-+-+
| +-> DEFAULT value-expr ----+ | |
| +-> column-identity ------+ | |
+---> COMPUTED BY value-expr ----------------------+ |
+----------------------------<-----------------------+
+--+-------------------++--------------------+-------+
+-> col-constraint -++-> position-clause -+ |
+----------------------------<-----------------------+
+--+------------------------+-------------------------->
+-> sql-and-dtr-clause --+
add-column-type =
--+-> data-type -----------------------------------+-->
+-> <domain-name> -------------------------------+
+-> <references-clause> -------------------------+
+-> AUTOMATIC --+-----------+--> AS value-expr --+
+-> INSERT -+
+-> UPDATE -+
column-identity =
--> IDENTITY --+--------------------------------------------------+-->
+- ( <start-with> --+----------------------+-> ) --+
+-> , <increment-by> --+
data-type =
-+-> char-data-types -----------------------------------------+-->
+-> TINYINT --------------+-----+------------+---------------+
+-> SMALLINT -------------+ +-> ( <n> ) -+ |
+-> INTEGER --------------+ |
+-> BIGINT ---------------+ |
+-> FLOAT ----------------+ |
+-> NUMBER -+----------------------------------+-------------+
| +-> ( -+-> <p> -+-+----------+-> ) + |
| +-> * ---+ +-> , <d> -+ |
+-> LIST OF BYTE VARYING --+------------+--+--------------+--+
| +-> ( <n> ) -+ +-> AS BINARY -+ |
| +-> AS TEXT ---+ |
+-> DECIMAL -++------------------------------+---------------+
+-> NUMERIC -++-> ( --> <n> +----------+-> ) + |
| +-> , <n> -+ |
+-> REAL ----------------------------------------------------+
+-> DOUBLE PRECISION ----------------------------------------+
+-> date-time-data-types ------------------------------------+
char-data-types =
-+-> CHAR -------------++------------++--------------------------------+-+->
+-> CHARACTER --------++-> ( <n> ) -++-> CHARACTER SET char-set-name -+ |
+-> CHAR VARYING -----+ |
+-> CHARACTER VARYING + |
+-> VARCHAR --+> ( <n> ) ---+--------------------------------+----------+
+-> VARCHAR2 -+ +-> CHARACTER SET char-set-name -+ |
+-> LONG VARCHAR ------------------------------------------------------+
+-> NCHAR --------------+-+------------+--------------------------------+
+-> NATIONAL CHAR ------+ +-> ( <n> ) -+ |
+-> NATIONAL CHARACTER -+ |
+-> NCHAR VARYING --------------+-+------------+------------------------+
+-> NATIONAL CHAR VARYING ------+ +-> ( <n> ) -+ |
+-> NATIONAL CHARACTER VARYING -+ |
+-> RAW -> ( <n> ) -----------------------------------------------------+
+-> LONG -+--------+----------------------------------------------------+
+-> RAW -+
date-time-data-types =
--+-> DATE -+----------+-----------------+-->
| +-> ANSI -+ |
| +-> VMS ---+ |
+-> TIME ---> frac --------------------+
+-> TIMESTAMP --> frac ----------------+
+-> INTERVAL ---> interval-qualifier --+
literal =
--+-> numeric-literal ----+--->
+-> string-literal -----+
+-> date-time-literal --+
+-> interval-literal ---+
col-constraint=
----+--------------------------------+-+
+> CONSTRAINT <constraint-name> -+ |
+---------------<--------------------+
+-> PRIMARY KEY -----------------+
+-> UNIQUE ----------------------+
+-> NOT NULL --------------------+
+-> NULL ------------------------+
+-> CHECK (predicate) -----------+
+-> references-clause -----------+
+--------------->----------------+
+---------------<----------------+
+----+----------------------------+-->
+--> constraint-attributes --+
references-clause =
--> REFERENCES <referenced-table-name> -+
+----------------------------------+
+-+-----------------------------------------+->
+-> ( -+> <referenced-column-name> +-> ) -+
+----------- , <------------+
constraint-attributes =
-+-> DEFERRABLE -------------+------------------------------+-+->
| +-> INITIALLY +-> IMMEDIATE --++ |
| +-> DEFERRED ---+ |
+-> NOT DEFERRABLE ---------+-------------------------+------+
| +-> INITIALLY IMMEDIATE --+ |
+-> INITIALLY IMMEDIATE ----+-------------------+------------+
| +-> DEFERRABLE -----+ |
| +-> NOT DEFERRABLE -+ |
+-> INITIALLY DEFERRED -----+-------------------+------------+
+-> DEFERRABLE -----+
position-clause =
-+-> AFTER --+--> COLUMN <column-name> ---->
+-> BEFORE -+
sql-and-dtr-clause =
-+-> QUERY HEADER IS -+> <quoted-string> +-------------------+->
| +------ / <--------+ |
+-> EDIT STRING IS <quoted-string> -------------------------+
| |
+-> QUERY NAME FOR -+-> DTR --------+-> IS <quoted-string> -+
| +-> DATATRIEVE -+ |
+-> DEFAULT VALUE FOR -+-> DTR --------+-> IS literal ----+
+-> DATATRIEVE -+
table-constraint =
---+-----------------------------------+----+
+-> CONSTRAINT <constraint-name> ---+ |
+------------------------------------------+
+--> table-constraint-clause --------------+
+------------------------------------------+
+---+---------------------------+------------->
+-> constraint-attributes --+
table-constraint-clause =
-+----------------------------------------------+-->
+-> PRIMARY KEY -> ( -+> <column-name> +-> ) --+
| +------- , <-----+ |
+-> UNIQUE -> ( -+> <column-name> +-> ) -------+
| +------- , <-----+ |
+-> CHECK (predicate) -------------------------+
+-> FOREIGN KEY -> ( -+> <column-name> +-> ) + |
+------- , <-----+ | |
+--------------------<---------------------+ |
+-> references-clause ---------->------------+
alter-col-definition =
-> <column-name> +----------------++-----------------------------++
+-> alt-col-type ++-> SET DEFAULT value-expr ---+|
+-> DEFAULT value-expr -------+|
+-> DROP DEFAULT value-expr --+|
+--------------------------- <------------------------------------+
+-+----------------------+---------+--------------------+--------+
++-> col-constraint -+-+ +-> position-clause -+ |
+-------- <---------+ |
+-------------------- <------------------------------------------+
+-+-+-----------------------------> ------------------+-+---------->
| +--> sql-and-dtr-clause --------------------------+ |
| +--> NO QUERY HEADER -----------------------------+ |
| +--> NO EDIT STRING ------------------------------+ |
| +--> NO QUERY NAME ----+-> FOR --+-> DTR --------++ |
| +--> NO DEFAULT VALUE -+ +-> DATATRIEVE -+ |
+------------------------- <--------------------------+
alt-col-type =
-+-> data-type -------------------+-+---------------------+-+-->
+-> <domain-name> --------------+ +-> column-identity --+ |
+-> COMPUTED BY value-expr --------------------------------+
+-> AUTOMATIC -+------------+----> AS value-expr ----------+
+-> INSERT --+
+-> UPDATE --+
enable-clause =
--> ENABLE ---+
+-------<-----+
+-+-> ALL TRIGGERS -----------------------------------------------+->
+-> TRIGGER <trigger-name> ------------------------------------++
+-+---------------+-+-> ALL CONSTRAINTS ----------------------++
+-> VALIDATE ---+ +-> CONSTRAINT <constraint-name> ---------+
+-> NOVALIDATE -+ +-> PRIMARY KEY --------------------------+
+-> UNIQUE ->( -+-> <column-name> -+-> ) -+
+------- , <-------+
disable-clause =
--> DISABLE ---+-> ALL TRIGGERS -------------------------+-->
+-> TRIGGER <trigger-name> ---------------+
+-> ALL CONSTRAINTS ----------------------+
+-> CONSTRAINT <constraint-name> ---------+
+-> PRIMARY KEY --------------------------+
+-> UNIQUE ->( -+-> <column-name> -+-> ) -+
+------- , <-------+