(Contents)

Syntax

<alias name> ::=

<identifier>

<all function> ::=

<all set function name> ( [ALL] <expression> )

<all set function name> ::=

MAX

| MIN

| SUM

| AVG

<between predicate> ::=

<expression> [NOT] BETWEEN <expression> AND <expression>

<boolean factor> ::=

[NOT] <boolean primary>

<boolean primary> ::=

<predicate>

| (<search condition>)

<boolean term> ::=

<boolean factor>

| <boolean term> AND <boolean factor>

<character> ::=

<digit>

| <letter>

| <extended letter>

| <language specific character>

| <special character>

<close statement> ::=

CLOSE <result table name>

<column attributes> ::=

[<default spec>]

[NOT NULL [<unique spec>] ]

[REFERENCES <table name> [(<column name>)]]

[<constraint definition>]

<column definition> ::=

<column name> <data type> <column attributes>

<column name> ::=

<identifier>

<column spec> ::=

<column name>

| <table name>.<column name>

| <reference name>.<column name>

<commit statement> ::=

COMMIT WORK

<comp op> ::=

< | > | <> | != | = | <= | >=

| ¬= | ¬< | ¬> for a computer with the code type EBCDIC

| ~= | ~< | ~> for a computer with the code type ASCII

<comparison predicate> ::=

<expression> <comp op> <expression>

| <expression> <comp op> <subquery>

<connect statement> ::=

CONNECT <user spec>

IDENTIFIED BY <password spec>

[SQLMODE <sqlmode spec>]

[<isolation spec>]

[TIMEOUT <unsigned integer>]

[CACHELIMIT <unsigned integer>]

[TERMCHAR SET <termchar set name>]

<constraint definition> ::=

CHECK (<search condition>)

<create schema statement> ::=

CREATE SCHEMA AUTHORIZATION <schema name>

<create table statement> ::=

CREATE TABLE <table name> (<table description element>...)

<create view statement> ::=

CREATE VIEW <table name> [(<alias name>,...)]

AS <query expression>

[WITH CHECK OPTION]

<data type> ::=

CHAR[ACTER] [(<unsigned integer>)]

| DEC[IMAL] (<unsigned integer> [,<unsigned integer>])

| NUMERIC (<unsigned integer> [,<unsigned integer>])

| SMALLINT

| INT[EGER]

| FLOAT [(<unsigned integer>)]

| REAL

| DOUBLE PRECISION

<declare cursor statement> ::=

DECLARE <result table name> CURSOR FOR <select statement>

<default spec> ::=

DEFAULT <default value>

<default value> ::=

<literal>

| NULL

| USER

<delete statement> ::=

DELETE FROM <table name>

[WHERE <search condition>]

| DELETE FROM <table name>

WHERE CURRENT OF <result table name>

<delimiter token> ::=

( | ) | , | . | + | - | * | /

| < | > | <> | != | = | <= | >=

| ¬= | ¬< | ¬> for a computer with the code type EBCDIC

| ~= | ~< | ~> for a computer with the code type ASCII

<derived column> ::=

<expression> [ [AS] <result column name>]

<digit> ::=

0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<distinct function> ::=

<set function name> ( DISTINCT <column spec> )

<distinct spec> ::=

DISTINCT

| ALL

<double quotes> ::=

"

<exists predicate> ::=

EXISTS <subquery>

<exponent> ::=

[<sign>] [ [<digit>] <digit>] <digit>

<expression> ::=

<term>

| <expression> + <term>

| <expression> - <term>

<extended letter> ::=

# | @ | $

<factor> ::=

[<sign>] <primary>

<fetch statement> ::=

FETCH <result table name> INTO <parameter spec>,...

<first character> ::=

<letter>

| <extended letter>

| <language specific character>

<fixed point literal> ::=

[<sign>] <unsigned integer>[.<unsigned integer>]

| [<sign>] <unsigned integer>.

| [<sign>] .<unsigned integer>

<floating point literal> ::=

<mantissa>E<exponent>

| <mantissa>e<exponent>

<from clause> ::=

FROM <table spec>,...

<grant statement> ::=

GRANT <table privileges> ON <table name>

TO <grantee>,... [WITH GRANT OPTION]

<grantee> ::=

PUBLIC

| <user name>

| <usergroup name>

<group clause> ::=

GROUP BY <column spec>,...

<having clause> ::=

HAVING <search condition>

<identifier> ::=

<simple identifier>

| <double quotes>.token.<special identifier>.token.<double quotes>

<identifier tail character> ::=

<letter>

| <extended letter>

| <language specific character>

| <digit>

| <underscore>

<in predicate> ::=

<expression> [NOT] IN <subquery>

| <expression> [NOT] IN (<value spec>,...)

<indicator name> ::=

<parameter name>

<insert columns and values> ::=

