svn-gvsig-desktop / tags / v1_2_Build_1200 / libraries / libGDBMS / docs / nuevasql.html @ 42158
History | View | Annotate | Download (11.1 KB)
1 | 1956 | fjp | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
---|---|---|---|
2 | <HTML>
|
||
3 | <HEAD>
|
||
4 | <TITLE>BNF for sql.jj</TITLE> |
||
5 | </HEAD>
|
||
6 | <BODY>
|
||
7 | <H1 ALIGN=CENTER>BNF for sql.jj</H1> |
||
8 | <H2 ALIGN=CENTER>NON-TERMINALS</H2> |
||
9 | <TABLE>
|
||
10 | <TR>
|
||
11 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod1">SQLAndExpr</A></TD> |
||
12 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
13 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod2">SQLNotExpr</A> ( <AND> <A HREF="#prod2">SQLNotExpr</A> )*</TD> |
||
14 | </TR>
|
||
15 | <TR>
|
||
16 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">SQLBetweenClause</A></TD> |
||
17 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
18 | <TD ALIGN=LEFT VALIGN=BASELINE>( <NOT> )? <BETWEEN> <A HREF="#prod4">SQLSumExpr</A> <AND> <A HREF="#prod4">SQLSumExpr</A></TD> |
||
19 | </TR>
|
||
20 | <TR>
|
||
21 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">SQLColRef</A></TD> |
||
22 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
23 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod6">SQLLvalue</A></TD> |
||
24 | </TR>
|
||
25 | <TR>
|
||
26 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">SQLCompareExpr</A></TD> |
||
27 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
28 | <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod8">SQLSelect</A> | <A HREF="#prod9">SQLIsClause</A> | <A HREF="#prod10">SQLExistsClause</A> | <A HREF="#prod4">SQLSumExpr</A> ( <A HREF="#prod11">SQLCompareExprRight</A> )? )</TD> |
||
29 | </TR>
|
||
30 | <TR>
|
||
31 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">SQLCompareExprRight</A></TD> |
||
32 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
33 | <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod12">SQLLikeClause</A> | <A HREF="#prod13">SQLInClause</A> | <A HREF="#prod14">SQLLeftJoinClause</A> | <A HREF="#prod15">SQLRightJoinClause</A> | <A HREF="#prod3">SQLBetweenClause</A> | <A HREF="#prod16">SQLCompareOp</A> <A HREF="#prod4">SQLSumExpr</A> )</TD> |
||
34 | </TR>
|
||
35 | <TR>
|
||
36 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">SQLCompareOp</A></TD> |
||
37 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
38 | <TD ALIGN=LEFT VALIGN=BASELINE>( <EQUAL> | <NOTEQUAL> | <NOTEQUAL2> | <GREATER> | <GREATEREQUAL> | <LESS> | <LESSEQUAL> )</TD> |
||
39 | </TR>
|
||
40 | <TR>
|
||
41 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">SQLDelete</A></TD> |
||
42 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
43 | <TD ALIGN=LEFT VALIGN=BASELINE><DELETE> <FROM> <A HREF="#prod18">SQLTableList</A> ( <A HREF="#prod19">SQLWhere</A> )?</TD> |
||
44 | </TR>
|
||
45 | <TR>
|
||
46 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">SQLExistsClause</A></TD> |
||
47 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
48 | <TD ALIGN=LEFT VALIGN=BASELINE><EXISTS> "(" <A HREF="#prod8">SQLSelect</A> ")"</TD> |
||
49 | </TR>
|
||
50 | <TR>
|
||
51 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">SQLFunction</A></TD> |
||
52 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
53 | <TD ALIGN=LEFT VALIGN=BASELINE><ID> <A HREF="#prod21">SQLFunctionArgs</A></TD> |
||
54 | </TR>
|
||
55 | <TR>
|
||
56 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">SQLFunctionArgs</A></TD> |
||
57 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
58 | <TD ALIGN=LEFT VALIGN=BASELINE>"(" ( <A HREF="#prod4">SQLSumExpr</A> ( "," <A HREF="#prod4">SQLSumExpr</A> )* )? ")"</TD> |
||
59 | </TR>
|
||
60 | <TR>
|
||
61 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">SQLGroupBy</A></TD> |
||
62 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
63 | <TD ALIGN=LEFT VALIGN=BASELINE><GROUP> <BY> <A HREF="#prod23">SQLOrderByList</A></TD> |
||
64 | </TR>
|
||
65 | <TR>
|
||
66 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">SQLInClause</A></TD> |
||
67 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
68 | <TD ALIGN=LEFT VALIGN=BASELINE>( <NOT> )? <IN> "(" <A HREF="#prod24">SQLLValueList</A> ")"</TD> |
||
69 | </TR>
|
||
70 | <TR>
|
||
71 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">SQLInsert</A></TD> |
||
72 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
73 | <TD ALIGN=LEFT VALIGN=BASELINE><INSERT> <INTO> <A HREF="#prod18">SQLTableList</A> ( "(" <A HREF="#prod26">SQLSelectCols</A> ")" <VALUES> )? "(" <A HREF="#prod26">SQLSelectCols</A> ")"</TD> |
||
74 | </TR>
|
||
75 | <TR>
|
||
76 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">SQLIsClause</A></TD> |
||
77 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
78 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">SQLColRef</A> <IS> ( <NOT> )? <NULL></TD> |
||
79 | </TR>
|
||
80 | <TR>
|
||
81 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod14">SQLLeftJoinClause</A></TD> |
||
82 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
83 | <TD ALIGN=LEFT VALIGN=BASELINE>"(+)" <A HREF="#prod16">SQLCompareOp</A> <A HREF="#prod4">SQLSumExpr</A></TD> |
||
84 | </TR>
|
||
85 | <TR>
|
||
86 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">SQLLikeClause</A></TD> |
||
87 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
88 | <TD ALIGN=LEFT VALIGN=BASELINE>( <NOT> )? <LIKE> <A HREF="#prod27">SQLPattern</A></TD> |
||
89 | </TR>
|
||
90 | <TR>
|
||
91 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">SQLLiteral</A></TD> |
||
92 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
93 | <TD ALIGN=LEFT VALIGN=BASELINE>( <STRING_LITERAL> | <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> | <SPACES> | <ASTERISK> )</TD> |
||
94 | </TR>
|
||
95 | <TR>
|
||
96 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">SQLLvalue</A></TD> |
||
97 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
98 | <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod29">SQLLvalueTerm</A> )</TD> |
||
99 | </TR>
|
||
100 | <TR>
|
||
101 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">SQLLvalueTerm</A></TD> |
||
102 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
103 | <TD ALIGN=LEFT VALIGN=BASELINE><ID> ( <DOT> <ID> )*</TD> |
||
104 | </TR>
|
||
105 | <TR>
|
||
106 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">SQLNotExpr</A></TD> |
||
107 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
108 | <TD ALIGN=LEFT VALIGN=BASELINE>( <NOT> )? <A HREF="#prod7">SQLCompareExpr</A></TD> |
||
109 | </TR>
|
||
110 | <TR>
|
||
111 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">SQLOrderBy</A></TD> |
||
112 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
113 | <TD ALIGN=LEFT VALIGN=BASELINE><ORDER> <BY> <A HREF="#prod23">SQLOrderByList</A></TD> |
||
114 | </TR>
|
||
115 | <TR>
|
||
116 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">SQLOrderByElem</A></TD> |
||
117 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
118 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">SQLColRef</A> ( <A HREF="#prod32">SQLOrderDirection</A> )?</TD> |
||
119 | </TR>
|
||
120 | <TR>
|
||
121 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">SQLOrderByList</A></TD> |
||
122 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
123 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod31">SQLOrderByElem</A> ( "," <A HREF="#prod31">SQLOrderByElem</A> )*</TD> |
||
124 | </TR>
|
||
125 | <TR>
|
||
126 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">SQLOrderDirection</A></TD> |
||
127 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
128 | <TD ALIGN=LEFT VALIGN=BASELINE>( <ASC> | <DESC> )</TD> |
||
129 | </TR>
|
||
130 | <TR>
|
||
131 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">SQLOrExpr</A></TD> |
||
132 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
133 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod1">SQLAndExpr</A> ( <OR> <A HREF="#prod1">SQLAndExpr</A> )*</TD> |
||
134 | </TR>
|
||
135 | <TR>
|
||
136 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">SQLPattern</A></TD> |
||
137 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
138 | <TD ALIGN=LEFT VALIGN=BASELINE>( <STRING_LITERAL> | "?" | <A HREF="#prod6">SQLLvalue</A> )</TD> |
||
139 | </TR>
|
||
140 | <TR>
|
||
141 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">SQLProductExpr</A></TD> |
||
142 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
143 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod35">SQLUnaryExpr</A> ( ( "*" | "/" ) <A HREF="#prod35">SQLUnaryExpr</A> )*</TD> |
||
144 | </TR>
|
||
145 | <TR>
|
||
146 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod15">SQLRightJoinClause</A></TD> |
||
147 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
148 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod16">SQLCompareOp</A> <A HREF="#prod4">SQLSumExpr</A> "(+)"</TD> |
||
149 | </TR>
|
||
150 | <TR>
|
||
151 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">SQLUnion</A></TD> |
||
152 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
153 | <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod37">SQLTableRef</A> | <OPENPAREN> <A HREF="#prod8">SQLSelect</A> <CLOSEPAREN> ) <UNION> ( <A HREF="#prod37">SQLTableRef</A> | <OPENPAREN> <A HREF="#prod8">SQLSelect</A> <CLOSEPAREN> )</TD> |
||
154 | </TR>
|
||
155 | <TR>
|
||
156 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">SQLSelect</A></TD> |
||
157 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
158 | <TD ALIGN=LEFT VALIGN=BASELINE><SELECT> <A HREF="#prod26">SQLSelectCols</A> ( <INTO> <A HREF="#prod26">SQLSelectCols</A> )? <FROM> <A HREF="#prod18">SQLTableList</A> ( <A HREF="#prod19">SQLWhere</A> )? ( <A HREF="#prod22">SQLGroupBy</A> )? ( <A HREF="#prod30">SQLOrderBy</A> )?</TD> |
||
159 | </TR>
|
||
160 | <TR>
|
||
161 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">SQLSelectCols</A></TD> |
||
162 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
163 | <TD ALIGN=LEFT VALIGN=BASELINE>( <ALL> | <DISTINCT> )? ( "*" | <A HREF="#prod38">SQLSelectList</A> )?</TD> |
||
164 | </TR>
|
||
165 | <TR>
|
||
166 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">SQLSelectList</A></TD> |
||
167 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
168 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod4">SQLSumExpr</A> ( <AS> <ID> )? ( "," <A HREF="#prod4">SQLSumExpr</A> ( <AS> <ID> )? )*</TD> |
||
169 | </TR>
|
||
170 | <TR>
|
||
171 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">SQLStatement</A></TD> |
||
172 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
173 | <TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod8">SQLSelect</A> | <A HREF="#prod25">SQLInsert</A> | <A HREF="#prod40">SQLUpdate</A> | <A HREF="#prod17">SQLDelete</A> | <A HREF="#prod36">SQLUnion</A> ) ";"</TD> |
||
174 | </TR>
|
||
175 | <TR>
|
||
176 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">SQLSumExpr</A></TD> |
||
177 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
178 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod34">SQLProductExpr</A> ( ( "+" | "-" | "||" ) <A HREF="#prod34">SQLProductExpr</A> )*</TD> |
||
179 | </TR>
|
||
180 | <TR>
|
||
181 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">SQLTableList</A></TD> |
||
182 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
183 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">SQLTableRef</A> ( "," <A HREF="#prod37">SQLTableRef</A> )*</TD> |
||
184 | </TR>
|
||
185 | <TR>
|
||
186 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">SQLTableRef</A></TD> |
||
187 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
188 | <TD ALIGN=LEFT VALIGN=BASELINE><ID> ( <ID> )?</TD> |
||
189 | </TR>
|
||
190 | <TR>
|
||
191 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">SQLTerm</A></TD> |
||
192 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
193 | <TD ALIGN=LEFT VALIGN=BASELINE>( "(" <A HREF="#prod33">SQLOrExpr</A> ")" | <A HREF="#prod20">SQLFunction</A> | <A HREF="#prod5">SQLColRef</A> | <A HREF="#prod28">SQLLiteral</A> )</TD> |
||
194 | </TR>
|
||
195 | <TR>
|
||
196 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">SQLUnaryExpr</A></TD> |
||
197 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
198 | <TD ALIGN=LEFT VALIGN=BASELINE>( ( "+" | "-" ) )? <A HREF="#prod41">SQLTerm</A></TD> |
||
199 | </TR>
|
||
200 | <TR>
|
||
201 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">SQLUpdate</A></TD> |
||
202 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
203 | <TD ALIGN=LEFT VALIGN=BASELINE><UPDATE> <A HREF="#prod18">SQLTableList</A> <SET> ( <A HREF="#prod42">SQLUpdateAssignment</A> ( "," )? )+ ( <A HREF="#prod19">SQLWhere</A> )?</TD> |
||
204 | </TR>
|
||
205 | <TR>
|
||
206 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">SQLUpdateAssignment</A></TD> |
||
207 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
208 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod6">SQLLvalue</A> "=" ( <A HREF="#prod41">SQLTerm</A> ( <CONCAT> <A HREF="#prod41">SQLTerm</A> )+ | <A HREF="#prod4">SQLSumExpr</A> )</TD> |
||
209 | </TR>
|
||
210 | <TR>
|
||
211 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">SQLLValueElement</A></TD> |
||
212 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
213 | <TD ALIGN=LEFT VALIGN=BASELINE>( <NULL> | <A HREF="#prod4">SQLSumExpr</A> | <A HREF="#prod8">SQLSelect</A> )</TD> |
||
214 | </TR>
|
||
215 | <TR>
|
||
216 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">SQLLValueList</A></TD> |
||
217 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
218 | <TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod43">SQLLValueElement</A> ( "," <A HREF="#prod43">SQLLValueElement</A> )*</TD> |
||
219 | </TR>
|
||
220 | <TR>
|
||
221 | <TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">SQLWhere</A></TD> |
||
222 | <TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
||
223 | <TD ALIGN=LEFT VALIGN=BASELINE><WHERE> <A HREF="#prod33">SQLOrExpr</A></TD> |
||
224 | </TR>
|
||
225 | </TABLE>
|
||
226 | </BODY>
|
||
227 | </HTML> |