The basic syntax elements defined in chapters 3 to 6 of the manual are listed in alphabetical order below.
For these syntax elements, only their name (the name to the left of the definition character "::=
") is specified in the syntax of the SQL statements.
query_expression ::=
[
query_expression { UNION [ALL | DISTINCT] | EXCEPT [DISTINCT] }]
{
select_expression | TABLE
table |
join_expression | (
query_expression ) }
aggregate ::= <{
value | NULL }
, . . . >
alphanumeric_literal ::=
{ '[
character ...]'[
separator ...'[
character ...]']... |
X'[
hex hex ]...'[
separator ...'[
hex hex ]...']... }
hex ::= 0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f|A|B|C|D|E|F
annotation ::= /*%
annotation_text %*/
statement_id ::=
unqual_name
argumente ::= see
user_defined_function
expression ::=
{
value |
[
table .] {
column |
{
column (
posno ) |
column[posno] } |
{
column (
min..max ) |
column[min..max] } } |
function |
subquery |
monadic_op expression |
expression dyadic_op expression |
case_expression |
cast_expression |
(
expression )
}
column ::=
unqual_name
posno ::=
unsigned_integer
min ::=
unsigned_integer
max ::=
unsigned_integer
monadic_op ::= { + | - }
dyadic_op ::= { * | / | + | = | || }
authorization_identifier ::=
unqual_name
letter ::= see
unqual_name
case_expression ::=
| |
| |
|
cast_expression ::= CAST ({
expression | NULL } AS
data_type )
catalog ::=
unqual_name
data_type ::=
{
[{[
dimension ] | (
dimension )}] CHAR[ACTER][(
length )] |
CHAR[ACTER] VARYING(
max ) | VARCHAR(
max ) |
[{[
dimension ] | (
dimension ) }] { NATIONAL CHAR[ACTER] | NCHAR }
[ (
cu_length [CODE_UNITS])] |
{ NATIONAL CHAR[ACTER] VARYING | NCHAR VARYING | NVARCHAR }
(
cu_max [CODE_UNITS]) |
[{[
dimension ] | (
dimension )}]
{
SMALLINT |
INT[EGER] |
NUMERIC [(
precision [,
scale ])] |DEC[IMAL][(
precision [,
scale ])] |
REAL |
DOUBLE PRECISION |
FLOAT [(
precision )] |
DATE |
TIME(3) |
TIMESTAMP(3)
}
}
unqual_base_table_name ::=
unqual_name
unqual_constraint_name ::=
unqual_name
unqual_index_name ::=
unqual_name
unqual_name ::= {
regular_name |
special_name }
regular_name ::=
letter [ {
letter |
digit | _ } ] ...
special_name ::= "
character... "
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
digit ::= 0|1|2|3|4|5|6|7|8|9
unqual_routine_name ::=
unqual_name
unqual_schema_name ::=
unqual_name
unqual_space_name ::=
unqual_name
unqual_stogroup_name ::=
unqual_name
error_name ::=
unqual_name
fixed_pt_number ::= see
numeric_literal
function ::=
{
time_function |
string_function |
numeric_function |
aggregate_function |
table_function |
crypto_function |
user_defined_function }
integer ::= see
numeric_literal
floating_pt_number ::= see
numeric_literal
hex ::= see
alphanumeric_literal
index ::= see
qualified_name
integrity_constraint_name ::= see
qualified_name
join_expression ::=
{
table_specification CROSS JOIN
table_specification |
table_specification [ INNER | { LEFT | RIGHT | FULL } [OUTER] ]
JOIN
table_specification ON
search_condition |
table_specification UNION JOIN
table_specification |
(
join_expression )
}
correlation_name ::=
unqual_name
crypto_function ::=
{ ENCRYPT (
expression ,
key ) | DECRYPT (
expression2 ,
key ,
data_type ) }
key ::=
expression
literal ::= {
alphanumeric_literal |
national_literal |
special_literal |
numeric_literal |
time_literal }
max ::=
unsigned_integer
aggregate_function ::= {
operator ([ ALL | DISTINCT ]
expression ) | COUNT(*) }
operator ::= {AVG | COUNT | MAX | MIN | SUM }
min ::=
unsigned_integer
flag ::= see
praedicate
pattern ::= see
praedicate
national_literal ::=
|
|
uc-character ::= {
character |
esc 4hex |
esc+ 6hex |
esc esc }
numeric_function ::=
{
ABS (
expression ) |
CEIL[ING] (
expression ) |
FLOOR (
expression ) |
MOD (
dividend,divisor ) |
SIGN (
expression ) |
TRUNC (
expression ) |
{ CHAR_LENGTH | CHARACTER_LENGTH }
(
expression [USING { CODE_UNITS | OCTETS }]) |
OCTET_LENGTH (
expression ) |
POSITION (
expression IN
expression [USING CODE_UNITS]) |
JULIAN_DAY_OF_DATE (
expression ) |
EXTRACT (
part FROM
expression )
}
numeric_literal ::= {
integer |
fixed_pt_number |
floating_pt_number }
integer ::= [{+|-}]
unsigned_integer [.]
fixed_pt_number ::= [{+|-}] {
unsigned_integer [.
unsigned_integer ] |
unsigned_integer . |
.
unsigned_integer }
floating_pt_number ::=
fixed_pt_number E[{+|-}]
unsigned_integer
unsigned_integer ::=
digit ...
operand ::= see
praedicate
praedicate ::=
{
row comparison_op row |
vector_column comparison_op expression |
row comparison_op { ALL | SOME | ANY }
subquery |
row [NOT] BETWEEN
row AND
row |
vector_column [NOT] BETWEEN
expression AND
expression |
expression IS [NOT] CASTABLE AS
data_type |
row [NOT] IN {
subquery | (
row ,...) } |
vector_column [NOT] IN (
expression ,
expression ,...) |
operand [NOT] LIKE
pattern [ESCAPE
character ...] |
operand [NOT] LIKE_REGEX
regular_expression [FLAG
flag ] |
expression IS [NOT] NULL |
EXISTS
subquery
}
row ::= { (
expression ,...) |
expression |
subquery }
vector_column ::= [
table .]{
column[min..max] |
column (
min..max ) }
comparison_op ::= { = | < | > | <= | >= | <> }
operand ::=
expression
pattern ::=
expression
character ::=
expression
regular_expression ::=
expression
flag ::=
expression
pragma ::= --%PRAGMA
pragma_text ,...
lineend
qualified_name ::=
{
index |
integrity_constraint_name |
routine |
schema |
space |
stogroup |
table
}
index ::= [[
catalog .]
unqual_schema_name .]
unqual_index_name
integrity_constraint_name ::= [[
catalog .]
unqual_schema_name .]
unqual_constraint_name
routine ::= [[
catalog .]
unqual_schema_name .]
unqual_routine_name
schema ::= [
catalog .]
unqual_schema_name
space ::= [
catalog .]
unqual_space_name
stogroup ::= [
catalog .]
unqual_stogroup_name
table ::=
{
[[
catalog .]
unqual_schema_name .]
unqual_base_table_name |
[[
catalog .]
unqual_schema_name .]
unqual_view_name |
correlation_name
}
regular expression ::= see
praedicate
regular_name ::= see
unqual_name
routine ::= see
qualified_name
routine_parameter ::=
unqual_name
schema ::= see
qualified_name
key ::= see
crypto_function
select_expression ::=
SELECT [ALL | DISTINCT]
select_list
FROM
table_specification ,...
[WHERE
search_condition ]
[GROUP BY
column ,...]
[HAVING
search_condition ]
select_list ::= { * | {
table .* |
expression [[AS]
column ] } }
space ::= see
qualified_name
column ::= see
expression
col_constraint ::=
{
NOT NULL |
UNIQUE |
PRIMARY KEY |
REFERENCES
table [(
column )] |
CHECK (
search_condition )
}
column_definition ::=
column {
data_type [
default ] | FOR REF(
table ) }
[[CONSTRAINT
integrity_constraint_name ]
col_constraint ] ...
[
call_dml_clause ]
default ::= DEFAULT
{
alphanumeric_literal |
national_literal |
numeric_literal |
time_literal |
CURRENT_DATE |
CURRENT_TIME(3) |
LOCALTIME(3) |
CURRENT_TIMESTAMP(3) |
LOCALTIMESTAMP(3) |
USER |
CURRENT_USER |
SYSTEM_USER |
NULL |
REF(
tabelle )
}
call_dml_clause ::= CALL DML
call_dml_default [
call_dml_symb_name ]
special_literal ::=
{
CURRENT_CATALOG |
CURRENT_ISOLATION_LEVEL |
CURRENT_REFERENCED_CATALOG |
CURRENT_SCHEMA |
[CURRENT_]USER |
SYSTEM_USER
}
special_name ::= see
unqual_name
stogroup ::= see
qualified_name
search_condition ::=
{
praedicate |
search_condition { AND | OR }
search_condition | NOT
search_condition
|(
search_condition
) }
table ::= see
qualified_name
table_specification ::=
{
table [[AS]
correlation_name [(
column , ...)]] |
subquery [AS]
correlation_name [(
column , ...)] |
TABLE([
catalog .]
table_function ) [WITH ORDINALITY]
[[AS]
correlation_name [(
column , ...)]] |
join_expression
}
table_constraint ::=
{
UNIQUE (
column ,...) |
PRIMARY KEY (
column ,...) |
FOREIGN KEY (
column ,...) REFERENCES
table [(
column ,...)] |
CHECK (
search_condition )
}
table_function ::=
{ CSV ([FILE]
file DELIMITER
delimiter [QUOTE
quote ]
[ESCAPE
escape ],
data_type ,...) |
DEE [()] }
subquery ::= (
query_expression )
user_defined_function ::=
unqual_routine_name argumente
arguments ::= ([
expression [{,
expression }...]])
vector_column ::= see
praedicate
comparison_op ::= see
praedicate
default ::= see
column_definition
unsigned_integer ::= see
numeric_literal
value ::=
{
literal |
:
host_variable [[INDICATOR] :
indicator_variable ] |
routine_parameter |
local_variable |
?
}
character ::= see
praedicate
string_function ::=
| |
| |
|
character ::=
expression
length ::=
unsigned_integer
time_function ::=
{
CURRENT_DATE | CURRENT_TIME(3) | LOCALTIME(3) | CURRENT_TIMESTAMP(3) | LOCALTIMESTAMP(3) |DATE_OF_JULIAN_DAY (
expression)
}
time_literal ::=
{
DATE '
year-month-day ' |
TIME '
hour:minute:second '
TIMESTAMP'
jahr-monat-tag hour:minute:second '
}
row ::= see
praedicate
digit ::= see
unqual_name