[(<column name>,...)] VALUES (<value spec>,...)

| [(<column name>,...)] <query expression>

<insert statement> ::=

INSERT INTO <table name> <insert columns and values>

<isolation spec> ::=

ISOLATION LEVEL <unsigned integer>

<join predicate> ::=

<expression> <comp op> <expression>

<key definition> ::=

PRIMARY KEY (<column name>,...)

<key word> ::=

<not restricted key word>

| <restricted key word>

| <reserved 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

<like expression> ::=

<expression>

| '<pattern element>...'

<like predicate> ::=

<expression> [NOT] LIKE <like expression>

[ESCAPE <expression>]

<literal> ::=

<string literal>

| <numeric literal>

<mantissa> ::=

<fixed point literal>

<match char> ::=

Every character except

%, X'1F', <underscore>, X'1E'.

<match set> ::=

<underscore>

| X'1E'

| <match char>

<match string> ::=

%

| X'1F'

<not restricted key word> ::=

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

<numeric literal> ::=

<fixed point literal>

| <floating point literal>

<open cursor statement> ::=

OPEN <result table name>

<order clause> ::=

ORDER BY <sort spec>,...

<owner> ::=

<user name>

| <usergroup name>

<parameter name> ::=

:<identifier>

<parameter spec> ::=

<parameter name>[ [INDICATOR] <indicator name>]

<password spec> ::=

<parameter name>

<pattern element> ::=

<match string>

| <match set>

<predicate> ::=

<between predicate>

| <comparison predicate>

| <exists predicate>

| <in predicate>

| <join predicate>

| <like predicate>

| <null predicate>

| <quantified predicate>

<primary> ::=

<value spec>

| <column spec>

| <set function spec>

| (<expression>)

<privilege> ::=

INSERT

| UPDATE [(<column name>,...)]

| SELECT

| DELETE

| REFERENCES [(<column name>,...)]

<quantified predicate> ::=

<expression> <comp op> <quantifier> <subquery>

<quantifier> ::=

ALL

| <some>

<query expression> ::=

<query primary>

| <query expression> UNION [ALL] <query primary>

<query primary> ::=

<query spec>

| (<query expression>)

<query spec> ::=

SELECT [<distinct spec>] <select column>,...

<table expression>

<query statement> ::=

<declare cursor statement>

<reference name> ::=

<identifier>

<referenced column> ::=

<column name>

<referenced table> ::=

<table name>

<referencing column> ::=

<column name>

<referential constraint definition> ::=

FOREIGN KEY (<referencing column>,...)

REFERENCES <referenced table> [(referenced column>,...)]

<regular token> ::=

<literal>

| <key word>

| <identifier>

| <parameter name>

<release statement> ::=

COMMIT WORK RELEASE

| ROLLBACK WORK RELEASE

<reserved key word> ::=

ACTION ADD ALL ALTER AND

ANY AS ASC AT AVG

BEGIN BETWEEN BIT BOTH BY

CASCADE CAST CATALOG CHAR CHARACTER

CHECK CLOSE COLUMN COMMIT CONNECT

CONSTRAINT COUNT CREATE CURRENT CURRENT_DATE

CURRENT_TIME CURSOR

DATE DAY DEC DECIMAL DECLARE

DEFAULT DELETE DESC DESCRIBE DISCONNECT

DISTINCT DOMAIN DOUBLE DROP

END ESCAPE EXCEPT EXECUTE EXISTS

EXTRACT

FALSE FETCH FIRST FLOAT FOR

FOREIGN FROM

GET GRANT GROUP

HAVING HOUR

IN INDICATOR INNER INSERT INT

INTEGER INTERSECT INTO IS ISOLATION

JOIN

KEY

LANGUAGE LAST LEADING LEFT LEVEL

LIKE LOCAL LOWER

MAX MIN MINUTE MONTH

NATURAL NEXT NO NOT NULL

NUMERIC

OF ON ONLY OPEN OPTION

OR ORDER OUTER

PRECISION PRIMARY PRIVILEGES PROCEDURE PUBLIC

READ REAL REFERENCES RESTRICT REVOKE

RIGHT ROLLBACK ROWS

SCHEMA SECOND SELECT SET SMALLINT

SOME SUM

TABLE TIME TIMESTAMP TO TRAILING

TRANSACTION TRANSLATE TRIM TRUE

UNION UNIQUE UNKNOWN UPDATE UPPER

USAGE USER USING

VALUE VALUES VARCHAR VARYING VIEW

WHENEVER WHERE WITH WORK WRITE

YEAR

<restricted key word> ::=

ABS ACOS ADDDATE ADDTIME ALPHA

ASCII ASIN ATAN ATAN2 AUDIT

BINARY BOOLEAN BUFFERPOOL BYTE

CEIL CEILING CHR CLUSTER COMMENT

