PostgreSQL - 语法

  • 简述

    本章提供了 PostgreSQL SQL 命令的列表,以及每个命令的精确语法规则。这组命令取自 psql 命令行工具。现在您已经安装了 Postgres,打开 psql 为 -
    Program Files → PostgreSQL 9.2 → SQL Shell(psql).
    使用 psql,您可以使用 \help 命令生成完整的命令列表。对于特定命令的语法,请使用以下命令 -
    
     postgres-# \help <command_name>
    
  • SQL 语句

    SQL 语句由标记组成,其中每个标记可以表示关键字、标识符、带引号的标识符、常量或特殊字符符号。下表使用一个简单的 SELECT 语句来说明一个基本但完整的 SQL 语句及其组件。
    SELECT id, name FROM states
    Token Type 关键词 标识符 关键词 标识符
    描述 命令 ID 和名称列 子句 表名
  • PostgreSQL SQL 命令

    ABORT

    中止当前事务。
    
    ABORT [ WORK | TRANSACTION ]
    

    ALTER AGGREGATE

    更改聚合函数的定义。
    
    ALTER AGGREGATE name ( type ) RENAME TO new_name
    ALTER AGGREGATE name ( type ) OWNER TO new_owner
    

    ALTER CONVERSION

    更改转换的定义。
    
    ALTER CONVERSION name RENAME TO new_name
    ALTER CONVERSION name OWNER TO new_owner
    

    ALTER DATABASE

    更改数据库特定参数。
    
    ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT }
    ALTER DATABASE name RESET parameter
    ALTER DATABASE name RENAME TO new_name
    ALTER DATABASE name OWNER TO new_owner
    

    ALTER DOMAIN

    更改域特定参数的定义。
    
    ALTER DOMAIN name { SET DEFAULT expression | DROP DEFAULT }
    ALTER DOMAIN name { SET | DROP } NOT NULL
    ALTER DOMAIN name ADD domain_constraint
    ALTER DOMAIN name DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
    ALTER DOMAIN name OWNER TO new_owner
    

    ALTER FUNCTION

    更改函数的定义。
    
    ALTER FUNCTION name ( [ type [, ...] ] ) RENAME TO new_name
    ALTER FUNCTION name ( [ type [, ...] ] ) OWNER TO new_owner
    

    ALTER GROUP

    更改用户组。
    
    ALTER GROUP groupname ADD USER username [, ... ]
    ALTER GROUP groupname DROP USER username [, ... ]
    ALTER GROUP groupname RENAME TO new_name
    

    ALTER INDEX

    更改索引的定义。
    
    ALTER INDEX name OWNER TO new_owner
    ALTER INDEX name SET TABLESPACE indexspace_name
    ALTER INDEX name RENAME TO new_name
    

    ALTER LANGUAGE

    更改程序语言的定义。
    
    ALTER LANGUAGE name RENAME TO new_name
    

    ALTER OPERATOR

    更改运算符的定义。
    
    ALTER OPERATOR name ( { lefttype | NONE }, { righttype | NONE } )
    OWNER TO new_owner
    

    ALTER OPERATOR CLASS

    更改运算符类的定义。
    
    ALTER OPERATOR CLASS name USING index_method RENAME TO new_name
    ALTER OPERATOR CLASS name USING index_method OWNER TO new_owner
    

    ALTER SCHEMA

    更改模式的定义。
    
    ALTER SCHEMA name RENAME TO new_name
    ALTER SCHEMA name OWNER TO new_owner
    

    ALTER SEQUENCE

    更改序列生成器的定义。
    
    ALTER SEQUENCE name [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ]
    [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ RESTART [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
    

    ALTER TABLE

    更改表的定义。
    
    ALTER TABLE [ ONLY ] name [ * ]
    action [, ... ]
    ALTER TABLE [ ONLY ] name [ * ]
    RENAME [ COLUMN ] column TO new_column
    ALTER TABLE name
    RENAME TO new_name
    
    行动是以下几行之一-
    
    ADD [ COLUMN ] column_type [ column_constraint [ ... ] ]
    DROP [ COLUMN ] column [ RESTRICT | CASCADE ]
    ALTER [ COLUMN ] column TYPE type [ USING expression ]
    ALTER [ COLUMN ] column SET DEFAULT expression
    ALTER [ COLUMN ] column DROP DEFAULT
    ALTER [ COLUMN ] column { SET | DROP } NOT NULL
    ALTER [ COLUMN ] column SET STATISTICS integer
    ALTER [ COLUMN ] column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
    ADD table_constraint
    DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
    CLUSTER ON index_name
    SET WITHOUT CLUSTER
    SET WITHOUT OIDS
    OWNER TO new_owner
    SET TABLESPACE tablespace_name
    

    ALTER TABLESPACE

    更改表空间的定义。
    
    ALTER TABLESPACE name RENAME TO new_name
    ALTER TABLESPACE name OWNER TO new_owner
    

    ALTER TRIGGER

    更改触发器的定义。
    
    ALTER TRIGGER name ON table RENAME TO new_name
    

    ALTER TYPE

    更改类型的定义。
    
    ALTER TYPE name OWNER TO new_owner
    

    ALTER USER

    更改数据库用户帐户。
    
    ALTER USER name [ [ WITH ] option [ ... ] ]
    ALTER USER name RENAME TO new_name
    ALTER USER name SET parameter { TO | = } { value | DEFAULT }
    ALTER USER name RESET parameter
    
    选项可以在哪里-
    
    [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER
    | VALID UNTIL 'abstime'
    

    ANALYZE

    收集有关数据库的统计信息。
    
    ANALYZE [ VERBOSE ] [ table [ (column [, ...] ) ] ]
    

    BEGIN

    启动一个事务块。
    
    BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
    
    其中transaction_mode是以下之一 -
    
    ISOLATION LEVEL { 
       SERIALIZABLE | REPEATABLE READ | READ COMMITTED
       | READ UNCOMMITTED
    }
    READ WRITE | READ ONLY
    

    CHECKPOINT

    强制事务日志检查点。
    
    CHECKPOINT
    

    CLOSE

    关闭游标。
    
    CLOSE name
    

    CLUSTER

    根据索引对表进行聚类。
    
    CLUSTER index_name ON table_name
    CLUSTER table_name
    CLUSTER
    

    COMMENT

    定义或更改对象的注释。
    
    COMMENT ON {
       TABLE object_name |
       COLUMN table_name.column_name |
       AGGREGATE agg_name (agg_type) |
       CAST (source_type AS target_type) |
       CONSTRAINT constraint_name ON table_name |
       CONVERSION object_name |
       DATABASE object_name |
       DOMAIN object_name |
       FUNCTION func_name (arg1_type, arg2_type, ...) |
       INDEX object_name |
       LARGE OBJECT large_object_oid |
       OPERATOR op (left_operand_type, right_operand_type) |
       OPERATOR CLASS object_name USING index_method |
       [ PROCEDURAL ] LANGUAGE object_name |
       RULE rule_name ON table_name |
       SCHEMA object_name |
       SEQUENCE object_name |
       TRIGGER trigger_name ON table_name |
       TYPE object_name |
       VIEW object_name
    } 
    IS 'text'
    

    COMMIT

    提交当前事务。
    
    COMMIT [ WORK | TRANSACTION ]
    

    COPY

    在文件和表之间复制数据。
    
    COPY table_name [ ( column [, ...] ) ]
    FROM { 'filename' | STDIN }
    [ WITH ]
    [ BINARY ]
    [ OIDS ]
    [ DELIMITER [ AS ] 'delimiter' ]
    [ NULL [ AS ] 'null string' ]
    [ CSV [ QUOTE [ AS ] 'quote' ]
    [ ESCAPE [ AS ] 'escape' ]
    [ FORCE NOT NULL column [, ...] ]
    COPY table_name [ ( column [, ...] ) ]
    TO { 'filename' | STDOUT }
    [ [ WITH ]
    [ BINARY ]
    [ OIDS ]
    [ DELIMITER [ AS ] 'delimiter' ]
    [ NULL [ AS ] 'null string' ]
    [ CSV [ QUOTE [ AS ] 'quote' ]
    [ ESCAPE [ AS ] 'escape' ]
    [ FORCE QUOTE column [, ...] ]
    

    CREATE AGGREGATE

    定义一个新的聚合函数。
    
    CREATE AGGREGATE name (
       BASETYPE = input_data_type,
       SFUNC = sfunc,
       STYPE = state_data_type
       [, FINALFUNC = ffunc ]
       [, INITCOND = initial_condition ]
    )
    

    CREATE CAST

    定义一个新的演员表。
    
    CREATE CAST (source_type AS target_type)
    WITH FUNCTION func_name (arg_types)
    [ AS ASSIGNMENT | AS IMPLICIT ]
    CREATE CAST (source_type AS target_type)
    WITHOUT FUNCTION
    [ AS ASSIGNMENT | AS IMPLICIT ]
    

    CREATE CONSTRAINT TRIGGER

    定义一个新的约束触发器。
    
    CREATE CONSTRAINT TRIGGER name
    AFTER events ON
    table_name constraint attributes
    FOR EACH ROW EXECUTE PROCEDURE func_name ( args )
    

    CREATE CONVERSION

    定义一个新的转换。
    
    CREATE [DEFAULT] CONVERSION name
    FOR source_encoding TO dest_encoding FROM func_name
    

    CREATE DATABASE

    创建一个新的数据库。
    
    CREATE DATABASE name
    [ [ WITH ] [ OWNER [=] db_owner ]
       [ TEMPLATE [=] template ]
       [ ENCODING [=] encoding ]
       [ TABLESPACE [=] tablespace ] 
    ]
    

    CREATE DOMAIN

    定义一个新域。
    
    CREATE DOMAIN name [AS] data_type
    [ DEFAULT expression ]
    [ constraint [ ... ] ]
    
    约束-
    
    [ CONSTRAINT constraint_name ]
    { NOT NULL | NULL | CHECK (expression) }
    

    CREATE FUNCTION

    定义一个新函数。
    
    CREATE [ OR REPLACE ] FUNCTION name ( [ [ arg_name ] arg_type [, ...] ] )
    RETURNS ret_type
    { LANGUAGE lang_name
       | IMMUTABLE | STABLE | VOLATILE
       | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
       | [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
       | AS 'definition'
       | AS 'obj_file', 'link_symbol'
    } ...
    [ WITH ( attribute [, ...] ) ]
    

    CREATE GROUP

    定义一个新的用户组。
    
    CREATE GROUP name [ [ WITH ] option [ ... ] ]
    Where option can be:
    SYSID gid
    | USER username [, ...]
    

    CREATE INDEX

    定义一个新的索引。
    
    CREATE [ UNIQUE ] INDEX name ON table [ USING method ]
    ( { column | ( expression ) } [ opclass ] [, ...] )
    [ TABLESPACE tablespace ]
    [ WHERE predicate ]
    

    CREATE LANGUAGE

    定义一种新的程序语言。
    
    CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
    HANDLER call_handler [ VALIDATOR val_function ]
    

    CREATE OPERATOR

    定义一个新的运算符。
    
    CREATE OPERATOR name (
       PROCEDURE = func_name
       [, LEFTARG = left_type ] [, RIGHTARG = right_type ]
       [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
       [, RESTRICT = res_proc ] [, JOIN = join_proc ]
       [, HASHES ] [, MERGES ]
       [, SORT1 = left_sort_op ] [, SORT2 = right_sort_op ]
       [, LTCMP = less_than_op ] [, GTCMP = greater_than_op ]
    )
    

    CREATE OPERATOR CLASS

    定义一个新的操作符类。
    
    CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type
    USING index_method AS
    { OPERATOR strategy_number operator_name [ ( op_type, op_type ) ] [ RECHECK ]
       | FUNCTION support_number func_name ( argument_type [, ...] )
       | STORAGE storage_type
    } [, ... ]
    

    CREATE RULE

    定义新的重写规则。
    
    CREATE [ OR REPLACE ] RULE name AS ON event
    TO table [ WHERE condition ]
    DO [ ALSO | INSTEAD ] { NOTHING | command | ( command ; command ... ) }
    

    CREATE SCHEMA

    定义一个新模式。
    
    CREATE SCHEMA schema_name
    [ AUTHORIZATION username ] [ schema_element [ ... ] ]
    CREATE SCHEMA AUTHORIZATION username
    [ schema_element [ ... ] ]
    

    CREATE SEQUENCE

    定义一个新的序列生成器。
    
    CREATE [ TEMPORARY | TEMP ] SEQUENCE name
    [ INCREMENT [ BY ] increment ]
    [ MINVALUE minvalue | NO MINVALUE ]
    [ MAXVALUE maxvalue | NO MAXVALUE ]
    [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
    

    CREATE TABLE

    定义一个新表。
    
    CREATE [ [ GLOBAL | LOCAL ] { 
       TEMPORARY | TEMP } ] TABLE table_name ( { 
          column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ]
          | table_constraint
          | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] 
       } [, ... ]
    )
    [ INHERITS ( parent_table [, ... ] ) ]
    [ WITH OIDS | WITHOUT OIDS ]
    [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
    [ TABLESPACE tablespace ]
    
    其中column_constraint是 -
    
    [ CONSTRAINT constraint_name ] { 
       NOT NULL |
       NULL |
       UNIQUE [ USING INDEX TABLESPACE tablespace ] |
       PRIMARY KEY [ USING INDEX TABLESPACE tablespace ] |
       CHECK (expression) |
       REFERENCES ref_table [ ( ref_column ) ]
       [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
       [ ON DELETE action ] [ ON UPDATE action ] 
    }
    [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
    
    table_constraint是 -
    
    [ CONSTRAINT constraint_name ]
    { UNIQUE ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
    PRIMARY KEY ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
    CHECK ( expression ) |
    FOREIGN KEY ( column_name [, ... ] )
    REFERENCES ref_table [ ( ref_column [, ... ] ) ]
    [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
    [ ON DELETE action ] [ ON UPDATE action ] }
    [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]
    

    CREATE TABLE AS

    根据查询结果定义一个新表。
    
    CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name
    [ (column_name [, ...] ) ] [ [ WITH | WITHOUT ] OIDS ]
    AS query
    

    CREATE TABLESPACE

    定义一个新的表空间。
    
    CREATE TABLESPACE tablespace_name [ OWNER username ] LOCATION 'directory'
    

    CREATE TRIGGER

    定义一个新的触发器。
    
    CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
    ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
    EXECUTE PROCEDURE func_name ( arguments )
    

    CREATE TYPE

    定义一个新的数据类型。
    
    CREATE TYPE name AS
    ( attribute_name data_type [, ... ] )
    CREATE TYPE name (
    INPUT = input_function,
    OUTPUT = output_function
    [, RECEIVE = receive_function ]
    [, SEND = send_function ]
    [, ANALYZE = analyze_function ]
    [, INTERNALLENGTH = { internal_length | VARIABLE } ]
    [, PASSEDBYVALUE ]
    [, ALIGNMENT = alignment ]
    [, STORAGE = storage ]
    [, DEFAULT = default ]
    [, ELEMENT = element ]
    [, DELIMITER = delimiter ]
    )
    

    CREATE USER

    定义一个新的数据库用户帐户。
    
    CREATE USER name [ [ WITH ] option [ ... ] ]
    
    选项可以在哪里-
    
    SYSID uid
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER
    | IN GROUP group_name [, ...]
    | VALID UNTIL 'abs_time'
    

    CREATE VIEW

    定义一个新视图。
    
    CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query
    

    DEALLOCATE

    取消分配准备好的语句。
    
    DEALLOCATE [ PREPARE ] plan_name
    

    DECLARE

    定义一个游标。
    
    DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
    CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
    [ FOR { READ ONLY | UPDATE [ OF column [, ...] ] } ]
    

    DELETE

    删除表的行。
    
    DELETE FROM [ ONLY ] table [ WHERE condition ]
    

    DROP AGGREGATE

    删除聚合函数。
    
    DROP AGGREGATE name ( type ) [ CASCADE | RESTRICT ]
    

    DROP CAST

    移除演员表。
    
    DROP CAST (source_type AS target_type) [ CASCADE | RESTRICT ]
    

    DROP CONVERSION

    删除转换。
    
    DROP CONVERSION name [ CASCADE | RESTRICT ]
    

    DROP DATABASE

    删除数据库。
    
    DROP DATABASE name
    

    DROP DOMAIN

    删除域。
    
    DROP DOMAIN name [, ...] [ CASCADE | RESTRICT ]
    

    DROP FUNCTION

    删除一个函数。
    
    DROP FUNCTION name ( [ type [, ...] ] ) [ CASCADE | RESTRICT ]
    

    DROP GROUP

    删除用户组。
    
    DROP GROUP name
    

    DROP INDEX

    删除索引。
    
    DROP INDEX name [, ...] [ CASCADE | RESTRICT ]
    

    DROP LANGUAGE

    删除程序语言。
    
    DROP [ PROCEDURAL ] LANGUAGE name [ CASCADE | RESTRICT ]
    

    DROP OPERATOR

    删除运算符。
    
    DROP OPERATOR name ( { left_type | NONE }, { right_type | NONE } )
    [ CASCADE | RESTRICT ]
    

    DROP OPERATOR CLASS

    删除一个运算符类。
    
    DROP OPERATOR CLASS name USING index_method [ CASCADE | RESTRICT ]
    

    DROP RULE

    删除重写规则。
    
    DROP RULE name ON relation [ CASCADE | RESTRICT ]
    

    DROP SCHEMA

    删除架构。
    
    DROP SCHEMA name [, ...] [ CASCADE | RESTRICT ]
    

    DROP SEQUENCE

    删除一个序列。
    
    DROP SEQUENCE name [, ...] [ CASCADE | RESTRICT ]
    

    DROP TABLE

    删除一个表。
    
    DROP TABLE name [, ...] [ CASCADE | RESTRICT ]
    

    DROP TABLESPACE

    删除一个表空间。
    
    DROP TABLESPACE tablespace_name
    

    DROP TRIGGER

    移除触发器。
    
    DROP TRIGGER name ON table [ CASCADE | RESTRICT ]
    

    DROP TYPE

    删除数据类型。
    
    DROP TYPE name [, ...] [ CASCADE | RESTRICT ]
    

    DROP USER

    删除数据库用户帐户。
    
    DROP USER name
    

    DROP VIEW

    删除视图。
    
    DROP VIEW name [, ...] [ CASCADE | RESTRICT ]
    

    END

    提交当前事务。
    
    END [ WORK | TRANSACTION ]
    

    EXECUTE

    执行准备好的语句。
    
    EXECUTE plan_name [ (parameter [, ...] ) ]
    

    EXPLAIN

    显示语句的执行计划。
    
    EXPLAIN [ ANALYZE ] [ VERBOSE ] statement
    

    FETCH

    使用游标从查询中检索行。
    
    FETCH [ direction { FROM | IN } ] cursor_name
    
    方向可以是空的或以下之一 -
    
    NEXT
    PRIOR
    FIRST
    LAST
    ABSOLUTE count
    RELATIVE count
    count
    ALL
    FORWARD
    FORWARD count
    FORWARD ALL
    BACKWARD
    BACKWARD count
    BACKWARD ALL
    

    GRANT

    定义访问权限。
    
    GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
    [,...] | ALL [ PRIVILEGES ] }
    ON [ TABLE ] table_name [, ...]
    TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
    GRANT { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
    ON DATABASE db_name [, ...]
    TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
    GRANT { CREATE | ALL [ PRIVILEGES ] }
    ON TABLESPACE tablespace_name [, ...]
    TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
    GRANT { EXECUTE | ALL [ PRIVILEGES ] }
    ON FUNCTION func_name ([type, ...]) [, ...]
    TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
    GRANT { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE lang_name [, ...]
    TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
    GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON SCHEMA schema_name [, ...]
    TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
    

    INSERT

    在表中创建新行。
    
    INSERT INTO table [ ( column [, ...] ) ]
    { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | query }
    

    LISTEN

    收听通知。
    
    LISTEN name
    

    LOAD

    加载或重新加载共享库文件。
    
    LOAD 'filename'
    

    LOCK

    锁定一张桌子。
    
    LOCK [ TABLE ] name [, ...] [ IN lock_mode MODE ] [ NOWAIT ]
    
    其中lock_mode是其中之一 -
    
    ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE
    | SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE
    

    MOVE

    定位光标。
    
    MOVE [ direction { FROM | IN } ] cursor_name
    

    NOTIFY

    生成通知。
    
    NOTIFY name
    

    PREPARE

    准备执行语句。
    
    PREPARE plan_name [ (data_type [, ...] ) ] AS statement
    

    REINDEX

    重建索引。
    
    REINDEX { DATABASE | TABLE | INDEX } name [ FORCE ]
    

    RELEASE SAVEPOINT

    销毁先前定义的保存点。
    
    RELEASE [ SAVEPOINT ] savepoint_name
    

    RESET

    将运行时参数的值恢复为默认值。
    
    RESET name
    RESET ALL
    

    REVOKE

    删除访问权限。
    
    REVOKE [ GRANT OPTION FOR ]
    { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
    [,...] | ALL [ PRIVILEGES ] }
    ON [ TABLE ] table_name [, ...]
    FROM { username | GROUP group_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]
    REVOKE [ GRANT OPTION FOR ]
    { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
    ON DATABASE db_name [, ...]
    FROM { username | GROUP group_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]
    REVOKE [ GRANT OPTION FOR ]
    { CREATE | ALL [ PRIVILEGES ] }
    ON TABLESPACE tablespace_name [, ...]
    FROM { username | GROUP group_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]
    REVOKE [ GRANT OPTION FOR ]
    { EXECUTE | ALL [ PRIVILEGES ] }
    ON FUNCTION func_name ([type, ...]) [, ...]
    FROM { username | GROUP group_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]
    REVOKE [ GRANT OPTION FOR ]
    { USAGE | ALL [ PRIVILEGES ] }
    ON LANGUAGE lang_name [, ...]
    FROM { username | GROUP group_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]
    REVOKE [ GRANT OPTION FOR ]
    { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
    ON SCHEMA schema_name [, ...]
    FROM { username | GROUP group_name | PUBLIC } [, ...]
    [ CASCADE | RESTRICT ]
    

    ROLLBACK

    中止当前事务。
    
    ROLLBACK [ WORK | TRANSACTION ]
    

    ROLLBACK TO SAVEPOINT

    回滚到保存点。
    
    ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] savepoint_name
    

    SAVEPOINT

    在当前事务中定义一个新的保存点。
    
    SAVEPOINT savepoint_name
    

    SELECT

    从表或视图中检索行。
    
    SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
    * | expression [ AS output_name ] [, ...]
    [ FROM from_item [, ...] ]
    [ WHERE condition ]
    [ GROUP BY expression [, ...] ]
    [ HAVING condition [, ...] ]
    [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
    [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
    [ LIMIT { count | ALL } ]
    [ OFFSET start ]
    [ FOR UPDATE [ OF table_name [, ...] ] ]
    
    其中from_item可以是以下之一:
    
    [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
    ( select ) [ AS ] alias [ ( column_alias [, ...] ) ]
    function_name ( [ argument [, ...] ] )
    [ AS ] alias [ ( column_alias [, ...] | column_definition [, ...] ) ]
    function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
    from_item [ NATURAL ] join_type from_item
    [ ON join_condition | USING ( join_column [, ...] ) ]
    

    SELECT INTO

    根据查询结果定义一个新表。
    
    SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
    * | expression [ AS output_name ] [, ...]
    INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table
    [ FROM from_item [, ...] ]
    [ WHERE condition ]
    [ GROUP BY expression [, ...] ]
    [ HAVING condition [, ...] ]
    [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ]
    [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
    [ LIMIT { count | ALL } ]
    [ OFFSET start ]
    [ FOR UPDATE [ OF table_name [, ...] ] ]
    

    SET

    更改运行时参数。
    
    SET [ SESSION | LOCAL ] name { TO | = } { value | 'value' | DEFAULT }
    SET [ SESSION | LOCAL ] TIME ZONE { time_zone | LOCAL | DEFAULT }
    

    SET CONSTRAINTS

    为当前事务设置约束检查模式。
    
    SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE }
    

    SET SESSION AUTHORIZATION

    设置会话用户标识和当前会话的当前用户标识。
    
    SET [ SESSION | LOCAL ] SESSION AUTHORIZATION username
    SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
    RESET SESSION AUTHORIZATION
    

    SET TRANSACTION

    设置当前事务的特征。
    
    SET TRANSACTION transaction_mode [, ...]
    SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...]
    
    其中transaction_mode是以下之一 -
    
    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED
    | READ UNCOMMITTED }
    READ WRITE | READ ONLY
    

    SHOW

    显示运行时参数的值。
    
    SHOW name
    SHOW ALL
    

    START TRANSACTION

    启动一个事务块。
    
    START TRANSACTION [ transaction_mode [, ...] ]
    
    其中transaction_mode是以下之一 -
    
    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED
    | READ UNCOMMITTED }
    READ WRITE | READ ONLY
    

    TRUNCATE

    清空一张桌子。
    
    TRUNCATE [ TABLE ] name
    

    UNLISTEN

    停止收听通知。
    
    UNLISTEN { name | * }
    

    UPDATE

    更新表的行。
    
    UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...]
    [ FROM from_list ]
    [ WHERE condition ]
    

    VACUUM

    垃圾收集和可选分析数据库。
    
    VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ]
    VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]