1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
4
<title>SQLite Query Language: SQLite Keywords</title>
5
<style type="text/css">
8
font-family: Verdana, sans-serif;
13
a:visited { color: #734559 }
15
.logo { position:absolute; margin:3px; }
31
.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
32
.toolbar a:visited { color: white; }
33
.toolbar a:hover { color: #044a64; background: white; }
35
.content { margin: 5%; }
36
.content dt { font-weight:bold; }
37
.content dd { margin-bottom: 25px; margin-left:20%; }
38
.content ul { padding:0px; padding-left: 15px; margin:0px; }
41
.se { background: url(images/se.gif) 100% 100% no-repeat #044a64}
42
.sw { background: url(images/sw.gif) 0% 100% no-repeat }
43
.ne { background: url(images/ne.gif) 100% 0% no-repeat }
44
.nw { background: url(images/nw.gif) 0% 0% no-repeat }
46
/* Things for "fancyformat" documents start here. */
47
.fancy img+p {font-style:italic}
48
.fancy .codeblock i { color: darkblue; }
49
.fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
50
.fancy h2 { margin-left: 10px }
51
.fancy h3 { margin-left: 20px }
52
.fancy h4 { margin-left: 30px }
53
.fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
54
.fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
55
.fancy #toc a { color: darkblue ; text-decoration: none }
56
.fancy .todo { color: #AA3333 ; font-style : italic }
57
.fancy .todo:before { content: 'TODO:' }
58
.fancy p.todo { border: solid #AA3333 1px; padding: 1ex }
59
.fancy img { display:block; }
60
.fancy :link:hover, .fancy :visited:hover { background: wheat }
61
.fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
62
.fancy li p { margin: 1em 0 }
63
/* End of "fancyformat" specific rules. */
69
<div><!-- container div to satisfy validator -->
72
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite Logo"
74
<div><!-- IE hack to prevent disappearing logo--></div>
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
77
<table width=100% style="clear:both"><tr><td>
78
<div class="se"><div class="sw"><div class="ne"><div class="nw">
79
<table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
82
<a href="about.html">About</a>
83
<a href="sitemap.html">Sitemap</a>
84
<a href="docs.html">Documentation</a>
85
<a href="download.html">Download</a>
86
<a href="copyright.html">License</a>
87
<a href="news.html">News</a>
88
<a href="support.html">Support</a>
91
gMsg = "Search SQLite Docs..."
92
function entersearch() {
93
var q = document.getElementById("q");
94
if( q.value == gMsg ) { q.value = "" }
95
q.style.color = "black"
96
q.style.fontStyle = "normal"
98
function leavesearch() {
99
var q = document.getElementById("q");
100
if( q.value == "" ) {
102
q.style.color = "#044a64"
103
q.style.fontStyle = "italic"
108
<div style="padding:0 1em 0px 0;white-space:nowrap">
109
<form name=f method="GET" action="http://www.sqlite.org/search">
110
<input id=q name=q type=text
111
onfocus="entersearch()" onblur="leavesearch()" style="width:24ex;padding:1px 1ex; border:solid white 1px; font-size:0.9em ; font-style:italic;color:#044a64;" value="Search SQLite Docs...">
112
<input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
116
</div></div></div></div>
118
<div class=startsearch></div>
120
<h1 align="center">SQL As Understood By SQLite</h1><p><a href="lang.html">[Top]</a></p><h2>SQLite Keywords</h2></DIV>
122
<p>The SQL standard specifies a huge number of keywords which may not
123
be used as the names of tables, indices, columns, databases, user-defined
124
functions, collations, virtual table modules, or any other named object.
125
The list of keywords is so long that few people can remember them all.
126
For most SQL code, your safest bet is to never use any English language
127
word as the name of a user-defined object.</p>
129
<p>If you want to use a keyword as a name, you need to quote it. There
130
are four ways of quoting keywords in SQLite:</p>
135
<tr> <td valign="top"><b>'keyword'</b></td><td width="20"></td>
136
<td>A keyword in single quotes is a string literal.</td></tr>
138
<tr> <td valign="top"><b>"keyword"</b></td><td></td>
139
<td>A keyword in double-quotes is an identifier.</td></tr>
141
<tr> <td valign="top"><b>[keyword]</b></td><td></td>
142
<td>A keyword enclosed in square brackets is
143
an identifier. This is not standard SQL. This quoting mechanism
144
is used by MS Access and SQL Server and is included in SQLite for
145
compatibility.</td></tr>
147
<tr> <td valign="top"><b>`keyword`</b></td><td></td>
148
<td>A keyword enclosed in grave accents (ASCII code 96) is
149
an identifier. This is not standard SQL. This quoting mechanism
150
is used by MySQL and is included in SQLite for
151
compatibility.</td></tr>
156
<p>For resilience when confronted with historical SQL statements, SQLite
157
will sometimes bend the quoting rules above:</p>
160
<li><p>If a keyword in single
161
quotes (ex: <b>'key'</b> or <b>'glob'</b>) is used in a context where
162
an identifier is allowed but where a string literal is not allowed, then
163
the token is understood to be an identifier instead of a string literal.
166
<li><p>If a keyword in double
167
quotes (ex: <b>"key"</b> or <b>"glob"</b>) is used in a context where
168
it cannot be resolved to an identifier but where a string literal
169
is allowed, then the token is understood to be a string literal instead
170
of an identifier.</p></li>
173
<p>Programmers are cautioned not to use the two exceptions described in
174
the previous bullets. We emphasize that they exist only so that old
175
and ill-formed SQL statements will run correctly. Future versions of
176
SQLite might change to raise errors instead of accepting the malformed
177
statements covered by the exceptions above.</p>
180
SQLite adds new keywords from time to time when it takes on new features.
181
So to prevent your code from being broken by future enhancements, you should
182
normally quote any identifier that is an English language word, even if
187
The list below shows all possible keywords used by any build of
188
SQLite regardless of <a href="compile.html">compile-time options</a>.
189
Most reasonable configurations use most or all of these keywords,
190
but some keywords may be omitted when SQL language features are
192
Regardless of the compile-time configuration, any identifier that is not on
193
the following 121 element
194
list is not a keyword to the SQL parser in SQLite:
198
<table width="100%"><tr>
199
<td align="left" valign="top" width="20%">
225
</td><td valign="top" align="left" width="20%">CREATE<br>
229
CURRENT_TIMESTAMP<br>
250
</td><td valign="top" align="left" width="20%">FROM<br>
275
</td><td valign="top" align="left" width="20%">NATURAL<br>
300
</td><td valign="top" align="left" width="20%">ROW<br>
322
</td></tr></table></blockquote>