进阶数据库系列(五):PostgreSQL 语法详解

前面介绍了 PostgreSQL 基础概念及安装部署目录结构与配置文件 postgresql.conf常用管理命令访问控制与认证相关的知识点,今天我将详细的为大家介绍 PostgreSQL 语法 相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!

默认情况下 PostgreSQL 安装完成后,自带了一个命令行工具SQL Shell(psql)

Linux 系统可以直接切换到 postgres 用户来开启命令行工具:

#  sudo -i -u postgres
 
 

Windows系统一般在它的安装目录下:

Program Files → PostgreSQL 11.3 → SQL Shell(psql)
 
 

Mac OS我们直接搜索就可以了找到:8e0be1140203f321ffcc667e23e25fa0.png进入命令行工具,我们可以使用 \help 来查看各个命令的语法:

postgres-# \help <command_name>
 
 

例如,我们查看下 select 语句的语法:


 
 
  1. postgres=# \help SELECT
  2. Command:     SELECT
  3. Description: retrieve rows from a table or view
  4. Syntax:
  5. [ WITH [ RECURSIVE ] with_query [, ...] ]
  6. SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
  7.     [ * | expression [ [ AS ] output_name ] [, ...] ]
  8.     [ FROM from_item [, ...] ]
  9.     [ WHERE condition ]
  10.     [ GROUP BY grouping_element [, ...] ]
  11.     [ HAVING condition [, ...] ]
  12.     [ WINDOW window_name AS ( window_definition ) [, ...] ]
  13.     [ { UNION | INTERSECT | EXCEPT } [ ALL | DISTINCT ]  select ]
  14.     [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] [, ...] ]
  15.     [ LIMIT { count | ALL } ]
  16.     [ OFFSET start [ ROW | ROWS ] ]
  17.     [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]
  18.     [ FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE } [ OF table_name [, ...] ] [ NOWAIT | SKIP LOCKED ] [...] ]
  19. #from_item 可以是以下选项之一
  20. [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

SQL 语句

一个 SQL 语句通常包含了关键字、标识符(字段)、常量、特殊符号等,下面是一个简单的 SQL 语句:

SELECT id, name FROM runoob
 
 
7992bd98ac76c591589c06f205f08231.png

PostgreSQL 命令

ABORT

ABORT 用于退出当前事务。

ABORT [ WORK | TRANSACTION ]
 
 
ALTER AGGREGATE

修改一个聚集函数的定义 。


 
 
  1. ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) RENAME TO _new_name_
  2. ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) OWNER TO _new_owner_
  3. ALTER AGGREGATE _name_ ( _argtype_ [ , ... ] ) SET SCHEMA _new_schema_
ALTER COLLATION

修改一个排序规则定义 。


 
 
  1. ALTER COLLATION _name_ RENAME TO _new_name_
  2. ALTER COLLATION _name_ OWNER TO _new_owner_
  3. ALTER COLLATION _name_ SET SCHEMA _new_schema_
ALTER CONVERSION

修改一个编码转换的定义。


 
 
  1. ALTER CONVERSION name RENAME TO new_name
  2. ALTER CONVERSION name OWNER TO new_owner
ALTER DATABASE

修改一个数据库。


 
 
  1. ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT }
  2. ALTER DATABASE name RESET parameter
  3. ALTER DATABASE name RENAME TO new_name
  4. ALTER DATABASE name OWNER TO new_owner
ALTER DEFAULT PRIVILEGES

定义默认的访问权限。


 
 
  1. ALTER DEFAULT PRIVILEGES
  2.     [ FOR { ROLE | USER } target_role [, ...] ]
  3.     [ IN SCHEMA schema_name [, ...] ]
  4.     abbreviated_grant_or_revoke
  5. where abbreviated_grant_or_revoke is one of:
  6. GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
  7.     [, ...] | ALL [ PRIVILEGES ] }
  8.     ON TABLES
  9.     TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
  10. ...
ALTER DOMAIN

