<HTML
><HEAD
><TITLE
>SQL 关键字</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.64
"><LINK
REV="MADE"
HREF="mailto:pgsql-docs@postgresql.org"><LINK
REL="HOME"
TITLE="PostgreSQL 8.0.0 文档"
HREF="index.html"><LINK
REL="UP"
TITLE="附录"
HREF="appendixes.html"><LINK
REL="PREVIOUS"
TITLE="日期单位的历史"
HREF="datetime-units-history.html"><LINK
REL="NEXT"
TITLE="SQL 兼容性"
HREF="features.html"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="stylesheet.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html; charset=ISO-8859-1"><META
NAME="creation"
CONTENT="2005-03-21T03:47:00"></HEAD
><BODY
CLASS="APPENDIX"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="5"
ALIGN="center"
VALIGN="bottom"
>PostgreSQL 8.0.0 文档</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
HREF="datetime-units-history.html"
>Prev</A
></TD
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="top"
><A
HREF="datetime-appendix.html"
>Fast Backward</A
></TD
><TD
WIDTH="60%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="top"
><A
HREF="features.html"
>Fast Forward</A
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="top"
><A
HREF="features.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="APPENDIX"
><H1
><A
NAME="SQL-KEYWORDS-APPENDIX"
>Appendix C. <SPAN
CLASS="ACRONYM"
>SQL</SPAN
> 关键字</A
></H1
><A
NAME="AEN60727"
></A
><P
> <A
HREF="sql-keywords-appendix.html#KEYWORDS-TABLE"
>Table C-1</A
> 列出了所由在 SQL 标准和
<SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> 8.0.0 里是关键字的记号。
你可以在 <A
HREF="sql-syntax.html#SQL-SYNTAX-IDENTIFIERS"
>Section 4.1.1</A
> 里找到相关的背景信息。
</P
><P
> SQL 里有<I
CLASS="FIRSTTERM"
>保留字(保留)</I
>和
<I
CLASS="FIRSTTERM"
>非保留字</I
>之分。根据标准,
保留字是那些真正的关键字;我们决不能用它们做标识符。
非保留字只是在特定的环境里有特殊的含义,而在其它环境里是可以用做标识符的。
大多数非保留字实际上都是 SQL 声明的内建表和函数的名字。
而非保留字的概念实质上只是用来表示在某些场合里,在一个字上附加了一些预先定义的含义。
</P
><P
> 在 <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> 里,分析器的工作有些复杂。
因为存在好几种不同范畴的记号,
从那些永远不可能用做标识符的到那些和普通标识符比较起来在分析器里完全没有任何特殊状态的。
(后者通常都是 SQL 声明的函数。)即使保留关键字在 <SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
>
里都没有完全保留,而是可以用做字段标签(比如,<TT
CLASS="LITERAL"
>SELECT 55 AS CHECK</TT
> —
虽然 <TT
CLASS="TOKEN"
>CHECK</TT
>是保留关键字。)
</P
><P
> 在 <A
HREF="sql-keywords-appendix.html#KEYWORDS-TABLE"
>Table C-1</A
> 里用于
<SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> 的字段里,
我们把那些分析器明确知道,但是可以在大多数需要标识符的环境里用做标识符的关键字分类为<SPAN
CLASS="QUOTE"
>"非保留"</SPAN
>。
否则一些关键字就是非保留的,因此不能用做函数或者数据类型名字,
并且相应做了标记。(大多数这类记号代表有特殊语法的内置函数或者数据类型。
我们仍然可以使用这些函数或者类型,但是用户不能重新定义它们。)
标记为<SPAN
CLASS="QUOTE"
>"保留"</SPAN
>都是那些只允许出现在 <SPAN
CLASS="QUOTE"
>"AS"</SPAN
>
字段标签名里面的(以及可能还有很少的几个其它环境)的记号。
有些保留关键字还可以用做函数的名字;这点在表中也显示出来了。
</P
><P
> 一条通用的规则是:如果你看到任何古怪的分析错,
说命令包含任何这里列出的关键字做标识符,
那么你可以先试试用双引号把那个标识符括起来,看看问题是否消失。
</P
><P
> 在开始学习 <A
HREF="sql-keywords-appendix.html#KEYWORDS-TABLE"
>Table C-1</A
> 之前我们还要理解的一件重要的事情是:一个关键字在
<SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
> 中没有保留并不意味着与该关键字相关的特性没有实现。
同样,关键字的存在并不表明某个特性就存在。
</P
><DIV
CLASS="TABLE"
><A
NAME="KEYWORDS-TABLE"
></A
><P
><B
>Table C-1. <SPAN
CLASS="ACRONYM"
>SQL</SPAN
> 关键字</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><THEAD
><TR
><TH
ALIGN="LEFT"
VALIGN="TOP"
>关键字</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
><SPAN
CLASS="PRODUCTNAME"
>PostgreSQL</SPAN
></TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>SQL:2003</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>SQL:1999</TH
><TH
ALIGN="LEFT"
VALIGN="TOP"
>SQL-92</TH
></TR
></THEAD
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>A</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ABORT</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ABS</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ABSOLUTE</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ACCESS</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ACTION</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ADA</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ADD</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ADMIN</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>AFTER</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>AGGREGATE</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ALIAS</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ALL</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ALLOCATE</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>保留</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ALSO</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
> </TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="TOKEN"
>ALTER</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>非保留</TD
><T