(1)显示sql语句执行时间
(2)显示postgres中所有的表总数(包含数据库自带的)
select count(*) from pg_tables;
(3)显示用户生成的数据库列表
\d
(4)显示某个表列属性
\d tablename
(5)删除表中所有数据
delete from tablename --写入日志
Truncate Table tablename --不写入日志
TRUNCATE TABLE
语法
TRUNCATE TABLE name
参数
name
注释
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。
如果要删除表定义及其数据,请使用 DROP TABLE 语句。
对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。
TRUNCATE TABLE 不能用于参与了索引视图的表。
示例
下例删除 authors 表中的所有数据。
TRUNCATE TABLE authors
(6)显示当前用户
\c
(7)显示当前数据库所有用户
\du
(8)创建用户
create user xxx with password 'xxxxxx';
(9)更改用户密码
alter user xxx with password 'yyyy';
(10)更改用户连接
\c database username
(11)更改表名
更改表名称
alter table smallint rename to integer;
alter table smallint rename to integer;
(12)更改列名
更改表列名
alter table integer rename column id to id1;
alter table integer rename column id to id1;
(13)显示日期
show datestyle;
(14)设置日期格式
set datestyle=MDY;
(15)打印详细出错信息
postgres=#
\set VERBOSITY verbose
postgres=#
postgres=#
postgres=# create table (id );
ERROR: Syntax error at or near "(" at character 14
STATEMENT: create table (id );
ERROR: 42601: Syntax error at or near "("
LINE 1: create table (id );
^
LOCATION: scanner_yyerror,scan.l:1044
postgres=#
postgres=#
postgres=# create table (id );
ERROR: Syntax error at or near "(" at character 14
STATEMENT: create table (id );
ERROR: 42601: Syntax error at or near "("
LINE 1: create table (id );
^
LOCATION: scanner_yyerror,scan.l:1044
(16)更改列属性
postgres=# alter table a1 alter column id2 set DATA TYPE int;
(17)查看帮助信息
\h alter table
(18)列显示
\x
(19)创建函数
CREATE OR REPLACE FUNCTION f_value_single()
returns void AS $_$
DECLARE
BEGIN
END;
$_$ language plpgsql;
将表名作为入参
create or replace function count(varchar)
returns bigint
as
$$
select count(*) from quote_ident($1);
$$
language 'sql';
returns bigint
as
$$
select count(*) from quote_ident($1);
$$
language 'sql';
(20)关闭数据库3种模式
SIGTERM 不再允许新的连接,但是允许所有活跃的会话正常完成他们的工作,只有在所有会话都结束任务后才关闭。这是智能关闭。 SIGINT 不再允许新的连接,向所有活跃服务器发送 SIGTERM(让它们立刻退出),然后等待所有子进程退出并关闭数据库。这是快速关闭。 SIGQUIT 令 postgres 向所有子进程发送 SIGQUIT 并且立即退出(所有子进程也会立即退出),而不会妥善地关闭数据库系统。这是立即关闭。这样做会导致下次启动时的恢复(通过重放 WAL 日志)。我们推荐只在紧急的时候使用这个方法。 SIGKILL 此选项尽量不要使用,这样会阻止服务器清理共享内存和信号灯资源,那样的话你只能在启动服务器之前自己手工做这件事。另外,SIGKILL 直接把 postgres 杀掉,而不会等它把信号中继给它的子进程,因此我们还需要手工杀掉每个独立子进程。
原文链接:https://www.f2er.com/postgresql/196097.html