PostgresSQL使用命令

本文详细介绍了PostgreSQL SQL命令的准确用法,包括从psql命令行工具启动Postgres,使用help命令生成完整命令列表,以及各种SQL语句如SELECT、ABORT、ALTER等的详细解释和用例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章提供了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 Keyword Identifiers Keyword Identifier
Description Command Id and name columns Clause Table name

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

Change the definition of a 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

Start a transaction block.

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 data between a file and a table.

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

Define a new aggregate function.

CREATE AGGREGATE name (
BASETYPE = input_data_type,
SFUNC = sfunc,
STYPE = state_data_type
[ , FINALFUNC = ffunc ]
[ , INITCOND = initial_condition ]
)

CREATE CAST

Define a new 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 [ ... ] ]

Where constraint is:

[ 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 ]
Where column_constraint is:
[ 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 ]

And table_constraint is:

[ 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

Remove an aggregate function.

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

Remove an index.

DROP INDEX name [, ...] [ CASCADE | RESTRICT ]

DROP LANGUAGE

Remove a procedural language.

DROP [ PROCEDURAL ] LANGUAGE name [ CASCADE | RESTRICT ]

DROP OPERATOR

Remove an operator.

DROP OPERATOR name ( { left_type | NONE } , { right_type | NONE } )
[ CASCADE | RESTRICT ]

DROP OPERATOR CLASS

Remove an operator class.

DROP OPERATOR CLASS name USING index_method [ CASCADE | RESTRICT ]

DROP RULE

Remove a rewrite rule.

DROP RULE name ON relation [ CASCADE | RESTRICT ]

DROP SCHEMA

Remove a schema.

DROP SCHEMA name [, ...] [ CASCADE | RESTRICT ]

DROP SEQUENCE

Remove a sequence.

DROP SEQUENCE name [, ...] [ CASCADE | RESTRICT ]

DROP TABLE

Remove a table.

DROP TABLE name [, ...] [ CASCADE | RESTRICT ]

DROP TABLESPACE

Remove a tablespace.

DROP TABLESPACE tablespace_name

DROP TRIGGER

Remove a trigger.

DROP TRIGGER name ON table [ CASCADE | RESTRICT ]

DROP TYPE

Remove a data type.

DROP TYPE name [, ...] [ CASCADE | RESTRICT ]

DROP USER

Remove a database user account.

DROP USER name

DROP VIEW

Remove a view.

DROP VIEW name [, ...] [ CASCADE | RESTRICT ]

END

Commit the current transaction.

END [ WORK | TRANSACTION ]

EXECUTE

Execute a prepared statement.

EXECUTE plan_name [ (parameter [, ...] ) ]

EXPLAIN

Show the execution plan of a statement.

EXPLAIN [ ANALYZE ] [ VERBOSE ] statement

FETCH

Retrieve rows from a query using a cursor.

FETCH [ direction { FROM | IN } ] cursor_name

Where direction can be empty or one of:

NEXT
PRIOR
FIRST
LAST
ABSOLUTE count
RELATIVE count
count
ALL
FORWARD
FORWARD count
FORWARD ALL
BACKWARD
BACKWARD count
BACKWARD ALL

GRANT

Define access privileges.

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

Create new rows in a table.

INSERT INTO table [ ( column [, ...] ) ]
{ DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) | query }

LISTEN

Listen for a notification.

LISTEN name

LOAD

Load or reload a shared library file.

LOAD 'filename'

LOCK

Lock a table.

LOCK [ TABLE ] name [, ...] [ IN lock_mode MODE ] [ NOWAIT ]

Where lock_mode is one of:

ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE
| SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE

MOVE

Position a cursor.

MOVE [ direction { FROM | IN } ] cursor_name

NOTIFY

Generate a notification.

NOTIFY name

PREPARE

Prepare a statement for execution.

PREPARE plan_name [ (data_type [, ...] ) ] AS statement

REINDEX

Rebuild indexes.

REINDEX { DATABASE | TABLE | INDEX } name [ FORCE ]

RELEASE SAVEPOINT

Destroy a previously defined savepoint.

RELEASE [ SAVEPOINT ] savepoint_name

RESET

Restore the value of a runtime parameter to the default value.

RESET name
RESET ALL

REVOKE

Remove access privileges.

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

Abort the current transaction.

ROLLBACK [ WORK | TRANSACTION ]

ROLLBACK TO SAVEPOINT

