SQL:
SQL ::= ( SELECT_COMMAND | UPDATE_COMMAND | INSERT_COMMAND ) ( EOF | SEMICOLON )*
no referencesSELECT_COMMAND:
SELECT_COMMAND
::= 'SELECT' SELECTION DISPLAYED_COLUMN ( ',' DISPLAYED_COLUMN )* 'FROM' SELECTED_TABLE ( ',' SELECTED_TABLE )* WHERE_CLAUSE GROUPBY_CLAUSE ORDERBY_CLAUSE LIMIT_CLAUSE
referenced by:
SQL
SUBQUERY
UPDATE_COMMAND:
UPDATE_COMMAND
::= 'UPDATE' TABLE_NAME SETS WHERE_CLAUSE
referenced by:
SQL
INSERT_COMMAND:
INSERT_COMMAND
::= 'INSERT' 'INTO' TABLE_NAME ( ( '(' INSERT_COLUMN ( ',' INSERT_COLUMN )* ')' VALUES | 'VALUES' ) '(' VALUE ( ',' VALUE )* ')' | SETS )
referenced by:
SQL
INSERT_COLUMN:
INSERT_COLUMN
::= 'IDENTIFIER' ( 'PERIOD' 'IDENTIFIER' )?
referenced by:
INSERT_COMMAND
SETS
WHERE_CLAUSE:
WHERE_CLAUSE
::= ( 'WHERE' EXPR )?
referenced by:
SELECT_COMMAND
UPDATE_COMMAND
EXPRESSIONS:
EXPRESSIONS
::= EXPR ( ',' EXPR )*
referenced by:
GROUPBY_CLAUSE
SORTED_DEF
VARIABLE:
VARIABLE ::= 'IDENTIFIER' ( 'PERIOD' 'IDENTIFIER' )?
referenced by:
EXPR
GROUPBY_CLAUSE:
GROUPBY_CLAUSE
::= ( 'GROUP BY' EXPRESSIONS ( 'HAVING' EXPR ( ( '=' | '!=' | '>' | '<' | '>=' | '<=' | 'LIKE' ) EXPR | 'IS' 'NOT'? NULL ) )? )?
referenced by:
SELECT_COMMAND
ORDERBY_CLAUSE:
ORDERBY_CLAUSE
::= ( 'ORDER BY' SORTED_DEF DIRECTION )?
referenced by:
SELECT_COMMAND
LIMIT_CLAUSE:
LIMIT_CLAUSE
::= ( 'LIMIT' 'NUMBER_LEX' )?
referenced by:
SELECT_COMMAND
SUBQUERY:
SUBQUERY ::= '(' SELECT_COMMAND ')'
referenced by:
DISPLAYED_COLUMN
EXPR
VALUE
DISPLAYED_COLUMN:
DISPLAYED_COLUMN
::= ( COLUMN_NAME | GROUP_FUNCTION '(' SELECTION COLUMN_NAME ( ',' COLUMN_NAME )* ')' | SUBQUERY ) AS_ALIAS
referenced by:
SELECT_COMMAND
SELECTED_TABLE:
SELECTED_TABLE
::= TABLE_NAME AS_ALIAS
referenced by:
SELECT_COMMAND
SETS:
SETS ::= 'SET' INSERT_COLUMN '=' VALUE ( ',' INSERT_COLUMN '=' VALUE )*
referenced by:
INSERT_COMMAND
UPDATE_COMMAND
VALUE:
VALUE ::= ( QUOTED_STRING | ( '-' | '+' )? ( IDENTIFIER | NUMBER_LEX ) | FUNCTION | SUBQUERY )?
referenced by:
INSERT_COMMAND
SETS
EXPR:
EXPR ::= BOOL
| NUMBER_LEX
| QUOTED_STRING
| DATETIME
| VARIABLE
| SUBQUERY
| FUNCTION
| ( GROUP_FUNCTION '(' SELECTION | '(' ) EXPR ')'
| EXPR ( ( '+' | '-' | '/' | '*' | '=' | '!=' | '>' | '<' | '>=' | '<=' | 'LIKE' | 'AND' | 'OR' ) EXPR | 'IN' ( SUBQUERY | '(' ARRAY_ENTRY ( ',' ARRAY_ENTRY )* ')' ) | 'IS' 'NOT'? 'NULL' )
| 'NOT' EXPR
referenced by:
CHAR_FUNCTION
EXPR
EXPRESSIONS
GROUPBY_CLAUSE
NUMBER_FUNCTION
WHERE_CLAUSE
ARRAY_ENTRY:
ARRAY_ENTRY
::= QUOTED_STRING
| NUMBER_LEX
| DATETIME
| BOOL
referenced by:
EXPR
QUOTED_STRING:
QUOTED_STRING
::= ( QUOTE ( NUMBER_LEX | IDENTIFIER ) QUOTE | DOUBLEQUOTE ( NUMBER_LEX | IDENTIFIER ) DOUBLEQUOTE )?
referenced by:
ARRAY_ENTRY
EXPR
VALUE
SCHEMA_NAME:
SCHEMA_NAME
::= IDENTIFIER PERIOD
no referencesDATETIME:
DATETIME ::= QUOTE DATE TIME? QUOTE
referenced by:
ARRAY_ENTRY
EXPR
AS_ALIAS:
AS_ALIAS ::= ( 'AS'? IDENTIFIER )?
referenced by:
DISPLAYED_COLUMN
SELECTED_TABLE
TABLE_NAME:
TABLE_NAME
::= IDENTIFIER
| BACKTICKS IDENTIFIER BACKTICKS
referenced by:
INSERT_COMMAND
SELECTED_TABLE
UPDATE_COMMAND
COLUMN_NAME:
COLUMN_NAME
::= '*'
| IDENTIFIER ( '.' ( '*' | IDENTIFIER ) )?
| BACKTICKS IDENTIFIER BACKTICKS ( '.' ( '*' | BACKTICKS IDENTIFIER BACKTICKS ) )?
referenced by:
DISPLAYED_COLUMN
SORTED_DEF:
SORTED_DEF
::= EXPRESSIONS
referenced by:
ORDERBY_CLAUSE
GROUP_FUNCTION:
GROUP_FUNCTION
::= 'AVG'
| 'COUNT'
| 'MIN'
| 'MAX'
| 'STDDEV'
| 'SUM'
| 'VARIANCE'
referenced by:
DISPLAYED_COLUMN
EXPR
FUNCTION:
FUNCTION ::= NUMBER_FUNCTION
| CHAR_FUNCTION
| DATE_FUNCTION
referenced by:
EXPR
VALUE
DATE_FUNCTION:
DATE_FUNCTION
::= ( ( 'NOW' | 'CURDATE' | 'CURTIME' ) '(' | 'DATE' '(' DATE ) ')'
referenced by:
FUNCTION
NUMBER_FUNCTION:
NUMBER_FUNCTION
::= ( NUMBER_FUNCTION_ONE_PARAM '(' | NUMBER_FUNCTION_TWO_PARAM '(' EXPR ',' ) EXPR ')'
referenced by:
FUNCTION
NUMBER_FUNCTION_ONE_PARAM:
NUMBER_FUNCTION_ONE_PARAM
::= 'ABS'
| 'CEIL'
| 'FLOOR'
| 'SIGN'
| 'SQRT'
referenced by:
NUMBER_FUNCTION
NUMBER_FUNCTION_TWO_PARAM:
NUMBER_FUNCTION_TWO_PARAM
::= 'MOD'
| 'POWER'
| 'ROUND'
| 'TRUNCATE'
referenced by:
NUMBER_FUNCTION
CHAR_FUNCTION:
CHAR_FUNCTION
::= ( CHAR_FUNCTION_ONE_PARAM '(' | ( CHAR_FUNCTION_TWO_PARAM '(' | CHAR_FUNCTION_THREE_PARAM '(' EXPR ',' ) EXPR ',' ) EXPR ')'
referenced by:
FUNCTION
CHAR_FUNCTION_ONE_PARAM:
CHAR_FUNCTION_ONE_PARAM
::= 'LOWER'
| 'TRIM'
| 'RTRIM'
| 'UPPER'
| 'ASCII'
| 'LENGTH'
| 'TO DATE'
referenced by:
CHAR_FUNCTION
CHAR_FUNCTION_TWO_PARAM:
CHAR_FUNCTION_TWO_PARAM
::= 'INSTR'
| 'SUBSTRING'
referenced by:
CHAR_FUNCTION
CHAR_FUNCTION_THREE_PARAM:
CHAR_FUNCTION_THREE_PARAM
::= 'LPAD'
| 'REPLACE'
| 'RPAD'
referenced by:
CHAR_FUNCTION
SELECTION:
SELECTION
::= ( 'DISTINCT' | 'ALL' )?
referenced by:
DISPLAYED_COLUMN
EXPR
SELECT_COMMAND
DIRECTION:
DIRECTION
::= ( 'ASC' | 'DESC' )?
referenced by:
ORDERBY_CLAUSE
... generated by Railroad Diagram Generator