CONCAT CONNECTED COS COSH COT

CURDATE CURTIME

DATABASE DATEDIFF DAYNAME DAYOFMONTH DAYOFWEEK

DAYOFYEAR DBYTE DECODE DEGREES DIGITS

DIRECT

EBCDIC EDITPROC ENTRY ENTRYDEF EXCLUSIVE

EXP EXPAND

FIXED FLOOR

GRAPHIC GREATEST

HEX

IDENTIFIED IFNULL IGNORE INDEX INITCAP

LCASE LEAST LENGTH LFILL LINK

LIST LN LOCALSYSDBA LOCK LOG

LOG10 LONG LPAD LTRIM

MAKEDATE MAKETIME MAPCHAR MICROSECOND MINUS

MODE MODIFY MONTHNAME

NOROUND NOW NOWAIT NUM NUMBER

OBID OBJECT OPTIMIZE

PACKED PCTFREE PI POWER PREV

RADIANS RAW REFERENCED REJECT RELEASE

RENAME REPLACE RESOURCE RFILL ROUND

ROW ROWID ROWNO ROWNUM RPAD

RTRIM

SELUPD SHARE SHOW SIGN SIN

SINH SOUNDEX SQRT STAMP STATISTICS

STDDEV SUBDATE SUBSTR SUBTIME SYNONYM

SYSDATE SYSDBA

TABLESPACE TAN TANH TIMEDIFF TIMEZONE

TOIDENTIFIER TRIGGER TRUNC TRUNCATE

UCASE UID USERGROUP

VALIDPROC VARCHAR2 VARGRAPHIC VARIANCE

WEEKOFYEAR

ZONED

<result column name> ::=

<identifier>

<result table name> ::=

<identifier>

<rollback statement> ::=

ROLLBACK WORK

<schema name> ::=

<identifier>

<search condition> ::=

<boolean term>

| <search condition> OR <boolean term>

<select column> ::=

<table columns>

| <derived column>

<select statement> ::=

<query expression>

[<order clause>]

<set function name> ::=

COUNT

| MAX

| MIN

| SUM

| AVG

<set function spec> ::=

COUNT (*)

| <distinct function>

| <all function>

<set update clause> ::=

<column name> = <expression>

<sign> ::=

+

| -

<simple identifier> ::=

<first character> [<identifier tail character>...]

<single select statement> ::=

SELECT [<distinct spec>] <select column>,...

INTO <parameter spec>,...

FROM <table spec>,...

[<where clause>]

[<having clause>]

[<lock option>]

<some> ::=

SOME

| ANY

<sort option> ::=

ASC

| DESC

<sort spec> ::=

<unsigned integer> [<sort option>]

| <column spec> [<sort option>]

<special character> ::=

Every character except <digit>, <letter>, <extended letter>,

<language specific character> and the character

for the line end in a file.

<special identifier> ::=

<special identifier character>...

<special identifier character> ::=

Any character.

<sql statement> ::=

<create schema statement>

| <create table statement>

| <create view statement>

| <grant statement>

| <insert statement>

| <update statement>

| <delete statement>

| <query statement>

| <open cursor statement>

| <fetch statement>

| <close statement>

| <single select statement>

| <connect statement>

| <commit statement>

| <rollback statement>

| <release statement>

<sqlmode spec> ::=

ADABAS

| ANSI

| DB2

| ORACLE

<string literal> ::=

''

| '<character>'...

<subquery> ::=

(<query expression>)

<table columns> ::=

*

<table description element> ::=

<column definition>

| <constraint definition>

| <key definition>

| <referential constraint definition>

| <unique definition>

<table expression> ::=

<from clause>

[<where clause>]

[<group clause>]

[<having clause>]

<table name> ::=

[<owner>.]<identifier>

<table privileges> ::=

ALL PRIVILEGES

| <privilege>,...

<table spec> ::=

<table name> [<reference name>]

<term> ::=

<factor>

| <term> * <factor>

| <term> / <factor>

<termchar set name> ::=

<identifier>

<token> ::=

<regular token>

| <delimiter token>

<underscore> ::=

_

<unique definition> ::=

UNIQUE (<column name>,...)

<unique spec> ::=

PRIMARY KEY

| UNIQUE

<unsigned integer> ::=

<digit>...

<update columns and values> ::=

SET <set update clause>,...

<update statement> ::=

UPDATE <table name>

<update columns and values>

[WHERE <search condition>]

| UPDATE <table name>

<update columns and values>

WHERE CURRENT OF <result table name>

<user name> ::=

<identifier>

<user spec> ::=

<parameter name>

| <user name>

<usergroup name> ::=

<identifier>

<value spec> ::=

<literal>

| <parameter spec>

| NULL

| USER

<where clause> ::=

WHERE <search condition>


(Contents)