/sqlite-src-3071300/sqlite-doc-3071300/lang_keywords.html
HTML | 323 lines | 297 code | 26 blank | 0 comment | 0 complexity | 8aa48d9d1856d8a1c23ced5171a95ff0 MD5 | raw file
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <html><head>
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <title>SQLite Query Language: SQLite Keywords</title>
- <style type="text/css">
- body {
- margin: auto;
- font-family: Verdana, sans-serif;
- padding: 8px 1%;
- }
- a { color: #044a64 }
- a:visited { color: #734559 }
- .logo { position:absolute; margin:3px; }
- .tagline {
- float:right;
- text-align:right;
- font-style:italic;
- width:300px;
- margin:12px;
- margin-top:58px;
- }
- .toolbar {
- text-align: center;
- line-height: 1.6em;
- margin: 0;
- padding: 0px 8px;
- }
- .toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
- .toolbar a:visited { color: white; }
- .toolbar a:hover { color: #044a64; background: white; }
- .content { margin: 5%; }
- .content dt { font-weight:bold; }
- .content dd { margin-bottom: 25px; margin-left:20%; }
- .content ul { padding:0px; padding-left: 15px; margin:0px; }
- /* rounded corners */
- .se { background: url(images/se.gif) 100% 100% no-repeat #044a64}
- .sw { background: url(images/sw.gif) 0% 100% no-repeat }
- .ne { background: url(images/ne.gif) 100% 0% no-repeat }
- .nw { background: url(images/nw.gif) 0% 0% no-repeat }
- /* Things for "fancyformat" documents start here. */
- .fancy img+p {font-style:italic}
- .fancy .codeblock i { color: darkblue; }
- .fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
- .fancy h2 { margin-left: 10px }
- .fancy h3 { margin-left: 20px }
- .fancy h4 { margin-left: 30px }
- .fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
- .fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
- .fancy #toc a { color: darkblue ; text-decoration: none }
- .fancy .todo { color: #AA3333 ; font-style : italic }
- .fancy .todo:before { content: 'TODO:' }
- .fancy p.todo { border: solid #AA3333 1px; padding: 1ex }
- .fancy img { display:block; }
- .fancy :link:hover, .fancy :visited:hover { background: wheat }
- .fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
- .fancy li p { margin: 1em 0 }
- /* End of "fancyformat" specific rules. */
- </style>
-
- </head>
- <body>
- <div><!-- container div to satisfy validator -->
- <a href="index.html">
- <img class="logo" src="images/sqlite370_banner.gif" alt="SQLite Logo"
- border="0"></a>
- <div><!-- IE hack to prevent disappearing logo--></div>
- <div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
- <table width=100% style="clear:both"><tr><td>
- <div class="se"><div class="sw"><div class="ne"><div class="nw">
- <table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
- <td width=100%>
- <div class="toolbar">
- <a href="about.html">About</a>
- <a href="sitemap.html">Sitemap</a>
- <a href="docs.html">Documentation</a>
- <a href="download.html">Download</a>
- <a href="copyright.html">License</a>
- <a href="news.html">News</a>
- <a href="support.html">Support</a>
- </div>
- <script>
- gMsg = "Search SQLite Docs..."
- function entersearch() {
- var q = document.getElementById("q");
- if( q.value == gMsg ) { q.value = "" }
- q.style.color = "black"
- q.style.fontStyle = "normal"
- }
- function leavesearch() {
- var q = document.getElementById("q");
- if( q.value == "" ) {
- q.value = gMsg
- q.style.color = "#044a64"
- q.style.fontStyle = "italic"
- }
- }
- </script>
- <td>
- <div style="padding:0 1em 0px 0;white-space:nowrap">
- <form name=f method="GET" action="http://www.sqlite.org/search">
- <input id=q name=q type=text
- 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...">
- <input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
- </form>
- </div>
- </table>
- </div></div></div></div>
- </td></tr></table>
- <div class=startsearch></div>
-
- <h1 align="center">SQL As Understood By SQLite</h1><p><a href="lang.html">[Top]</a></p><h2>SQLite Keywords</h2></DIV>
- <p>The SQL standard specifies a huge number of keywords which may not
- be used as the names of tables, indices, columns, databases, user-defined
- functions, collations, virtual table modules, or any other named object.
- The list of keywords is so long that few people can remember them all.
- For most SQL code, your safest bet is to never use any English language
- word as the name of a user-defined object.</p>
- <p>If you want to use a keyword as a name, you need to quote it. There
- are four ways of quoting keywords in SQLite:</p>
- <p>
- <blockquote>
- <table>
- <tr> <td valign="top"><b>'keyword'</b></td><td width="20"></td>
- <td>A keyword in single quotes is a string literal.</td></tr>
- <tr> <td valign="top"><b>"keyword"</b></td><td></td>
- <td>A keyword in double-quotes is an identifier.</td></tr>
- <tr> <td valign="top"><b>[keyword]</b></td><td></td>
- <td>A keyword enclosed in square brackets is
- an identifier. This is not standard SQL. This quoting mechanism
- is used by MS Access and SQL Server and is included in SQLite for
- compatibility.</td></tr>
- <tr> <td valign="top"><b>`keyword`</b></td><td></td>
- <td>A keyword enclosed in grave accents (ASCII code 96) is
- an identifier. This is not standard SQL. This quoting mechanism
- is used by MySQL and is included in SQLite for
- compatibility.</td></tr>
- </table>
- </blockquote>
- </p>
- <p>For resilience when confronted with historical SQL statements, SQLite
- will sometimes bend the quoting rules above:</p>
- <ul>
- <li><p>If a keyword in single
- quotes (ex: <b>'key'</b> or <b>'glob'</b>) is used in a context where
- an identifier is allowed but where a string literal is not allowed, then
- the token is understood to be an identifier instead of a string literal.
- </p></li>
- <li><p>If a keyword in double
- quotes (ex: <b>"key"</b> or <b>"glob"</b>) is used in a context where
- it cannot be resolved to an identifier but where a string literal
- is allowed, then the token is understood to be a string literal instead
- of an identifier.</p></li>
- </ul>
- <p>Programmers are cautioned not to use the two exceptions described in
- the previous bullets. We emphasize that they exist only so that old
- and ill-formed SQL statements will run correctly. Future versions of
- SQLite might change to raise errors instead of accepting the malformed
- statements covered by the exceptions above.</p>
- <p>
- SQLite adds new keywords from time to time when it takes on new features.
- So to prevent your code from being broken by future enhancements, you should
- normally quote any identifier that is an English language word, even if
- you do not have to.
- </p>
- <p>
- The list below shows all possible keywords used by any build of
- SQLite regardless of <a href="compile.html">compile-time options</a>.
- Most reasonable configurations use most or all of these keywords,
- but some keywords may be omitted when SQL language features are
- disabled.
- Regardless of the compile-time configuration, any identifier that is not on
- the following 121 element
- list is not a keyword to the SQL parser in SQLite:
- </p>
- <blockquote>
- <table width="100%"><tr>
- <td align="left" valign="top" width="20%">
- ABORT<br>
- ACTION<br>
- ADD<br>
- AFTER<br>
- ALL<br>
- ALTER<br>
- ANALYZE<br>
- AND<br>
- AS<br>
- ASC<br>
- ATTACH<br>
- AUTOINCREMENT<br>
- BEFORE<br>
- BEGIN<br>
- BETWEEN<br>
- BY<br>
- CASCADE<br>
- CASE<br>
- CAST<br>
- CHECK<br>
- COLLATE<br>
- COLUMN<br>
- COMMIT<br>
- CONFLICT<br>
- CONSTRAINT<br>
- </td><td valign="top" align="left" width="20%">CREATE<br>
- CROSS<br>
- CURRENT_DATE<br>
- CURRENT_TIME<br>
- CURRENT_TIMESTAMP<br>
- DATABASE<br>
- DEFAULT<br>
- DEFERRABLE<br>
- DEFERRED<br>
- DELETE<br>
- DESC<br>
- DETACH<br>
- DISTINCT<br>
- DROP<br>
- EACH<br>
- ELSE<br>
- END<br>
- ESCAPE<br>
- EXCEPT<br>
- EXCLUSIVE<br>
- EXISTS<br>
- EXPLAIN<br>
- FAIL<br>
- FOR<br>
- FOREIGN<br>
- </td><td valign="top" align="left" width="20%">FROM<br>
- FULL<br>
- GLOB<br>
- GROUP<br>
- HAVING<br>
- IF<br>
- IGNORE<br>
- IMMEDIATE<br>
- IN<br>
- INDEX<br>
- INDEXED<br>
- INITIALLY<br>
- INNER<br>
- INSERT<br>
- INSTEAD<br>
- INTERSECT<br>
- INTO<br>
- IS<br>
- ISNULL<br>
- JOIN<br>
- KEY<br>
- LEFT<br>
- LIKE<br>
- LIMIT<br>
- MATCH<br>
- </td><td valign="top" align="left" width="20%">NATURAL<br>
- NO<br>
- NOT<br>
- NOTNULL<br>
- NULL<br>
- OF<br>
- OFFSET<br>
- ON<br>
- OR<br>
- ORDER<br>
- OUTER<br>
- PLAN<br>
- PRAGMA<br>
- PRIMARY<br>
- QUERY<br>
- RAISE<br>
- REFERENCES<br>
- REGEXP<br>
- REINDEX<br>
- RELEASE<br>
- RENAME<br>
- REPLACE<br>
- RESTRICT<br>
- RIGHT<br>
- ROLLBACK<br>
- </td><td valign="top" align="left" width="20%">ROW<br>
- SAVEPOINT<br>
- SELECT<br>
- SET<br>
- TABLE<br>
- TEMP<br>
- TEMPORARY<br>
- THEN<br>
- TO<br>
- TRANSACTION<br>
- TRIGGER<br>
- UNION<br>
- UNIQUE<br>
- UPDATE<br>
- USING<br>
- VACUUM<br>
- VALUES<br>
- VIEW<br>
- VIRTUAL<br>
- WHEN<br>
- WHERE<br>
- </td></tr></table></blockquote>