svn-gvsig-desktop / trunk / libraries / libGDBMS / docs / sql.html @ 17655
History | View | Annotate | Download (11.4 KB)
1 |
<!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">SQLCustom</A></TD> |
42 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
43 |
<TD ALIGN=LEFT VALIGN=BASELINE><CUSTOM> <ID> <TABLES> <A HREF="#prod18">SQLTableList</A> <VALUES> <A HREF="#prod19">SQLFunctionArgs</A></TD> |
44 |
</TR>
|
45 |
<TR>
|
46 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">SQLDelete</A></TD> |
47 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
48 |
<TD ALIGN=LEFT VALIGN=BASELINE><DELETE> <FROM> <A HREF="#prod18">SQLTableList</A> ( <A HREF="#prod21">SQLWhere</A> )?</TD> |
49 |
</TR>
|
50 |
<TR>
|
51 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">SQLExistsClause</A></TD> |
52 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
53 |
<TD ALIGN=LEFT VALIGN=BASELINE><EXISTS> "(" <A HREF="#prod8">SQLSelect</A> ")"</TD> |
54 |
</TR>
|
55 |
<TR>
|
56 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">SQLFunction</A></TD> |
57 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
58 |
<TD ALIGN=LEFT VALIGN=BASELINE><ID> <A HREF="#prod19">SQLFunctionArgs</A></TD> |
59 |
</TR>
|
60 |
<TR>
|
61 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">SQLFunctionArgs</A></TD> |
62 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
63 |
<TD ALIGN=LEFT VALIGN=BASELINE>"(" ( <A HREF="#prod4">SQLSumExpr</A> ( "," <A HREF="#prod4">SQLSumExpr</A> )* )? ")"</TD> |
64 |
</TR>
|
65 |
<TR>
|
66 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">SQLGroupBy</A></TD> |
67 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
68 |
<TD ALIGN=LEFT VALIGN=BASELINE><GROUP> <BY> <A HREF="#prod24">SQLOrderByList</A></TD> |
69 |
</TR>
|
70 |
<TR>
|
71 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">SQLInClause</A></TD> |
72 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
73 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <NOT> )? <IN> "(" <A HREF="#prod25">SQLLValueList</A> ")"</TD> |
74 |
</TR>
|
75 |
<TR>
|
76 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">SQLInsert</A></TD> |
77 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
78 |
<TD ALIGN=LEFT VALIGN=BASELINE><INSERT> <INTO> <A HREF="#prod18">SQLTableList</A> ( "(" <A HREF="#prod27">SQLSelectCols</A> ")" <VALUES> )? "(" <A HREF="#prod27">SQLSelectCols</A> ")"</TD> |
79 |
</TR>
|
80 |
<TR>
|
81 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">SQLIsClause</A></TD> |
82 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
83 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">SQLColRef</A> <IS> ( <NOT> )? <NULL></TD> |
84 |
</TR>
|
85 |
<TR>
|
86 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod14">SQLLeftJoinClause</A></TD> |
87 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
88 |
<TD ALIGN=LEFT VALIGN=BASELINE>"(+)" <A HREF="#prod16">SQLCompareOp</A> <A HREF="#prod4">SQLSumExpr</A></TD> |
89 |
</TR>
|
90 |
<TR>
|
91 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">SQLLikeClause</A></TD> |
92 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
93 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <NOT> )? <LIKE> <A HREF="#prod28">SQLPattern</A></TD> |
94 |
</TR>
|
95 |
<TR>
|
96 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">SQLLiteral</A></TD> |
97 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
98 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <STRING_LITERAL> | <INTEGER_LITERAL> | <FLOATING_POINT_LITERAL> | <SPACES> | <ASTERISK> )</TD> |
99 |
</TR>
|
100 |
<TR>
|
101 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">SQLLvalue</A></TD> |
102 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
103 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod30">SQLLvalueTerm</A> )</TD> |
104 |
</TR>
|
105 |
<TR>
|
106 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">SQLLvalueTerm</A></TD> |
107 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
108 |
<TD ALIGN=LEFT VALIGN=BASELINE><ID> ( <DOT> <ID> )*</TD> |
109 |
</TR>
|
110 |
<TR>
|
111 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">SQLNotExpr</A></TD> |
112 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
113 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <NOT> )? <A HREF="#prod7">SQLCompareExpr</A></TD> |
114 |
</TR>
|
115 |
<TR>
|
116 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">SQLOrderBy</A></TD> |
117 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
118 |
<TD ALIGN=LEFT VALIGN=BASELINE><ORDER> <BY> <A HREF="#prod24">SQLOrderByList</A></TD> |
119 |
</TR>
|
120 |
<TR>
|
121 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">SQLOrderByElem</A></TD> |
122 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
123 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">SQLColRef</A> ( <A HREF="#prod33">SQLOrderDirection</A> )?</TD> |
124 |
</TR>
|
125 |
<TR>
|
126 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">SQLOrderByList</A></TD> |
127 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
128 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod32">SQLOrderByElem</A> ( "," <A HREF="#prod32">SQLOrderByElem</A> )*</TD> |
129 |
</TR>
|
130 |
<TR>
|
131 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">SQLOrderDirection</A></TD> |
132 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
133 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <ASC> | <DESC> )</TD> |
134 |
</TR>
|
135 |
<TR>
|
136 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">SQLOrExpr</A></TD> |
137 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
138 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod1">SQLAndExpr</A> ( <OR> <A HREF="#prod1">SQLAndExpr</A> )*</TD> |
139 |
</TR>
|
140 |
<TR>
|
141 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">SQLPattern</A></TD> |
142 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
143 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <STRING_LITERAL> | "?" | <A HREF="#prod6">SQLLvalue</A> )</TD> |
144 |
</TR>
|
145 |
<TR>
|
146 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">SQLProductExpr</A></TD> |
147 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
148 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod36">SQLUnaryExpr</A> ( ( "*" | "/" ) <A HREF="#prod36">SQLUnaryExpr</A> )*</TD> |
149 |
</TR>
|
150 |
<TR>
|
151 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod15">SQLRightJoinClause</A></TD> |
152 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
153 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod16">SQLCompareOp</A> <A HREF="#prod4">SQLSumExpr</A> "(+)"</TD> |
154 |
</TR>
|
155 |
<TR>
|
156 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">SQLUnion</A></TD> |
157 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
158 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod38">SQLTableRef</A> | <OPENPAREN> <A HREF="#prod8">SQLSelect</A> <CLOSEPAREN> ) <UNION> ( <A HREF="#prod38">SQLTableRef</A> | <OPENPAREN> <A HREF="#prod8">SQLSelect</A> <CLOSEPAREN> )</TD> |
159 |
</TR>
|
160 |
<TR>
|
161 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">SQLSelect</A></TD> |
162 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
163 |
<TD ALIGN=LEFT VALIGN=BASELINE><SELECT> <A HREF="#prod27">SQLSelectCols</A> ( <INTO> <A HREF="#prod27">SQLSelectCols</A> )? <FROM> <A HREF="#prod18">SQLTableList</A> ( <A HREF="#prod21">SQLWhere</A> )? ( <A HREF="#prod23">SQLGroupBy</A> )? ( <A HREF="#prod31">SQLOrderBy</A> )?</TD> |
164 |
</TR>
|
165 |
<TR>
|
166 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">SQLSelectCols</A></TD> |
167 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
168 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <ALL> | <DISTINCT> )? ( "*" | <A HREF="#prod39">SQLSelectList</A> )</TD> |
169 |
</TR>
|
170 |
<TR>
|
171 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">SQLSelectList</A></TD> |
172 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
173 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod4">SQLSumExpr</A> ( <AS> <ID> )? ( "," <A HREF="#prod4">SQLSumExpr</A> ( <AS> <ID> )? )*</TD> |
174 |
</TR>
|
175 |
<TR>
|
176 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">SQLStatement</A></TD> |
177 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
178 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod8">SQLSelect</A> | <A HREF="#prod26">SQLInsert</A> | <A HREF="#prod41">SQLUpdate</A> | <A HREF="#prod20">SQLDelete</A> | <A HREF="#prod37">SQLUnion</A> | <A HREF="#prod17">SQLCustom</A> ) ";"</TD> |
179 |
</TR>
|
180 |
<TR>
|
181 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">SQLSumExpr</A></TD> |
182 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
183 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod35">SQLProductExpr</A> ( ( "+" | "-" | "||" ) <A HREF="#prod35">SQLProductExpr</A> )*</TD> |
184 |
</TR>
|
185 |
<TR>
|
186 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">SQLTableList</A></TD> |
187 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
188 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">SQLTableRef</A> ( "," <A HREF="#prod38">SQLTableRef</A> )*</TD> |
189 |
</TR>
|
190 |
<TR>
|
191 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">SQLTableRef</A></TD> |
192 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
193 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <ID> | <STRING_LITERAL> ) ( <ID> )?</TD> |
194 |
</TR>
|
195 |
<TR>
|
196 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">SQLTerm</A></TD> |
197 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
198 |
<TD ALIGN=LEFT VALIGN=BASELINE>( "(" <A HREF="#prod34">SQLOrExpr</A> ")" | <A HREF="#prod22">SQLFunction</A> | <A HREF="#prod5">SQLColRef</A> | <A HREF="#prod29">SQLLiteral</A> )</TD> |
199 |
</TR>
|
200 |
<TR>
|
201 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">SQLUnaryExpr</A></TD> |
202 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
203 |
<TD ALIGN=LEFT VALIGN=BASELINE>( ( "+" | "-" ) )? <A HREF="#prod42">SQLTerm</A></TD> |
204 |
</TR>
|
205 |
<TR>
|
206 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">SQLUpdate</A></TD> |
207 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
208 |
<TD ALIGN=LEFT VALIGN=BASELINE><UPDATE> <A HREF="#prod18">SQLTableList</A> <SET> ( <A HREF="#prod43">SQLUpdateAssignment</A> ( "," )? )+ ( <A HREF="#prod21">SQLWhere</A> )?</TD> |
209 |
</TR>
|
210 |
<TR>
|
211 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">SQLUpdateAssignment</A></TD> |
212 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
213 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod6">SQLLvalue</A> "=" ( <A HREF="#prod42">SQLTerm</A> ( <CONCAT> <A HREF="#prod42">SQLTerm</A> )+ | <A HREF="#prod4">SQLSumExpr</A> )</TD> |
214 |
</TR>
|
215 |
<TR>
|
216 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">SQLLValueElement</A></TD> |
217 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
218 |
<TD ALIGN=LEFT VALIGN=BASELINE>( <NULL> | <A HREF="#prod4">SQLSumExpr</A> | <A HREF="#prod8">SQLSelect</A> )</TD> |
219 |
</TR>
|
220 |
<TR>
|
221 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">SQLLValueList</A></TD> |
222 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
223 |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod44">SQLLValueElement</A> ( "," <A HREF="#prod44">SQLLValueElement</A> )*</TD> |
224 |
</TR>
|
225 |
<TR>
|
226 |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">SQLWhere</A></TD> |
227 |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> |
228 |
<TD ALIGN=LEFT VALIGN=BASELINE><WHERE> <A HREF="#prod34">SQLOrExpr</A></TD> |
229 |
</TR>
|
230 |
</TABLE>
|
231 |
</BODY>
|
232 |
</HTML>
|