Statistics
| Revision:

svn-gvsig-desktop / branches / v10 / libraries / libGDBMS / docs / sql.html @ 36782

History | View | Annotate | Download (11.4 KB)

1 466 fernando
<!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> ( &lt;AND&gt; <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>( &lt;NOT&gt; )? &lt;BETWEEN&gt; <A HREF="#prod4">SQLSumExpr</A> &lt;AND&gt; <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>( &lt;EQUAL&gt; | &lt;NOTEQUAL&gt; | &lt;NOTEQUAL2&gt; | &lt;GREATER&gt; | &lt;GREATEREQUAL&gt; | &lt;LESS&gt; | &lt;LESSEQUAL&gt; )</TD>
39
</TR>
40
<TR>
41 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">SQLCustom</A></TD>
42 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
43 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;CUSTOM&gt; &lt;ID&gt; &lt;TABLES&gt; <A HREF="#prod18">SQLTableList</A> &lt;VALUES&gt; <A HREF="#prod19">SQLFunctionArgs</A></TD>
44 466 fernando
</TR>
45
<TR>
46 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">SQLDelete</A></TD>
47
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
48
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DELETE&gt; &lt;FROM&gt; <A HREF="#prod18">SQLTableList</A> ( <A HREF="#prod21">SQLWhere</A> )?</TD>
49
</TR>
50
<TR>
51 466 fernando
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">SQLExistsClause</A></TD>
52
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
53
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;EXISTS&gt; "(" <A HREF="#prod8">SQLSelect</A> ")"</TD>
54
</TR>
55
<TR>
56 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">SQLFunction</A></TD>
57 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
58 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;ID&gt; <A HREF="#prod19">SQLFunctionArgs</A></TD>
59 466 fernando
</TR>
60
<TR>
61 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">SQLFunctionArgs</A></TD>
62 466 fernando
<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 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">SQLGroupBy</A></TD>
67 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
68 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;GROUP&gt; &lt;BY&gt; <A HREF="#prod24">SQLOrderByList</A></TD>
69 466 fernando
</TR>
70
<TR>
71
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">SQLInClause</A></TD>
72
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
73 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;NOT&gt; )? &lt;IN&gt; "(" <A HREF="#prod25">SQLLValueList</A> ")"</TD>
74 466 fernando
</TR>
75
<TR>
76 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">SQLInsert</A></TD>
77 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
78 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;INSERT&gt; &lt;INTO&gt; <A HREF="#prod18">SQLTableList</A> ( "(" <A HREF="#prod27">SQLSelectCols</A> ")" &lt;VALUES&gt; )? "(" <A HREF="#prod27">SQLSelectCols</A> ")"</TD>
79 466 fernando
</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> &lt;IS&gt; ( &lt;NOT&gt; )? &lt;NULL&gt;</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 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;NOT&gt; )? &lt;LIKE&gt; <A HREF="#prod28">SQLPattern</A></TD>
94 466 fernando
</TR>
95
<TR>
96 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">SQLLiteral</A></TD>
97 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
98
<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;STRING_LITERAL&gt; | &lt;INTEGER_LITERAL&gt; | &lt;FLOATING_POINT_LITERAL&gt; | &lt;SPACES&gt; | &lt;ASTERISK&gt; )</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 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod30">SQLLvalueTerm</A> )</TD>
104 466 fernando
</TR>
105
<TR>
106 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">SQLLvalueTerm</A></TD>
107 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
108
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;ID&gt; ( &lt;DOT&gt; &lt;ID&gt; )*</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>( &lt;NOT&gt; )? <A HREF="#prod7">SQLCompareExpr</A></TD>
114
</TR>
115
<TR>
116 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">SQLOrderBy</A></TD>
117 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
118 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;ORDER&gt; &lt;BY&gt; <A HREF="#prod24">SQLOrderByList</A></TD>
119 466 fernando
</TR>
120
<TR>
121 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">SQLOrderByElem</A></TD>
122 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
123 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod5">SQLColRef</A> ( <A HREF="#prod33">SQLOrderDirection</A> )?</TD>
124 466 fernando
</TR>
125
<TR>
126 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">SQLOrderByList</A></TD>
127 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
128 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod32">SQLOrderByElem</A> ( "," <A HREF="#prod32">SQLOrderByElem</A> )*</TD>
129 466 fernando
</TR>
130
<TR>
131 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">SQLOrderDirection</A></TD>
132 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
133
<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;ASC&gt; | &lt;DESC&gt; )</TD>
134
</TR>
135
<TR>
136 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">SQLOrExpr</A></TD>
137 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
138
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod1">SQLAndExpr</A> ( &lt;OR&gt; <A HREF="#prod1">SQLAndExpr</A> )*</TD>
139
</TR>
140
<TR>
141 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">SQLPattern</A></TD>
142 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
143
<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;STRING_LITERAL&gt; | "?" | <A HREF="#prod6">SQLLvalue</A> )</TD>
144
</TR>
145
<TR>
146 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">SQLProductExpr</A></TD>
147 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
148 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod36">SQLUnaryExpr</A> ( ( "*" | "/" ) <A HREF="#prod36">SQLUnaryExpr</A> )*</TD>
149 466 fernando
</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 1956 fjp
<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> | &lt;OPENPAREN&gt; <A HREF="#prod8">SQLSelect</A> &lt;CLOSEPAREN&gt; ) &lt;UNION&gt; ( <A HREF="#prod38">SQLTableRef</A> | &lt;OPENPAREN&gt; <A HREF="#prod8">SQLSelect</A> &lt;CLOSEPAREN&gt; )</TD>
159
</TR>
160
<TR>
161 466 fernando
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">SQLSelect</A></TD>
162
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
163 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;SELECT&gt; <A HREF="#prod27">SQLSelectCols</A> ( &lt;INTO&gt; <A HREF="#prod27">SQLSelectCols</A> )? &lt;FROM&gt; <A HREF="#prod18">SQLTableList</A> ( <A HREF="#prod21">SQLWhere</A> )? ( <A HREF="#prod23">SQLGroupBy</A> )? ( <A HREF="#prod31">SQLOrderBy</A> )?</TD>
164 466 fernando
</TR>
165
<TR>
166 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">SQLSelectCols</A></TD>
167 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
168 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;ALL&gt; | &lt;DISTINCT&gt; )? ( "*" | <A HREF="#prod39">SQLSelectList</A> )</TD>
169 466 fernando
</TR>
170
<TR>
171 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod39">SQLSelectList</A></TD>
172 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
173 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod4">SQLSumExpr</A> ( &lt;AS&gt; &lt;ID&gt; )? ( "," <A HREF="#prod4">SQLSumExpr</A> ( &lt;AS&gt; &lt;ID&gt; )? )*</TD>
174 466 fernando
</TR>
175
<TR>
176 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod40">SQLStatement</A></TD>
177 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
178 1956 fjp
<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 466 fernando
</TR>
180
<TR>
181
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">SQLSumExpr</A></TD>
182
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
183 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod35">SQLProductExpr</A> ( ( "+" | "-" | "||" ) <A HREF="#prod35">SQLProductExpr</A> )*</TD>
184 466 fernando
</TR>
185
<TR>
186
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">SQLTableList</A></TD>
187
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
188 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod38">SQLTableRef</A> ( "," <A HREF="#prod38">SQLTableRef</A> )*</TD>
189 466 fernando
</TR>
190
<TR>
191 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">SQLTableRef</A></TD>
192 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
193 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;ID&gt; | &lt;STRING_LITERAL&gt; ) ( &lt;ID&gt; )?</TD>
194 466 fernando
</TR>
195
<TR>
196 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod42">SQLTerm</A></TD>
197 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
198 1956 fjp
<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 466 fernando
</TR>
200
<TR>
201 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">SQLUnaryExpr</A></TD>
202 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
203 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>( ( "+" | "-" ) )? <A HREF="#prod42">SQLTerm</A></TD>
204 466 fernando
</TR>
205
<TR>
206 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod41">SQLUpdate</A></TD>
207 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
208 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;UPDATE&gt; <A HREF="#prod18">SQLTableList</A> &lt;SET&gt; ( <A HREF="#prod43">SQLUpdateAssignment</A> ( "," )? )+ ( <A HREF="#prod21">SQLWhere</A> )?</TD>
209 466 fernando
</TR>
210
<TR>
211 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod43">SQLUpdateAssignment</A></TD>
212 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
213 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod6">SQLLvalue</A> "=" ( <A HREF="#prod42">SQLTerm</A> ( &lt;CONCAT&gt; <A HREF="#prod42">SQLTerm</A> )+ | <A HREF="#prod4">SQLSumExpr</A> )</TD>
214 466 fernando
</TR>
215
<TR>
216 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod44">SQLLValueElement</A></TD>
217 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
218
<TD ALIGN=LEFT VALIGN=BASELINE>( &lt;NULL&gt; | <A HREF="#prod4">SQLSumExpr</A> | <A HREF="#prod8">SQLSelect</A> )</TD>
219
</TR>
220
<TR>
221 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">SQLLValueList</A></TD>
222 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
223 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod44">SQLLValueElement</A> ( "," <A HREF="#prod44">SQLLValueElement</A> )*</TD>
224 466 fernando
</TR>
225
<TR>
226 1956 fjp
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">SQLWhere</A></TD>
227 466 fernando
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
228 1956 fjp
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;WHERE&gt; <A HREF="#prod34">SQLOrExpr</A></TD>
229 466 fernando
</TR>
230
</TABLE>
231
</BODY>
232
</HTML>