Roll back to a savepoint.

ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] savepoint_name

SAVEPOINT

Define a new savepoint within the current transaction.

SAVEPOINT savepoint_name

SELECT

Retrieve rows from a table or view.

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 [, ...] ] ]
Where from_item can be one of:
[ 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

Define a new table from the results of a query.

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

Change a runtime parameter.

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

SET CONSTRAINTS

Set constraint checking modes for the current transaction.

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

SET SESSION AUTHORIZATION

Set the session user identifier and the current user identifier of the current session.

SET [ SESSION | LOCAL ] SESSION AUTHORIZATION username
SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
RESET SESSION AUTHORIZATION

SET TRANSACTION

Set the characteristics of the current transaction.

SET TRANSACTION transaction_mode [, ...]
SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...]

Where transaction_mode is one of:

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 [, ...] ) ] ]

<think>首先,用户的问题是:“我想获取指定环境下所有PostgreSQL相关的文件路径或列表 请问获取某个环境变量下所有PostgreSQL相关文件的命令”。用户希望获取在一个特定环境变量下所有与PostgreSQL相关的文件路径或列表的命令。 用户提到了“某个环境变量”,但未指定具体是哪个环境变量。在PostgreSQL上下文中,常见的环境变量包括PGDATA(指向数据目录)、PGHOME(指向安装目录)等。用户说“指定环境下”,可能指的是一个特定的环境变量设置。 回顾系统级指令: - 所有行内数学表达式必须使用$...$格式。 - 独立公式必须使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识。 用户提供了几个引用: - 引用[1]: 关于pg_config工具。 - 引用[2]: 关于PostgreSQL底层数据存储。 - 引用[3]: 关于复制链接超时设置。 这些引用似乎与用户当前的问题相关,但不是直接匹配。用户的问题是关于获取文件路径或列表的命令。 关键点:用户想获取“所有PostgreSQL相关的文件路径或列表”,并指定“某个环境变量下”。可能指的是在环境变量指定的目录下查找文件。 在PostgreSQL中,一个常见的方法是使用pg_config工具来获取路径信息。引用[1]提到pg_config可以打印配置参数,包括头文件和库路径。 可能的命令: - 使用pg_config --bindir 获取二进制文件目录。 - 使用pg_config --libdir 获取库目录。 - 但用户想要所有相关文件路径,这可能包括数据目录、配置文件等。 用户说“某个环境变量下”,所以可能需要先确定环境变量是什么。例如,如果环境变量是PGDATA,那么数据目录下的文件。 一个全面的命令可能是使用find命令结合环境变量。 例如: - 如果环境变量是PGDATA:find $PGDATA -type f - 但这可能只列出数据目录下的文件,不包括安装目录。 更全面的方法: - 使用pg_config获取各种路径。 - 或者使用系统命令如find或locate来搜索与PostgreSQL相关的文件。 但locate需要数据库更新,可能不实时。 最佳实践:推荐使用pg_config工具来获取关键路径,然后列出这些目录下的文件。 步骤: 1. 确定环境变量:用户说“某个环境变量”,所以需要指定。常见的是PGDATA或PGHOME。 2. 使用命令列出文件。 在回答中,我应该: - 结构清晰。 - 用中文。 - 生成相关问题。 - 添加引用标识。 引用提供的引用: - 引用[1]提到pg_config,这与文件路径相关。 - 引用[2]讨论数据存储,但用户可能关心文件位置。 - 引用[3]关于配置,不直接相关。 所以,主要参考引用[1]。 回答结构: 1. 解释问题。 2. 提供命令示例。 3. 建议如何指定环境变量。 4. 生成相关问题。 命令示例: - 获取所有相关路径:pg_config --help 或特定选项。 - 列出文件:ls 或 find。 例如: - 如果环境变量是PGDATA:find $PGDATA -type f - 如果不知道,使用pg_config。 但pg_config本身可能不在PATH中,所以需要先找到它。 一个可靠的命令使用which pg_config 或类似。 最终命令:假设环境变量是PGDATA。 用户说“指定环境下”,可能意味着设置的环境变量。 在回答中,我可以假设常见的环境变量。 生成相关问题: 1. 如何设置PostgreSQL环境变量? 2. 如何查找PostgreSQL配置文件? 3. PostgreSQL数据目录的作用是什么? 确保LaTeX:用户问题中没有数学表达式,所以可能不需要。 回答: - 开头:解释方法。 - 命令使用代码块。 - 结尾:添加引用和生成问题。</think>### 获取指定环境下所有PostgreSQL相关文件的文件路径或列表 要获取在特定环境变量下所有PostgreSQL相关的文件路径或列表,您需要先确定环境变量的名称(例如 `PGDATA` 或 `PGHOME`),然后使用命令行工具列出该目录下的文件。PostgreSQL 环境变量通常指向关键目录,如数据目录(`PGDATA`)或安装目录(`PGHOME`)。以下是一个分步指南,帮助您实现这一目标。 #### 步骤 1: 确认环境变量 首先,您需要指定或检查目标环境变量。常见的 PostgreSQL 环境变量包括: - `PGDATA`: 指向 PostgreSQL 数据目录,包含配置文件、日志和数据库文件。 - `PGHOME`: 指向 PostgreSQL 安装目录,包含二进制文件、库和头文件。 - 其他相关变量(如 `PG_CONFIG`)可通过 `pg_config` 工具查询。 您可以使用以下命令查看当前设置的环境变量: ```bash echo $PGDATA # 如果设置了 PGDATA,将输出其路径 echo $PGHOME # 如果设置了 PGHOME,将输出其路径 ``` 如果环境变量未设置,您需要先设置它(例如 `export PGDATA=/path/to/data`),或直接使用绝对路径。 #### 步骤 2: 获取文件路径列表的命令 一旦确定了环境变量(例如 `$PGDATA`),您可以使用 `find` 命令递归列出该目录下的所有文件路径。以下是一些常用命令示例: - **列出 `PGDATA` 目录下的所有文件路径(数据目录相关)**: ```bash find $PGDATA -type f # 列出所有文件(不包括目录) ``` 这会输出类似: ``` /var/lib/postgresql/data/postgresql.conf /var/lib/postgresql/data/pg_hba.conf ... ``` - **列出 `PGHOME` 目录下的所有文件路径(安装目录相关)**: ```bash find $PGHOME -type f # 列出所有文件 ``` - **如果环境变量未指定,使用 `pg_config` 工具获取关键路径**: `pg_config` 是 PostgreSQL 提供的工具,可以打印各种路径信息(如二进制目录、库目录)。引用[1]提到,它用于“打印当前安装版本的PostgreSQL的配置参数”,包括文件路径[^1]。 ```bash # 获取二进制文件目录,并列出其内容 bin_dir=$(pg_config --bindir) ls -R $bin_dir # 递归列出二进制目录下的文件 # 获取库目录,并列出其内容 lib_dir=$(pg_config --libdir) ls -R $lib_dir # 获取数据目录(如果设置了 PGDATA) data_dir=$(pg_config --sharedir)/../data # 注意:可能需要调整路径 find $data_dir -type f ``` 注意:`pg_config` 可能未在默认 PATH 中,您可能需要指定完整路径(如 `/usr/bin/pg_config`)。 - **高级选项:过滤特定文件类型**: 如果您只想列出配置文件或日志文件,可以使用 `grep` 过滤: ```bash find $PGDATA -type f -name "*.conf" # 只列出配置文件 find $PGDATA -type f -name "*.log" # 只列出日志文件 ``` #### 注意事项 - **权限问题**: 运行这些命令可能需要管理员权限(例如使用 `sudo`),因为 PostgreSQL 文件通常属于 `postgres` 用户。 - **环境变量设置**: 如果环境变量未定义,命令会失败。您可以通过 `export` 设置它,或直接在命令使用绝对路径(例如 `find /var/lib/postgresql/data -type f`)。 - **性能考虑**: 在大型数据库上,`find` 命令可能耗时较长。使用 `-maxdepth` 选项限制搜索深度(例如 `find $PGDATA -maxdepth 2 -type f`)。 - **引用支持**: 引用[1]指出,`pg_config` 是获取路径信息的标准工具,特别适合“与PostgreSQL交互的软件包”[^1]。引用[2]提到,PostgreSQL 数据最终“落盘于磁盘上的某个位置”,这强调了理解文件路径的重要性[^2]。 #### 示例完整命令 假设您设置了 `PGDATA=/var/lib/postgresql/data`,以下命令会列出所有相关文件: ```bash export PGDATA=/var/lib/postgresql/data # 设置环境变量(如果未设置) find $PGDATA -type f | sort # 列出文件并按名称排序 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值