Formal grammar of considered SQL Queries, in EBNF format.
AGGREGATOR
::= COUNT
| MAX
| SUM
| MIN
referenced by:
QUERY ::= AGGREGATOR? SELECTION JOINS ( WHERE CONDITIONS )? GROUPINGS? ORDERING? LIMITING? ( ( UNION | INTERSECT | EXCEPT ) QUERY )?
referenced by:
SELECTION:
SELECTION
::= SELECT COLUMNS FROM TABLES
referenced by:
COLUMNS:
COLUMNS ::= ( COLUMNS ',' )? COLUMN
referenced by:
COLUMN:
COLUMN ::= AGGREGATOR? ( TOKEN | QUERY | '*' )
referenced by:
TABLES:
TABLES ::= ( TABLES ',' )? TABLE
referenced by:
TABLE:
TABLE ::= ( TOKEN | QUERY ) ( AS TOKEN )?
referenced by:
JOINS:
JOINS ::= JOINS? ( LEFT | RIGHT | FULL | OUTER | NATURAL )? JOIN TABLE ON CONDITIONS
referenced by:
CONDITIONS:
CONDITIONS
::= ( CONDITIONS ( AND | OR ) )? CONDITION
referenced by:
CONDITION:
CONDITION
::= EXPRESSION ( '=' | '!=' | '>' | '<' | '>=' | '<=' | '<>' ) EXPRESSION
referenced by:
GROUPINGS:
GROUPINGS
::= 'GROUP BY' COLUMNS ( HAVING CONDITIONS )?
referenced by:
ORDERING:
ORDERING ::= ( 'ORDER BY' COLUMNS ( ASC | DESC )? )?
referenced by:
LIMITING:
LIMITING ::= ( LIMIT NUMBER )?
referenced by:
generated by [RR - Railroad Diagram Generator][RR]
[RR]: https://www.bottlecaps.de/rr/ui