Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
The SQL Database Grammar CSE 4100 BNF Grammar for SQL /* The grammar rules that follow have been taken from /* "System R", Appendix II, M.M. Astrahan, et al., ACM Trans. /* on Database Systems, Vol. 1, No. 2, June 1976. /* The rules given below in BNF have the following assumptions: /* (1) all non-terminals are in lower-case, /* (2) all terminals (recognized by LEX/lex.yy.c) are in upper-case, <statement> ::= <dml-statement> | <ddl-statement> <dml-statement> ::= | | | <selection> <insertion> <deletion> <update> <selection> ::= <select-clause> FROM <from-list> <where-clause> <grp-ord-clause> <select-clause> ::= SELECT <select-list> ::= | <sel-expr-list> MULT-OP <sel-expr-list> ::= | <sel-expr> <sel-expr-list> ::= <expr> <sel-expr> <select-list> COMMA <sel-expr> SQL.1 */ */ */ */ */ */ The SQL Database Grammar <from-list> CSE 4100 <where-clause> ::= | <table-name> <from-list> COMMA ::= | <empty> WHERE <boolean> <table-name> <nested-select> <nested-select> ::= <empty> | <and-or> <table-name> <comparison> LPAR <selection> RPAR <grp-ord-clause> ::= | | <empty> GROUP BY ORDER BY <insertion> ::= INSERT INTO <receiver> COLON <insert-spec-source> <receiver> ::= <table-name> <insert-spec-target> ::= | <empty> LPAR <field-name-list> ::= | <field-name > <field-name-list> COMMA <field-name> ::= | <field-name > <field-name-list> COMMA <field-name> ::= <literal> <field-name-list> <field-name-list> <insert-spec-source> <field-spec-list> <field-spec-list> <insert-spec-target> RPAR SQL.2 The SQL Database Grammar <deletion> CSE 4100 <update> ::= DELETE <table-name> <where-clause> ::= UPDATE <table-name> <set-clause-list> <where-clause> <set-clause-list> ::= <set-clause> <set-clause> ::= SET <boolean> ::= | <boolean-term> <boolean> OR <boolean-term> <boolean-term> ::= | <boolean-factor> <boolean-term> AND <boolean-factor> ::= <boolean-primary> <boolean-primary> ::= <predicate> <predicate> ::= <expr> <comparison> ::= <comp-op> <comp-op> ::= | | EQ <relat-op> <in-notin> ::= | <empty> <all-any> <all-any-opt> <field-name> EQ <comparison> <expr> <boolean-factor> <table-spec> <all-any-opt> SQL.3 The SQL Database Grammar CSE 4100 <all-any> ::= ALL |ANY <in-notin> ::= IN |NOT IN <relat-op> ::= NE |RWEDGE <table-spec> ::= | <literal> <expr> <literal> ::= | <lit-tuple> LPAR <entry-list> ::= | <entry> LWEDGE <entry-list> ::= | <entry> <entry-list> ::= ::= | <constant> <arith-term > <expr> ADD-OP ::= | <arith-factor> <arith-term> MULT-OP ::= ::= ::= <opt-add-op> <primary> <empty> |ADD-OP AND |OR <lit-tuple> <entry-list> <entry> <expr> <arith-term> <arith-factor> <opt-add-op> <and-or> |GE |LWEDGE COMMA |LE RPAR RWEDGE <entry> <arith-term> <arith-factor> SQL.4 The SQL Database Grammar <primary> CSE 4100 ::= | | | <field-spec> <set-fn> LPAR <expr> LPAR <expr> RPAR <constant> RPAR <field-spec-list> ::= <field-spec> <field-spec> ::= | <field-name> <table-name> <set-fn> ::= AVG <constant> ::= | QUOTE <constant-value> INTEGER <constant-value> ::= IDENTIFIER <field-name> ::= IDENTIFIER <table-name> ::= IDENTIFIER <empty> ::= EPSILON |MAX DOT |MIN <field-name> |SUM |COUNT QUOTE |VALUE SQL.5 The SQL Database Grammar CSE 4100 <ddl-statement> ::= <create-table> <create-table> ::= CREATE TABLE <table-name> <field-defn-list> <field-defn-list> ::= | <field-defn> <field-defn-list> <field-defn> ::= <field-name> <type> ::= | | CHAR LPAR INTEGER RPAR INT LPAR INTEGER RPAR FLOAT LPAR INTEGER RPAR <null-opt> ::= | <empty> COMMA NONULL LPAR COMMA COLON <field-defn> <type> <null-opt> RPAR SQL.6