PostgreSQL | ||
---|---|---|
上一页 | 下一页 |
描述通用的 SQL 语法。SQL 操作数据集。该语言由多种多样的 关键字 组成。它允许使用算术和过程表达式。我们将在本章讨论这个问题;随后的章节将包括一些关于数据类型,函数和操作符的细节。
Postgres 实现了一个扩展了的 SQL92 和 SQL3 语言的子集。部分由于 Postgres 的可扩展性,一些语言元素在 Postgres 里的实现不象在语言标准里期望的那样严格(限制)。
关于SQL92 和 SQL3 关键字的信息源自 Date and Darwen, 1997。
小技巧: 如果用双引号包围(“象这样!”),任何字串都可以声明为标识。这时我们要仔细一些,因为这样做一个标识将是大小写敏感的并且将保有嵌入的空白或其他特殊字符。下面是 Postgres 特有的保留关键字,它们既不是 SQL92 也不是 SQL3 保留字。这些字允许做为字段标记出现,但不允许用作标识:
ABORT ANALYZE BINARY CLUSTER CONSTRAINT COPY DO EXPLAIN EXTEND LISTEN LOAD LOCK MOVE NEW NONE NOTIFY OFFSET RESET SETOF SHOW UNLISTEN UNTIL VACUUM VERBOSE下面是 Postgres 的保留关键字,同时也是 SQL92 或SQL3 的保留字。这些字允许做为字段标记出现,但不允许用作标识:
ALL ANY ASC BETWEEN BIT BOTH CASE CAST CHAR CHARACTER CHECK COALESCE COLLATE COLUMN CONSTRAINT CROSS CURRENT CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER DEC DECIMAL DEFAULT DESC DISTINCT ELSE END EXCEPT EXISTS EXTRACT FALSE FLOAT FOR FOREIGN FROM FULL GLOBAL GROUP HAVING IN INNER INTERSECT INTO IS JOIN LEADING LEFT LIKE LOCAL NATURAL NCHAR NOT NULL NULLIF NUMERIC ON OR ORDER OUTER OVERLAPS POSITION PRECISION PRIMARY PUBLIC REFERENCES RIGHT SELECT SESSION_USER SOME SUBSTRING TABLE THEN TO TRANSACTION TRIM TRUE UNION UNIQUE USER VARCHAR WHEN WHERE下面是 Postgres 的保留关键字,同时也是 SQL92 或SQL3 的保留字:
ADD ALTER AND AS BEGIN BY CASCADE CLOSE COMMIT CREATE CURSOR DECLARE DEFAULT DELETE DESC DISTINCT DROP EXECUTE EXISTS EXTRACT FETCH FLOAT FOR FROM FULL GRANT HAVING IN INNER INSERT INTERVAL INTO IS JOIN LEADING LEFT LIKE LOCAL NAMES NATIONAL NATURAL NCHAR NO NOT NULL ON OR OUTER PARTIAL PRIMARY PRIVILEGES PROCEDURE PUBLIC REFERENCES REVOKE RIGHT ROLLBACK SELECT SET SUBSTRING TO TRAILING TRIM UNION UNIQUE UPDATE USING VALUES VARCHAR VARYING VIEW WHERE WITH WORK下面的是 SQL92 的保留字但不是 Postgres 的保留字,不过如果你把它们做函数名用,就总是会被转换成函数 CHAR_LENGTH:
CHARACTER_LENGTH下面的是 SQL92 或 SQL3 的保留字但不是 Postgres 的保留字,不过如果你把它们用做类型名,就总是会转换成一个可替换的本机类型:
BOOLEAN DOUBLE FLOAT INT INTEGER INTERVAL REAL SMALLINT下面的不是任何类型的关键字,不过如果你在一个类型名的环境中使用它们,它们就会转换成一个Postgres 本机类型,而在一个函数名的环境中使用它们,它们会被转换成一个本机函数:
DATETIME TIMESPAN(相应地转换成 TIMESTAMP 和 INTERVAL)。这个特性用于帮助向 v7.0 转换,将在下一个完全发布版本(估计是 v7.1)删除。
下面的要么是 SQL92 要么是 SQL3 的保留字,但不是 Postgres 的保留字。这些字在写作本章(v7.0)的时候在 Postgres 里面没有使用限制,但是未来有可能成为保留字:
注意: 这里面有些关键字代表 SQL92 里的函数。这些函数在 Postgres 里面有定义。但是分析器不认为(函数)名字是关键字,因而它们可以用在其他环境里。
ALLOCATE ARE ASSERTION AT AUTHORIZATION AVG BIT_LENGTH CASCADED CATALOG CHAR_LENGTH CHARACTER_LENGTH COLLATION CONNECT CONNECTION CONTINUE CONVERT CORRESPONDING COUNT CURRENT_SESSION DATE DEALLOCATE DEC DESCRIBE DESCRIPTOR DIAGNOSTICS DISCONNECT DOMAIN ESCAPE EXCEPT EXCEPTION EXEC EXTERNAL FIRST FOUND GET GO GOTO IDENTITY INDICATOR INPUT INTERSECT LAST LOWER MAX MIN MODULE OCTET_LENGTH OPEN OUTPUT OVERLAPS PREPARE PRESERVE ROWS SCHEMA SECTION SESSION SIZE SOME SQL SQLCODE SQLERROR SQLSTATE SUM SYSTEM_USER TEMPORARY TRANSLATE TRANSLATION UNKNOWN UPPER USAGE VALUE WHENEVER WRITE
下面是 Postgres 非保留关键字,它们既不是 SQL92 也不是 SQL3 的非保留关键字:
ACCESS AFTER AGGREGATE BACKWARD BEFORE CACHE COMMENT CREATEDB CREATEUSER CYCLE DATABASE DELIMITERS EACH ENCODING EXCLUSIVE FORCE FORWARD FUNCTION HANDLER INCREMENT INDEX INHERITS INSENSITIVE INSTEAD ISNULL LANCOMPILER LOCATION MAXVALUE MINVALUE MODE NOCREATEDB NOCREATEUSER NOTHING NOTIFY NOTNULL OIDS OPERATOR PASSWORD PROCEDURAL RECIPE REINDEX RENAME RETURNS ROW RULE SEQUENCE SERIAL SHARE START STATEMENT STDIN STDOUT TEMP TRUSTED UNLISTEN UNTIL VALID VERSION下面是 Postgres 的非保留关键字,但却是 SQL92 或SQL3 的保留关键字:
ABSOLUTE ACTION CONSTRAINTS DAY DEFERRABLE DEFERRED HOUR IMMEDIATE INITIALLY INSENSITIVE ISOLATION KEY LANGUAGE LEVEL MATCH MINUTE MONTH NEXT OF ONLY OPTION PENDANT PRIOR PRIVILEGES READ RELATIVE RESTRICT SCROLL SECOND TIME TIMESTAMP TIMEZONE_HOUR TIMEZONE_MINUTE TRIGGER YEAR ZONE下面的是 Postgres 的非保留关键字,同时也是 SQL92 或 SQL3的非保留关键字:
COMMITTED SERIALIZABLE TYPE下面的要么是 SQL92 要么是 SQL3 的非保留关键字,但不是任何类型的 Postgres 的保留字:
ADA C CATALOG_NAME CHARACTER_SET_CATALOG CHARACTER_SET_NAME CHARACTER_SET_SCHEMA CLASS_ORIGIN COBOL COLLATION_CATALOG COLLATION_NAME COLLATION_SCHEMA COLUMN_NAME COMMAND_FUNCTION CONDITION_NUMBER CONNECTION_NAME CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_SCHEMA CURSOR_NAME DATA DATE_TIME_INTERVAL_CODE DATE_TIME_INTERVAL_PRECISION DYNAMIC_FUNCTION FORTRAN LENGTH MESSAGE_LENGTH MESSAGE_OCTET_LENGTH MORE MUMPS NAME NULLABLE NUMBER PAD PASCAL PLI REPEATABLE RETURNED_LENGTH RETURNED_OCTET_LENGTH RETURNED_SQLSTATE ROW_COUNT SCALE SCHEMA_NAME SERVER_NAME SPACE SUBCLASS_ORIGIN TABLE_NAME UNCOMMITTED UNNAMED
上一页 | 首页 | 下一页 |
版权和商标 | 开头 | 注释 |