修改一个域的定义。


 
 
  1. ALTER DOMAIN name { SET DEFAULT expression | DROP DEFAULT }
  2. ALTER DOMAIN name { SET | DROP } NOT NULL
  3. ALTER DOMAIN name ADD domain_constraint
  4. ALTER DOMAIN name DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
  5. ALTER DOMAIN name OWNER TO new_owner
ALTER FUNCTION

修改一个函数的定义。


 
 
  1. ALTER FUNCTION name ( [  type [, ...] ] ) RENAME TO new_name
  2. ALTER FUNCTION name ( [  type [, ...] ] ) OWNER TO new_owner
ALTER GROUP

修改一个用户组。


 
 
  1. ALTER GROUP groupname ADD USER username [, ... ]
  2. ALTER GROUP groupname DROP USER username [, ... ]
  3. ALTER GROUP groupname RENAME TO new_name
ALTER INDEX

修改一个索引的定义。


 
 
  1. ALTER INDEX name OWNER TO new_owner
  2. ALTER INDEX name SET TABLESPACE indexspace_name
  3. ALTER INDEX name RENAME TO new_name
ALTER LANGUAGE

修改一个过程语言的定义。

ALTER LANGUAGE name RENAME TO new_name
 
 
ALTER OPERATOR

改变一个操作符的定义。


 
 
  1. ALTER OPERATOR name ( { lefttype | NONE }, { righttype | NONE } )
  2. OWNER TO new_owner
ALTER OPERATOR CLASS

修改一个操作符表的定义。


 
 
  1. ALTER OPERATOR CLASS name USING index_method RENAME TO new_name
  2. ALTER OPERATOR CLASS name USING index_method OWNER TO new_owner
ALTER SCHEMA

修改一个模式的定义。


 
 
  1. ALTER SCHEMA name RENAME TO new_name
  2. ALTER SCHEMA name OWNER TO new_owner
ALTER SEQUENCE

