
<add definition> ::=
ADD <column definition>,...
| ADD (<column definition>,...)
<alias name> ::=
<all function> ::=
<set function name> ( [ALL] <expression> )
ALTER TABLE <table name> <add definition>
| ALTER TABLE <table name> <modify definition>
| <arithmetic expression> + <term>
| <arithmetic expression> - <term>
| <datetime expression> - <datetime expression>
TRUNC ( <expression>[, <expression>] )
| ROUND ( <expression>[, <expression>] )
| CEIL ( <expression> )
| FLOOR ( <expression> )
| SIGN ( <expression> )
| ABS ( <expression> )
| POWER ( <expression>, <expression> )
| EXP ( <expression> )
| SQRT ( <expression> )
| LN ( <expression> )
| LOG ( <expression>, <expression> )
| MOD ( <expression>, <expression> )
| LENGTH ( <expression> )
| VSIZE ( <expression> )
| INSTR ( <string spec>, <string spec>
[,<expression>[, <expression>] ] )
| ASCII ( <expression> )
<expression> [NOT] BETWEEN <expression> AND <expression>
<boolean factor> ::=
[NOT] <boolean primary>
<boolean term> ::=
| <boolean term> AND <boolean factor>
<cache spec> ::=
CACHE
| NOCACHE
<character> ::=
| <letter>
| <language specific character>
CLOSE <result table name>
[ NULL [CONSTRAINT <constraint name>] ]
[ NOT NULL [CONSTRAINT <constraint name>] ]
[ UNIQUE [CONSTRAINT <constraint name>] ]
[ PRIMARY KEY [CONSTRAINT <constraint name>] ]
[ REFERENCES <table name> [(<column name>)] ]
<column comment> ::=
<column name> IS <string literal>
<column name> <data type> <column attributes>
<column name> ::=
<column spec> ::=
| <reference name>.<column name>
| <result table name>.<column name>
COMMENT ON TABLE <table name> IS <string literal>
| COMMENT ON COLUMN
<table name>.<column name> IS <string literal>
| COMMENT ON <table name> ( <column comment>,... )
COMMIT [WORK]
<comp op> ::=
< | > | <> | != | = | <= | >=
| ¬= | ¬< | ¬> for a computer with the code type EBCDIC
| ~= | ~< | ~> for a computer with the code type ASCII
<expression> <comp op> <expression>
| <expression> <comp op> <subquery>
| <expression list> <equal or not> (<expression list>)
| <expression list> <equal or not> <subquery>
CONNECT <user spec>
IDENTIFIED BY <password spec>
[SQLMODE <sqlmode spec>]
[TIMEOUT <unsigned integer>]
[CACHELIMIT <unsigned integer>]
[TERMCHAR SET <termchar set name>]
[CONSTRAINT <constraint name>] CHECK (<search condition>)
TO_NUMBER ( <string spec>[, <number format> ] )
| CHR ( <expression> )
| RAWTOHEX ( <expression> )
| HEXTORAW ( <expression> )
| TO_CHAR ( <expression>[, <date or number format> ] )
| TO_DATE ( <expression>[, <date format> ] )
CREATE [UNIQUE] INDEX <index spec>
<create sequence statement> ::=
CREATE SEQUENCE [<owner>.]<sequence name>
[INCREMENT BY <integer>]
[START WITH <integer>]
[<minvalue spec]
[<cycle spec]
<create snapshot log statement> ::=
CREATE SNAPSHOT LOG ON <table name> [<oracle option>]
<create snapshot statement> ::=
CREATE SNAPSHOT <table name>
[<oracle snapshot options>] [<refresh spec>]
<create synonym statement> ::=
CREATE SYNONYM [<owner>.]<synonym name> FOR <table name>
CREATE TABLE <table name> [(<table description element>,...)]
[<oracle option> ...] [AS <query expression>]
CREATE USER <user name> IDENTIFIED BY <password>
[<oracle user option> ...]
CREATE [OR REPLACE] VIEW <table name> [(<alias name>,...)]
[WITH CHECK OPTION]
[CONSTRAINT <constraint name>]
<cycle spec> ::=
CYCLE
| NOCYCLE
<data type> ::=
CHAR [(<unsigned integer>)]
| VARCHAR [(<unsigned integer>)]
| LONG [RAW]
| NUMBER [(<unsigned integer> [,<unsigned integer>])]
| NUMBER [(* [,<unsigned integer>])]
| DATE
| RAW [(<unsigned integer>)]
<date and time expression> ::=
ADD_MONTHS ( <date and time expression> , <expression> )
| MONTHS_BETWEEN ( <date and time expression> ,
| LAST_DAY ( <date and time expression> )
| NEXT_DAY ( <date and time expression>, <string spec> )
| NEW_TIME ( <date and time expression>,
| ROUND ( <date and time expression>
[, <trunc and round format> ] )
| TRUNC ( <date and time expression>
[, <trunc and round format> ] )
<date format> ::=
see <conversion function> in chapter 3, Common Elements
| <datetime expression> + <factor>
| <datetime expression> - <factor>
| <factor> + <datetime expression>
<declare cursor statement> ::=
DECLARE <result table name> CURSOR FOR <select statement>
<default spec> ::=
DEFAULT <expression>
DELETE FROM <table name> [<reference name>]
[WHERE <search condition>]
| DELETE FROM <table name> [<reference name>]
WHERE CURRENT OF <result table name>
( | ) | , | . | + | - | * | /
| < | > | <> | != | = | <= | >=
| ¬= | ¬< | ¬> for a computer with the code type EBCDIC
| ~= | ~< | ~> for a computer with the code type ASCII
<derived column> ::=
<expression> [<result column name>]
<digit> ::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<set function name> ( DISTINCT <expression> )
<distinct spec> ::=
DISTINCT
| ALL
<double quotes> ::=
"
DROP INDEX <index name> [ON <table name>]
DROP SEQUENCE [<owner>.]<sequence name>
DROP SNAPSHOT <table name>
<drop snapshot log statement> ::=
DROP SNAPSHOT LOG ON <table name>
DROP SYNONYM [<owner>.]<synonym name>
DROP TABLE <table name> [CASCADE CONSTRAINTS]
DROP USER <user name> [<cascade option>]
DROP VIEW <table name>
<equal or not> ::=
=
| <>
| ¬= for a computer with the code type EBCDIC
| ~= for a computer with the code type ASCII
EXISTS <subquery>
<exponent> ::=
[<sign>] [ [<digit>] <digit>] <digit>
<expression> ::=
(<expression>,...)
# | @ | $
<factor> ::=
FETCH <result table name> INTO <parameter spec>,...
| <language specific character>
<first password character> ::=
| <language specific character>
| <digit>
[<sign>] <unsigned integer>[.<unsigned integer>]
| [<sign>] <unsigned integer>.
| [<sign>] .<unsigned integer>
<from clause> ::=
FROM <table spec>,...
<function spec> ::=
GRANT <table privileges> ON <table name>
TO <grantee>,... [WITH GRANT OPTION]
<grantee> ::=
PUBLIC
<group clause> ::=
GROUP BY <expression>,...
<having clause> ::=
HAVING <search condition>
<hex digit> ::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
| A | B | C | D | E | F
| a | b | c | d | e | f
<hex digit seq> ::=
| <hex digit seq> <hex digit> <hex digit>
<hex literal> ::=
x''
| X''
| x'<hex digit seq>'
| X'<hex digit seq>'
| '<hex digit seq>'
<identifier> ::=
| <double quotes>.token.<special identifier>.token.<double quotes>
<identifier tail character> ::=
| <language specific character>
| <digit>
<in predicate> ::=
<expression> [NOT] IN <subquery>
| <expression> [NOT] IN (<expression>,...)
| <expression list> [NOT] IN <subquery>
| <expression list> [NOT] IN (<expression list>,...)
<index clause> ::=
<index name> ::=
<index spec> ::=
<index name> ON <table name> ( <index clause>,... )
<indicator name> ::=
<insert columns and values> ::=
[(<column name>,...)] VALUES (<expression>,...)
| [(<column name>,...)] <query expression>
INSERT INTO <table name> <insert columns and values>
<isolation spec> ::=
ISOLATION LEVEL <unsigned integer>
<join predicate> ::=
<expression> [<outer join indicator>] <comp op> <expression>
| <expression> <comp op> <expression> [<outer join indicator>]
<key definition> ::=
[CONSTRAINT <constraint name>] PRIMARY KEY (<column name>,...)
[USING INDEX <oracle option>
<key word> ::=
<language specific character> ::=
Every letter that occurs in a North, Central or South
European language, but is not contained in <letter>
(e.g. the German umlauts, French grave accent, etc.).
<letter> ::=
A | B | C | D | E | F | G | H | I | J | K | L | M
| N | O | P | Q | R | S | T | U | V | W | X | Y | Z
| a | b | c | d | e | f | g | h | i | j | k | l | m
| n | o | p | q | r | s | t | u | v | w | x | y | z
| '<pattern element>...'
<like predicate> ::=
<expression> [NOT] LIKE <like expression>
[ESCAPE <expression>]
<literal> ::=
<lock spec> ::=
SHARE
| ROW SHARE
| SHARE UPDATE
| EXCLUSIVE
| ROW EXCLUSIVE
| SHARE ROW EXCLUSIVE
<lock statement> ::=
LOCK TABLE <table name>,... IN <lock spec> MODE [NOWAIT]
<mantissa> ::=
<match char> ::=
Every character except
%, X'1F', <underscore>, X'1E'.
<match set> ::=
| X'1E'
<match string> ::=
%
| X'1F'
<maxvalue spec> ::=
MAXVALUE <integer>
| NOMAXVALUE
<minvalue spec> ::=
MINVALUE <integer>
| NOMINVALUE
MODIFY (<column name> <data type>)
ACCOUNTING ACTIVATE ADABAS ADD_MONTHS AFTER
ANALYZE ANSI
BAD BEGINLOAD BLOCKSIZE BUFFER
CACHELIMIT CACHES CANCEL CLEAR COLD
COMPLETE CONFIG CONSOLE CONSTRAINTS COPY
COSTLIMIT COSTWARNING CURRVAL
DATA DAYS DB2 DBA DBFUNCTION
DBPROC DBPROCEDURE DEGREE DESTPOS DEVICE
DEVSPACE DIAGNOSE DISABLE DIV DOMAINDEF
DSETPASS DUPLICATES DYNAMIC
ENDLOAD ENDPOS EUR EXPLAIN EXPLICIT
FIRSTPOS FNULL FORCE FORMAT FREAD
FREEPAGE FWRITE
GATEWAY GRANTED
HEXTORAW HOLD HOURS
IMPLICIT INDEXNAME INIT INITRANS INSTR
INTERNAL ISO
JIS
KEEP
LABEL LASTPOS LAST_DAY LOAD
MAXTRANS MDECLARE MDELETE MFETCH MICROSECONDS
MINSERT MINUTES MLOCK MOD MONITOR
MONTHS MONTHS_BETWEEN MSELECT MUPDATE
NEW_TIME NEXTVAL NEXT_DAY NOLOG NORMAL
NOSORT NVL
OFF OPTIMISTIC ORACLE OUT OVERWRITE
PAGES PARAM PARSE PARSEID PARTICIPANTS
PASSWORD PATTERN PCTUSED PERMLIMIT POS
PRIV PROC PSM
QUICK
RANGE RAWTOHEX RECONNECT REFRESH REPLICATION
REST RESTART RESTORE REUSE RFETCH
SAME SAPR3 SAVE SAVEPOINT SEARCH
SECONDS SEGMENT SELECTIVITY SEQUENCE SERVERDB
SHUTDOWN SNAPSHOT SOUNDS SOURCEPOS SQLID
SQLMODE STANDARD STARTPOS STAT STATE
STORAGE STORE SUBPAGES SUBTRANS
TABID TABLEDEF TEMP TEMPLIMIT TERMCHAR
TIMEOUT TO_CHAR TO_DATE TO_NUMBER TRANSFILE
TRIGGERDEF
UNLOAD UNLOCK UNTIL USA USERID
VERIFY VERSION VSIZE VTRACE
WAIT
YEARS
<null predicate> ::=
<expression> IS [NOT] NULL
<number format> ::=
see <conversion function> in chapter 3, Common Elements
OPEN <result table name>
<create tablespace statement>
| <create rollback segment statement>
| <create public rollback segment statement>
<oracle option> ::=
PCTFREE <unsigned integer>
| PCTUSED <unsigned integer>
| INITTRANS <unsigned integer>
| MAXTRANS <unsigned integer>
| TABLESPACE <identifier>
| STORAGE <storage clause>
| CLUSTER <identifier> (<column name>,...)
DEFAULT TABLESPACE <tablespace>
| TEMPORARY TABLESPACE <tablespace>
| QUOTA <unsigned integer [ K | M ] ON <tablespace>
| QUOTA UNLIMITED
| PROFILE <identifier>
<order clause> [<update clause>]
| <update clause> [<order clause>]
<order clause> ::=
ORDER BY <sort spec>,...
ORDER
| NOORDER
<order spec> ::=
ASC
| DESC
<outer join indicator> ::=
(+)
<owner> ::=
<parameter name> ::=
<parameter spec> ::=
<parameter name> [<indicator name>]
<password> ::=
| <first password character> [<identifier tail character>...]
<password spec> ::=
<predicate> ::=
<primary> ::=
<privilege> ::=
INSERT
| UPDATE [(<column name>,...)]
| SELECT
| DELETE
| INDEX
| ALTER
| REFERENCES [(<column name>,...)]
<expression> <comp op> <quantifier> (<expression>,...)
| <expression> <comp op> <quantifier> <subquery>
| <expression list> <equal or not>
<quantifier> (<expression list>,...)
| <expression list> <equal or not> <quantifier> <subquery>
<quantifier> ::=
ALL
| <some>
| <query expression> UNION <query primary>
| <query expression> INTERSECT <query primary>
| <query expression> MINUS <query primary>
<query primary> ::=
<query spec> ::=
SELECT [<distinct spec>] <select column>,...
<reference name> ::=
<referential constraint definition> ::=
[CONSTRAINT <constraint name>]
FOREIGN KEY (<referencing column>,...)
REFERENCES <referenced table> [(<referenced column>,...)]
[ON DELETE CASCADE]
<referential constraint name> ::=
<refresh kind> ::=
FAST
| COMPLETE
| FORCE
<refresh spec> ::=
REFRESH [<refresh kind>]
[START WITH <date and time expression>]
[NEXT <date and time expression>]
<regular token> ::=
COMMIT [WORK] RELEASE
| ROLLBACK [WORK] RELEASE
ADD ALL ALTER AND ANY
AS ASC AUDIT
BETWEEN BY
CHAR CHECK CLUSTER COLUMN COMMENT
CONNECT CREATE CURRENT
DATE DECIMAL DEFAULT DELETE DESC
DISTINCT DROP
EXCLUSIVE EXISTS
FLOAT FOR FROM
GRANT GROUP
HAVING
IDENTIFIED IN INDEX INSERT INTEGER
INTERSECT INTO IS
LEVEL LIKE LOCK LONG
MINUS MODE MODIFY
NOT NOWAIT NULL NUMBER
OF ON OPTION OR ORDER
PCTFREE PRIVILEGES PUBLIC
RAW RENAME RESOURCE REVOKE ROW
ROWID ROWNUM ROWS
SELECT SET SHARE SMALLINT SYNONYM
SYSDATE
TABLE TO TRIGGER
UID UNION UNIQUE UPDATE USER
VALUES VARCHAR VARCHAR2 VIEW
WHENEVER WHERE WITH
ABS ACOS ACTION ADDDATE ADDTIME
ALPHA ASCII ASIN AT ATAN
ATAN2 AVG
BEGIN BINARY BIT BOOLEAN BOTH
BUFFERPOOL BYTE
CASCADE CAST CATALOG CEIL CEILING
CHARACTER CHR CLOSE COMMIT CONCAT
CONNECTED CONSTRAINT COS COSH COT
COUNT CURDATE CURRENT_DATE CURRENT_TIME CURSOR
CURTIME
DATABASE DATEDIFF DAY DAYNAME DAYOFMONTH
DAYOFWEEK DAYOFYEAR DBYTE DEC DECLARE
DECODE DEGREES DESCRIBE DIGITS DIRECT
DISCONNECT DOMAIN DOUBLE
EBCDIC EDITPROC END ENTRY ENTRYDEF
ESCAPE EXCEPT EXECUTE EXP EXPAND
EXTRACT
FALSE FETCH FIRST FIXED FLOOR
FOREIGN
GET GRAPHIC GREATEST
HEX HOUR
IFNULL IGNORE INDICATOR INITCAP INNER
INT ISOLATION
JOIN
KEY
LANGUAGE LAST LCASE LEADING LEAST
LEFT LENGTH LFILL LINK LIST
LN LOCAL LOCALSYSDBA LOG LOG10
LOWER LPAD LTRIM
MAKEDATE MAKETIME MAPCHAR MAX MICROSECOND
MIN MINUTE MONTH MONTHNAME
NATURAL NEXT NO NOROUND NOW
NUM NUMERIC
OBID OBJECT ONLY OPEN OPTIMIZE
OUTER
PACKED PI POWER PRECISION PREV
PRIMARY PROCEDURE
RADIANS READ REAL REFERENCED REFERENCES
REJECT RELEASE REPLACE RESTRICT RFILL
RIGHT ROLLBACK ROUND ROWNO RPAD
RTRIM
SCHEMA SECOND SELUPD SHOW SIGN
SIN SINH SOME SOUNDEX SQRT
STAMP STATISTICS STDDEV SUBDATE SUBSTR
SUBTIME SUM SYSDBA
TABLESPACE TAN TANH TIME TIMEDIFF
TIMESTAMP TIMEZONE TOIDENTIFIER TRAILING TRANSACTION
TRANSLATE TRIM TRUE TRUNC TRUNCATE
UCASE UNKNOWN UPPER USAGE USERGROUP
USING
VALIDPROC VALUE VARGRAPHIC VARIANCE VARYING
WEEKOFYEAR WORK WRITE
YEAR
ZONED
REVOKE <table privileges> ON <table name> FROM <grantee>,...
ROLLBACK [WORK]
ROLLBACK TO [SAVEPOINT] <savepoint name>
<rownum column> ::=
ROWNUM [<result column name>]
ROWNUM < <rownum spec>
| ROWNUM <= <rownum spec>
<rownum spec> ::=
<savepoint name> ::=
SAVEPOINT <savepoint name>
<search expression>, <result expression>
| <search condition> OR <boolean term>
<select column> ::=
<sequence name> ::=
COUNT
| MAX
| MIN
| SUM
| AVG
| STDDEV
| VARIANCE
COUNT (*)
| <column name>,... = (<expression>,...)
<sign> ::=
+
| -
<first character> [<identifier tail character>...]
SELECT [<distinct spec>] <select column>,...
INTO <parameter spec>,...
FROM <table spec>,...
[<lock option>]
<some> ::=
SOME
| ANY
<sort option> ::=
ASC
| DESC
<sort spec> ::=
<unsigned integer> [<sort option>]
| <expression> [<sort option>]
Every character except <digit>, <letter>, <extended letter>,
<hex digit> <character>, <language specific character> and the character
for the line end in a file.
NVL ( <expression>, <expression> )
| GREATEST ( <expression>, <expression>,... )
| LEAST ( <expression>, <expression>,... )
| DECODE ( <check expression>,
[, <default expression> ] )
<special identifier character>...
<special identifier character> ::=
Any character.
<sql statement> ::=
| <create snapshot log statement>
| <drop snapshot log statement>
<sqlmode spec> ::=
ADABAS
| ANSI
| DB2
| ORACLE
<storage clause> ::=
([INITIAL <unsigned integer>] [NEXT <unsigned integer>]
[MINEXTENTS <unsigned integer>]
[MAXEXTENTS <unsigned integer>]
[PCTINCREASE <unsigned integer>])
DROP STORAGE
| REUSE STORAGE
<string spec> || <string spec>
| CONCAT ( <string spec>, <string spec> )
| SUBSTR ( <string spec>, <expression>[, <expression>] )
| LPAD ( <string spec>, <unsigned integer>
[, <string literal> ] )
| RPAD ( <string spec>, <unsigned integer>
[, <string literal> ] )
| LTRIM ( <string spec>[, <string spec> ] )
| RTRIM ( <string spec>[, <string spec> ] )
| UPPER ( <string spec> )
| LOWER ( <string spec> )
| INITCAP ( <string spec> )
| REPLACE ( <string spec>, <string spec>[, <string spec> ] )
| TRANSLATE ( <string spec>, <string spec>, <string spec> )
| SOUNDEX ( <string spec> )
<string literal> ::=
''
| '<character>'...
<string spec> ::=
<subquery> ::=
<synonym name> ::=
<table columns> ::=
*
| <table name>.*
| <reference name>.*
<table description element> ::=
| <referential constraint definition>
[<group clause> [<having clause>] ]
<table name> ::=
ALL [PRIVILEGES]
| <privilege>,...
<table spec> ::=
<table name> [<reference name>]
<term> ::=
<timezone spec> ::=
'AST'
| 'ADT'
| 'BST'
| 'BDT'
| 'CST'
| 'CDT'
| 'EST'
| 'EDT'
| 'GMT'
| 'HST'
| 'HDT'
| 'MST'
| 'MDT'
| 'NST'
| 'PST'
| 'PDT'
| 'YST'
| 'YDT'
<token> ::=
COS ( <expression> )
| SIN ( <expression> )
| TAN ( <expression> )
| COSH ( <expression> )
| SINH ( <expression> )
| TANH ( <expression> )
see <date and time function> in chapter 3, Common Elements
TRUNCATE <table name> [<storage reuse spec>]
<underscore> ::=
_
[CONSTRAINT <constraint name>] UNIQUE (<column name>,...)
[USING INDEX <oracle option>]
<digit>...
<update clause> ::=
FOR UPDATE OF <column name>,... [NOWAIT]
<update columns and values> ::=
SET <set update clause>,...
UPDATE <table name> [<reference name>]
[WHERE <search condition>]
| UPDATE <table name> [<reference name>]
WHERE CURRENT OF <result table name>
<user name> ::=
<user spec> ::=
Each DB function defined by any user.
<usergroup name> ::=
<value spec> ::=
| NULL
| USER
| [<owner>.]<sequence name>.NEXTVAL
| [<owner>.]<sequence name>.CURRVAL
| SYSDATE
| UID
<where clause> ::=
WHERE <search condition>
