postgres一些查询命令操作
发布时间:2020-12-13 17:36:06 所属栏目:百科 来源:网络整理
导读:postgres下一些查询有时候是不同于其他数据库的。 (1)显示SQL语句执行时间 timing on 退出数据库失效 (2)显示postgres中所有的表总数(包含数据库自带的) select count(*) from pg_tables; 安装好数据库系统自带为58个。 (3)显示用户生成的数据库列表
postgres下一些查询有时候是不同于其他数据库的。
(1)显示SQL语句执行时间
timing on
(2)显示postgres中所有的表总数(包含数据库自带的)
select count(*) from pg_tables;
安装好数据库系统自带为58个。
(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 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
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; (12)更改列名
更改表列名
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 (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()
将表名作为入参
create or replace function count(varchar)
returns bigint as $$ select count(*) from quote_ident($1); $$ language 'sql'; (20)关闭数据库3种模式
SIGTERM 不再允许新的连接,但是允许所有活跃的会话正常完成他们的工作,只有在所有会话都结束任务后才关闭。这是智能关闭。 SIGINT 不再允许新的连接,向所有活跃服务器发送 SIGTERM(让它们立刻退出),然后等待所有子进程退出并关闭数据库。这是快速关闭。 SIGQUIT 令 postgres 向所有子进程发送 SIGQUIT 并且立即退出(所有子进程也会立即退出),而不会妥善地关闭数据库系统。这是立即关闭。这样做会导致下次启动时的恢复(通过重放 WAL 日志)。我们推荐只在紧急的时候使用这个方法。 SIGKILL 此选项尽量不要使用,这样会阻止服务器清理共享内存和信号灯资源,那样的话你只能在启动服务器之前自己手工做这件事。另外,SIGKILL 直接把 postgres 杀掉,而不会等它把信号中继给它的子进程,因此我们还需要手工杀掉每个独立子进程。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |