Statistics
| Revision:

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> ( &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
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">SQLDelete</A></TD>
42
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD>
43
<TD ALIGN=LEFT VALIGN=BASELINE>&lt;DELETE&gt; &lt;FROM&gt; <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>&lt;EXISTS&gt; "(" <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>&lt;ID&gt; <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>&lt;GROUP&gt; &lt;BY&gt; <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>( &lt;NOT&gt; )? &lt;IN&gt; "(" <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>&lt;INSERT&gt; &lt;INTO&gt; <A HREF="#prod18">SQLTableList</A> ( "(" <A HREF="#prod26">SQLSelectCols</A> ")" &lt;VALUES&gt; )? "(" <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> &lt;IS&gt; ( &lt;NOT&gt; )? &lt;NULL&gt;</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>( &lt;NOT&gt; )? &lt;LIKE&gt; <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>( &lt;STRING_LITERAL&gt; | &lt;INTEGER_LITERAL&gt; | &lt;FLOATING_POINT_LITERAL&gt; | &lt;SPACES&gt; | &lt;ASTERISK&gt; )</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>&lt;ID&gt; ( &lt;DOT&gt; &lt;ID&gt; )*</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>( &lt;NOT&gt; )? <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>&lt;ORDER&gt; &lt;BY&gt; <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>( &lt;ASC&gt; | &lt;DESC&gt; )</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> ( &lt;OR&gt; <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>( &lt;STRING_LITERAL&gt; | "?" | <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> | &lt;OPENPAREN&gt; <A HREF="#prod8">SQLSelect</A> &lt;CLOSEPAREN&gt; ) &lt;UNION&gt; ( <A HREF="#prod37">SQLTableRef</A> | &lt;OPENPAREN&gt; <A HREF="#prod8">SQLSelect</A> &lt;CLOSEPAREN&gt; )</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>&lt;SELECT&gt; <A HREF="#prod26">SQLSelectCols</A> ( &lt;INTO&gt; <A HREF="#prod26">SQLSelectCols</A> )? &lt;FROM&gt; <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>( &lt;ALL&gt; | &lt;DISTINCT&gt; )? ( "*" | <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> ( &lt;AS&gt; &lt;ID&gt; )? ( "," <A HREF="#prod4">SQLSumExpr</A> ( &lt;AS&gt; &lt;ID&gt; )? )*</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>&lt;ID&gt; ( &lt;ID&gt; )?</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>&lt;UPDATE&gt; <A HREF="#prod18">SQLTableList</A> &lt;SET&gt; ( <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> ( &lt;CONCAT&gt; <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>( &lt;NULL&gt; | <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>&lt;WHERE&gt; <A HREF="#prod33">SQLOrExpr</A></TD>
224
</TR>
225
</TABLE>
226
</BODY>
227
</HTML>