修改一个序列生成器的定义。


 
 
  1. ALTER SEQUENCE name [ INCREMENT [ BY ] increment ]
  2. [ MINVALUE minvalue | NO MINVALUE ]
  3. [ MAXVALUE maxvalue | NO MAXVALUE ]
  4. [ RESTART [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
ALTER TABLE

修改表的定义。


 
 
  1. ALTER TABLE [ ONLY ] name [ * ]
  2. action [, ... ]
  3. ALTER TABLE [ ONLY ] name [ * ]
  4. RENAME [ COLUMN ] column TO new_column
  5. ALTER TABLE name
  6. RENAME TO new_name

其中 action 可以是以选项之一:


 
 
  1. ADD [ COLUMN ] column_type [ column_constraint [ ... ] ]
  2. DROP [ COLUMN ] column [ RESTRICT | CASCADE ]
  3. ALTER [ COLUMN ] column TYPE  type [ USING expression ]
  4. ALTER [ COLUMN ] column SET DEFAULT expression
  5. ALTER [ COLUMN ] column DROP DEFAULT
  6. ALTER [ COLUMN ] column { SET | DROP } NOT NULL
  7. ALTER [ COLUMN ] column SET STATISTICS integer
  8. ALTER [ COLUMN ] column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
  9. ADD table_constraint
  10. DROP CONSTRAINT constraint_name [ RESTRICT | CASCADE ]
  11. CLUSTER ON index_name
  12. SET WITHOUT CLUSTER
  13. SET WITHOUT OIDS
  14. OWNER TO new_owner
  15. SET TABLESPACE tablespace_name
ALTER TABLESPACE

修改一个表空间的定义。


 
 
  1. ALTER TABLESPACE name RENAME TO new_name
  2. 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

修改数据库用户帐号 。


 
 
  1. ALTER USER name [ [ WITH ] option [ ... ] ]
  2. ALTER USER name RENAME TO new_name
  3. ALTER USER name SET parameter { TO | = } { value | DEFAULT }
  4. ALTER USER name RESET parameter
  5. Where option can be −
  6. [ ENCRYPTED | UNENCRYPTED ] PASSWORD  'password'
  7. | CREATEDB | NOCREATEDB
  8. | CREATEUSER | NOCREATEUSER
  9. | VALID UNTIL  'abstime'
ANALYZE

收集与数据库有关的统计。

ANALYZE [ VERBOSE ] [ table [ (column [, ...] ) ] ]
 
 

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

BEGIN

开始一个事务块。


 
 
  1. BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
  2. transaction_mode 可以是以下选项之一:
  3. ISOLATION LEVEL { 
  4.    SERIALIZABLE | REPEATABLE READ | READ COMMITTED
  5.    | READ UNCOMMITTED
  6. }
  7. READ WRITE | READ ONLY
CHECKPOINT

强制一个事务日志检查点 。

CHECKPOINT
 
 
CLOSE

关闭游标。

CLOSE name
 
 
CLUSTER

根据一个索引对某个表盘簇化排序。


 
 
  1. CLUSTER index_name ON table_name
  2. CLUSTER table_name
  3. CLUSTER
COMMENT

定义或者改变一个对象的注释。


 
 
  1. COMMENT ON {
  2.    TABLE object_name |
  3.    COLUMN table_name.column_name |
  4.    AGGREGATE agg_name (agg_type) |
  5.    CAST (source_type AS target_type) |
  6.    CONSTRAINT constraint_name ON table_name |
  7.    CONVERSION object_name |
  8.    DATABASE object_name |
  9.    DOMAIN object_name |
  10.    FUNCTION func_name (arg1_type, arg2_type, ...) |
  11.    INDEX object_name |
  12.    LARGE OBJECT large_object_oid |
  13.    OPERATOR op (left_operand_type, right_operand_type) |
  14.    OPERATOR CLASS object_name USING index_method |
  15.    [ PROCEDURAL ] LANGUAGE object_name |
  16.    RULE rule_name ON table_name |
  17.    SCHEMA object_name |
  18.    SEQUENCE object_name |
  19.    TRIGGER trigger_name ON table_name |
  20.    TYPE object_name |
  21.    VIEW object_name
  22. IS  'text'
COMMIT

提交当前事务。

COMMIT [ WORK | TRANSACTION ]
 
 
COPY

在表和文件之间拷贝数据。


 
 
  1. COPY table_name [ ( column [, ...] ) ]
  2. FROM {  'filename' | STDIN }
  3. [ WITH ]
  4. [ BINARY ]
  5. [ OIDS ]
  6. [ DELIMITER [ AS ]  'delimiter' ]
  7. [ NULL [ AS ]  'null string' ]
  8. [ CSV [ QUOTE [ AS ]  'quote' ]
  9. [ ESCAPE [ AS ]  'escape' ]
  10. [ FORCE NOT NULL column [, ...] ]
  11. COPY table_name [ ( column [, ...] ) ]
  12. TO {  'filename' | STDOUT }
  13. [ [ WITH ]
  14. [ BINARY ]
  15. [ OIDS ]
  16. [ DELIMITER [ AS ]  'delimiter' ]
  17. [ NULL [ AS ]  'null string' ]
  18. [ CSV [ QUOTE [ AS ]  'quote' ]
  19. [ ESCAPE [ AS ]  'escape' ]
  20. [ FORCE QUOTE column [, ...] ]
CREATE AGGREGATE

定义一个新的聚集函数。


 
 
  1. CREATE AGGREGATE name (
  2.    BASETYPE = input_data_type,
  3.    SFUNC = sfunc,
  4.    STYPE = state_data_type
  5.    [, FINALFUNC = ffunc ]
  6.    [, INITCOND = initial_condition ]
  7. )
CREATE CAST

定义一个用户定义的转换。


 
 
  1. CREATE CAST (source_type AS target_type)
  2. WITH FUNCTION func_name (arg_types)
  3. [ AS ASSIGNMENT | AS IMPLICIT ]
  4. CREATE CAST (source_type AS target_type)
  5. WITHOUT FUNCTION
  6. [ AS ASSIGNMENT | AS IMPLICIT ]
CREATE CONSTRAINT TRIGGER

定义一个新的约束触发器 。


 
 
  1. CREATE CONSTRAINT TRIGGER name
  2. AFTER events ON
  3. table_name constraint attributes
  4. FOR EACH ROW EXECUTE PROCEDURE func_name ( args )
CREATE CONVERSION

定义一个新的的编码转换。


 
 
  1. CREATE [DEFAULT] CONVERSION name
  2. FOR source_encoding TO dest_encoding FROM func_name
CREATE DATABASE

创建新数据库。


 
 
  1. CREATE DATABASE name
  2. [ [ WITH ] [ OWNER [=] db_owner ]
  3.    [ TEMPLATE [=] template ]
  4.    [ ENCODING [=] encoding ]
  5.    [ TABLESPACE [=] tablespace ] 
  6. ]
CREATE DOMAIN

定义一个新域。


 
 
  1. CREATE DOMAIN name [AS] data_type
  2. [ DEFAULT expression ]
  3. [ constraint [ ... ] ]
  4. constraint 可以是以下选项之一:
  5. [ CONSTRAINT constraint_name ]
  6. { NOT NULL | NULL | CHECK (expression) }
CREATE FUNCTION

定义一个新函数。


 
 
  1. CREATE [ OR REPLACE ] FUNCTION name ( [ [ arg_name ] arg_type [, ...] ] )
  2. RETURNS ret_type
  3. { LANGUAGE lang_name
  4.    | IMMUTABLE | STABLE | VOLATILE
  5.    | CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
  6.    | [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
  7.    | AS  'definition'
  8.    | AS  'obj_file''link_symbol'
  9. } ...
  10. [ WITH ( attribute [, ...] ) ]
CREATE GROUP

定义一个新的用户组。


 
 
  1. CREATE GROUP name [ [ WITH ] option [ ... ] ]
  2. Where option can be:
  3. SYSID gid
  4. | USER username [, ...]
CREATE INDEX

定义一个新索引。


 
 
  1. CREATE [ UNIQUE ] INDEX name ON table [ USING method ]
  2. ( { column | ( expression ) } [ opclass ] [, ...] )
  3. [ TABLESPACE tablespace ]
  4. [ WHERE predicate ]
CREATE LANGUAGE

定义一种新的过程语言。


 
 
  1. CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
  2. HANDLER call_handler [ VALIDATOR val_function ]
CREATE OPERATOR

定义一个新的操作符。


 
 
  1. CREATE OPERATOR name (
  2.    PROCEDURE = func_name
  3.    [, LEFTARG = left_type ] [, RIGHTARG = right_type ]
  4.    [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
  5.    [, RESTRICT = res_proc ] [, JOIN = join_proc ]
  6.    [, HASHES ] [, MERGES ]
  7.    [, SORT1 = left_sort_op ] [, SORT2 = right_sort_op ]
  8.    [, LTCMP = less_than_op ] [, GTCMP = greater_than_op ]
  9. )
CREATE OPERATOR CLASS

定义一个新的操作符表。


 
 
  1. CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type
  2. USING index_method AS
  3. { OPERATOR strategy_number operator_name [ ( op_type, op_type ) ] [ RECHECK ]
  4.    | FUNCTION support_number func_name ( argument_type [, ...] )
  5.    | STORAGE storage_type
  6. } [, ... ]
CREATE ROLE

定义一个新的数据库角色。


 
 
  1. CREATE ROLE _name_ [ [ WITH ] _option_ [ ... ] ]
  2. where  `_option_` can be:
  3.       SUPERUSER | NOSUPERUSER
  4.     | CREATEDB | NOCREATEDB
  5.     | CREATEROLE | NOCREATEROLE
  6. ...
CREATE RULE

定义一个新重写规则。


 
 
  1. CREATE [ OR REPLACE ] RULE name AS ON event
  2. TO table [ WHERE condition ]
  3. DO [ ALSO | INSTEAD ] { NOTHING | command | ( command ; command ... ) }
CREATE SCHEMA

定义一个新模式。


 
 
  1. CREATE SCHEMA schema_name
  2. [ AUTHORIZATION username ] [ schema_element [ ... ] ]
  3. CREATE SCHEMA AUTHORIZATION username
  4. [ schema_element [ ... ] ]
CREATE SERVER

定义一个新的外部服务器。。


 
 
  1. CREATE SERVER _server_name_ [ TYPE  '_server_type_' ] [ VERSION  '_server_version_' ]
  2.     FOREIGN DATA WRAPPER _fdw_name_
  3.     [ OPTIONS ( _option_  '_value_' [, ... ] ) ]
CREATE SEQUENCE

定义一个新序列发生器。


 
 
  1. CREATE [ TEMPORARY | TEMP ] SEQUENCE name
  2. [ INCREMENT [ BY ] increment ]
  3. [ MINVALUE minvalue | NO MINVALUE ]
  4. [ MAXVALUE maxvalue | NO MAXVALUE ]
  5. [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]
CREATE TABLE

定义一个新表。


 
 
  1. CREATE [ [ GLOBAL | LOCAL ] { 
  2.    TEMPORARY | TEMP } ] TABLE table_name ( { 
  3.       column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ]
  4.       | table_constraint
  5.       | LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] 
  6.    } [, ... ]
  7. )
  8. [ INHERITS ( parent_table [, ... ] ) ]
  9. [ WITH OIDS | WITHOUT OIDS ]
  10. [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
  11. [ TABLESPACE tablespace ]

column_constraint 可以是以下选项之一:


 
 
  1. [ CONSTRAINT constraint_name ] { 
  2.    NOT NULL |
  3.    NULL |
  4.    UNIQUE [ USING INDEX TABLESPACE tablespace ] |
  5.    PRIMARY KEY [ USING INDEX TABLESPACE tablespace ] |
  6.    CHECK (expression) |
  7.    REFERENCES ref_table [ ( ref_column ) ]
  8.    [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
  9.    [ ON DELETE action ] [ ON UPDATE action ] 
  10. }
  11. [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

table_constraint 可以是以下选项之一:


 
 
  1. [ CONSTRAINT constraint_name ]
  2. { UNIQUE ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
  3. PRIMARY KEY ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
  4. CHECK ( expression ) |
  5. FOREIGN KEY ( column_name [, ... ] )
  6. REFERENCES ref_table [ ( ref_column [, ... ] ) ]
  7. [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
  8. [ ON DELETE action ] [ ON UPDATE action ] }
  9. [ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

CREATE TABLE AS

从一条查询的结果中定义一个新表。


 
 
  1. CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name
  2. [ (column_name [, ...] ) ] [ [ WITH | WITHOUT ] OIDS ]
  3. AS query
CREATE TABLESPACE

定义一个新的表空间。

CREATE TABLESPACE tablespace_name [ OWNER username ] LOCATION 'directory'
 
 
CREATE TRIGGER

定义一个新的触发器。


 
 
  1. CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
  2. ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
  3. EXECUTE PROCEDURE func_name ( arguments )
CREATE TYPE

定义一个新的数据类型。


 
 
  1. CREATE TYPE name AS
  2. ( attribute_name data_type [, ... ] )
  3. CREATE TYPE name (
  4. INPUT = input_function,
  5. OUTPUT = output_function
  6. [, RECEIVE = receive_function ]
  7. [, SEND = send_function ]
  8. [, ANALYZE = analyze_function ]
  9. [, INTERNALLENGTH = { internal_length | VARIABLE } ]
  10. [, PASSEDBYVALUE ]
  11. [, ALIGNMENT = alignment ]
  12. [, STORAGE = storage ]
  13. [, DEFAULT =  default ]
  14. [, ELEMENT = element ]
  15. [, DELIMITER = delimiter ]
  16. )
CREATE USER

创建一个新的数据库用户帐户。

CREATE USER name [ [ WITH ] option [ ... ] ]
 
 

option 可以是以下选项之一:


 
 
  1. SYSID uid
  2. | [ ENCRYPTED | UNENCRYPTED ] PASSWORD  'password'
  3. | CREATEDB | NOCREATEDB
  4. | CREATEUSER | NOCREATEUSER
  5. | IN GROUP group_name [, ...]
  6. | VALID UNTIL  'abs_time'
CREATE VIEW

定义一个视图。

CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query
 
 
DEALLOCATE

删除一个准备好的查询。

DEALLOCATE [ PREPARE ] plan_name
 
 
DECLARE

定义一个游标。


 
 
  1. DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
  2. CURSOR [ { WITH | WITHOUT } HOLD ] FOR query
  3. [ 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 ROLE

删除一个数据库角色。

DROP ROLE [ IF EXISTS ] _name_ [, ...]
 
 
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
 
 

direction 可以是以下选项之一:


 
 
  1. NEXT
  2. PRIOR
  3. FIRST
  4. LAST
  5. ABSOLUTE count
  6. RELATIVE count
  7. count
  8. ALL
  9. FORWARD
  10. FORWARD count
  11. FORWARD ALL
  12. BACKWARD
  13. BACKWARD count
  14. BACKWARD ALL
GRANT

定义访问权限。


 
 
  1. GRANT { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
  2. [,...] | ALL [ PRIVILEGES ] }
  3. ON [ TABLE ] table_name [, ...]
  4. TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
  5. GRANT { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
  6. ON DATABASE db_name [, ...]
  7. TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
  8. GRANT { CREATE | ALL [ PRIVILEGES ] }
  9. ON TABLESPACE tablespace_name [, ...]
  10. TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
  11. GRANT { EXECUTE | ALL [ PRIVILEGES ] }
  12. ON FUNCTION func_name ([ type, ...]) [, ...]
  13. TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
  14. GRANT { USAGE | ALL [ PRIVILEGES ] }
  15. ON LANGUAGE lang_name [, ...]
  16. TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
  17. GRANT { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
  18. ON SCHEMA schema_name [, ...]
  19. TO { username | GROUP group_name | PUBLIC } [, ...] [ WITH GRANT OPTION ]
INSERT

在表中创建新行,即插入数据。


 
 
  1. INSERT INTO table [ ( column [, ...] ) ]
  2. { 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

把一个运行时参数值恢复为默认值。


 
 
  1. RESET name
  2. RESET ALL
REVOKE

删除访问权限。


 
 
  1. REVOKE [ GRANT OPTION FOR ]
  2. { { SELECT | INSERT | UPDATE | DELETE | RULE | REFERENCES | TRIGGER }
  3. [,...] | ALL [ PRIVILEGES ] }
  4. ON [ TABLE ] table_name [, ...]
  5. FROM { username | GROUP group_name | PUBLIC } [, ...]
  6. [ CASCADE | RESTRICT ]
  7. REVOKE [ GRANT OPTION FOR ]
  8. { { CREATE | TEMPORARY | TEMP } [,...] | ALL [ PRIVILEGES ] }
  9. ON DATABASE db_name [, ...]
  10. FROM { username | GROUP group_name | PUBLIC } [, ...]
  11. [ CASCADE | RESTRICT ]
  12. REVOKE [ GRANT OPTION FOR ]
  13. { CREATE | ALL [ PRIVILEGES ] }
  14. ON TABLESPACE tablespace_name [, ...]
  15. FROM { username | GROUP group_name | PUBLIC } [, ...]
  16. [ CASCADE | RESTRICT ]
  17. REVOKE [ GRANT OPTION FOR ]
  18. { EXECUTE | ALL [ PRIVILEGES ] }
  19. ON FUNCTION func_name ([ type, ...]) [, ...]
  20. FROM { username | GROUP group_name | PUBLIC } [, ...]
  21. [ CASCADE | RESTRICT ]
  22. REVOKE [ GRANT OPTION FOR ]
  23. { USAGE | ALL [ PRIVILEGES ] }
  24. ON LANGUAGE lang_name [, ...]
  25. FROM { username | GROUP group_name | PUBLIC } [, ...]
  26. [ CASCADE | RESTRICT ]
  27. REVOKE [ GRANT OPTION FOR ]
  28. { { CREATE | USAGE } [,...] | ALL [ PRIVILEGES ] }
  29. ON SCHEMA schema_name [, ...]
  30. FROM { username | GROUP group_name | PUBLIC } [, ...]
  31. [ CASCADE | RESTRICT ]
ROLLBACK

退出当前事务。

ROLLBACK [ WORK | TRANSACTION ]
 
 
ROLLBACK TO SAVEPOINT

回滚到一个保存点。

ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] savepoint_name
 
 
SAVEPOINT

在当前事务里定义一个新的保存点。

SAVEPOINT savepoint_name
 
 
SELECT

从表或视图中取出若干行。


 
 
  1. SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
  2. * | expression [ AS output_name ] [, ...]
  3. [ FROM from_item [, ...] ]
  4. [ WHERE condition ]
  5. [ GROUP BY expression [, ...] ]
  6. [ HAVING condition [, ...] ]
  7. [ { UNION | INTERSECT | EXCEPT } [ ALL ]  select ]
  8. [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
  9. [ LIMIT { count | ALL } ]
  10. [ OFFSET start ]
  11. [ FOR UPDATE [ OF table_name [, ...] ] ]

from_item 可以是以下选项:


 
 
  1. [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]
  2. select ) [ AS ] alias [ ( column_alias [, ...] ) ]
  3. function_name ( [ argument [, ...] ] )
  4. [ AS ] alias [ ( column_alias [, ...] | column_definition [, ...] ) ]
  5. function_name ( [ argument [, ...] ] ) AS ( column_definition [, ...] )
  6. from_item [ NATURAL ] join_type from_item
  7. [ ON join_condition | USING ( join_column [, ...] ) ]
SELECT INTO

从一个查询的结果中定义一个新表。


 
 
  1. SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
  2. * | expression [ AS output_name ] [, ...]
  3. INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table
  4. [ FROM from_item [, ...] ]
  5. [ WHERE condition ]
  6. [ GROUP BY expression [, ...] ]
  7. [ HAVING condition [, ...] ]
  8. [ { UNION | INTERSECT | EXCEPT } [ ALL ]  select ]
  9. [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
  10. [ LIMIT { count | ALL } ]
  11. [ OFFSET start ]
  12. [ FOR UPDATE [ OF table_name [, ...] ] ]
SET

修改运行时参数。


 
 
  1. SET [ SESSION | LOCAL ] name { TO | = } { value |  'value' | DEFAULT }
  2. SET [ SESSION | LOCAL ] TIME ZONE { time_zone | LOCAL | DEFAULT }
SET CONSTRAINTS

设置当前事务的约束检查模式。

SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE }
 
 
SET SESSION AUTHORIZATION

为当前会话设置会话用户标识符和当前用户标识符。


 
 
  1. SET [ SESSION | LOCAL ] SESSION AUTHORIZATION username
  2. SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
  3. RESET SESSION AUTHORIZATION
SET TRANSACTION

开始一个事务块。


 
 
  1. SET TRANSACTION transaction_mode [, ...]
  2. SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...]
  3. Where transaction_mode is one of −
  4. ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
  5. READ WRITE | READ ONLY
SHOW

显示运行时参数的值。


 
 
  1. SHOW name
  2. SHOW ALL
START TRANSACTION

开始一个事务块。


 
 
  1. START TRANSACTION [ transaction_mode [, ...] ]
  2. #transaction_mode 可以是下面的选项之一:
  3. ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
  4. READ WRITE | READ ONLY
TRUNCATE

清空一个或一组表。

TRUNCATE [ TABLE ] name
 
 
UNLISTEN

停止监听通知信息。

UNLISTEN { name | * }
 
 
UPDATE

更新一个表中的行。


 
 
  1. UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...]
  2. [ FROM from_list ]
  3. [ WHERE condition ]
VACUUM

垃圾收集以及可选地分析一个数据库。


 
 
  1. VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ]
  2. VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
VALUES

计算一个或一组行。


 
 
  1. VALUES ( _expression_ [, ...] ) [, ...]
  2.     [ ORDER BY _sort_expression_ [ ASC | DESC | USING _operator_ ] [, ...] ]
  3.     [ LIMIT { _count_ | ALL } ]
  4.     [ OFFSET _start_ [ ROW | ROWS ] ]
  5.     [ FETCH { FIRST | NEXT } [ _count_ ] { ROW | ROWS } ONLY ]

更多关于大数据 PostgreSQL 系列的学习文章,请参阅:PostgreSQL 数据库,本系列持续更新中。

参考链接:https://blog.csdn.net/gbz2000/article/

details/115524519

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值