搜索
您的当前位置:首页正文

postgres常用命令

来源:赴品旅游
postgresql常用命令

2011-01-19 13:35:57| 分类: postgresql |字号 订阅

1.createdb 数据库名称

产生数据库

2.dropdb 数据库名称

删除数据库

3.CREATE USER 用户名称

创建用户

4.drop User 用户名称

删除用户

5.SELECT usename FROM pg_user;

查看系统用户信息

\\du

7.SELECT version();

查看版本信息

8.psql 数据库名

打开psql交互工具

9.mydb=> \\i basics.sql

\\i 命令从指定的文件中读取命令。

10.COPY weather FROM '/home/user/weather.txt';

批量将文本文件中内容导入到wether表

11.SHOW search_path;

显示搜索路径

12.创建用户

CREATE USER 用户名 WITH PASSWORD '密码'

13.创建模式

CREATE SCHEMA myschema;

14.删除模式

DROP SCHEMA myschema;

15.查看搜索模式

SHOW search_path;

16.设置搜索模式

SET search_path TO myschema,public;

17.创建表空间

create tablespace 表空间名称 location '文件路径';

18.显示默认表空间

show default_tablespace;

19.设置默认表空间

set default_tablespace=表空间名称;

20.指定用户登录

psql MTPS -u

21.显示当前系统时间、

now()

22.配置plpgsql语言

CREATE LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler

23.删除规则

DROP RULE name ON relation [ CASCADE | RESTRICT ]

输入

name

要删除的现存的规则.

relation

该规则应用的关系名字(可以有大纲修饰).

CASCADE

自动删除依赖于此规则的对象。

RESTRICT

如果有任何依赖对象,则拒绝删除此规则。这个是缺省。

24.日期格式函数

select 'P'||to_char(current_date,'YYYYMMDD')||'01'

25.产生组

Create Group 组名称

26.修改用户归属组

Alter Group 组名称 add user 用户名称

26.为组赋值权限

grant 操作 On 表名称 to group 组名称:

27.创建角色

Create Role 角色名称

28.删除角色

Drop Role 角色名称

29.获得当前postgresql版本

SELECT version();

30.在linux中执行计划任务

通过crontab执行

su root -c \"psql -p 5433 -U developer MTPS -c'select test()'\"

developer用户的密码存储于环境变量PGPASSWORD中。

31.查询表是否存在

select * from pg_statio_user_tables where relname='你的表名';

32.为用户复制SCHEMA权限

grant all on SCHEMA 作用域名称 to 用户名称

33.整个数据库导出

pg_dumpall -D -p 端口号 -h 服务器IP -U postgres(用户名) > /home/xiaop/all.bak

34.数据库备份恢复

psql -h 192.168.0.48 -p 5433 -U postgres 35.当前日期函数

current_date

36.返回第十条开始的5条记录

select * from tabname limit 5 offset 10;

37.为用户赋模式权限

Grant on schema developer to UDataHouse

38.将字符转换为日期时间

select to_timestamp('2010-10-21 12:31:22', 'YYYY-MM-DD hh24:mi:ss')

39.数据库备份

pg_dumpall -h 192.168.0.4 -p 5433 -U

postgres >/DataBack/Postgresql2010012201.dmp

如8.1以后多次输入密码

40.\\dn

查看schema

41.删除schema

drop schema _clustertest cascade;

42.导出表

./pg_dump -p 端口号 -U 用户 -t 表名称 -f 备份文件位置 数据库 ;

43.字符串操作函数

select distinct(split_part(ip,'.',1)||'.'||split_part(ip,'.',2)) from t_t_userip order by (split_part(ip,'.',1)||'.'||split_part(ip,'.',2));

44.删除表主键

alter table 表名 drop CONSTRAINT 主键名称;

45.创建表空间

create tablespace 空间名称 location '路径'

46.查看表结构

select * from information_schema.columns

./postgres -D /usr/local/src/data

or

./pg_ctl -D /usr/local/src/data -l logfile start

47.查看数据库大小

SELECT pg_size_pretty(pg_database_size('MTPS')) As fulldbsize;

48.查看数据库表大小

SELECT pg_size_pretty(pg_total_relation_size('developer.t_L_collectfile')) As fulltblsize,

pg_size_pretty(pg_relation_size('developer.t_L_collectfile')) As justthetblsize

49.设置执行超过指定秒数的sql语句输出到日志

log_min_duration_statement = 3

50.超过一定秒数sql自动执行执行计划

shared_preload_libraries = 'auto_explain'

custom_variable_classes = 'auto_explain'

auto_explain.log_min_duration = 4s

51.数据库备份

select pg_start_backup('backup baseline');

select pg_stop_backup();

recovery.conf

restore_command='cp /opt/buxlog/%f %p'

52.重建索引

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

INDEX

重新建立声明了的索引。

TABLE

重新建立声明的表的所有索引。如果表有个从属的\"TOAST\"表,那么这个表也会重新索引。

DATABASE

重建当前数据库里的所有索引。 除非在独立运行模式下,会忽略在共享系统表上的索引(见下文)。

SYSTEM

在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。 另外,除了是在单主机模式下,共享的系统表也会被忽略(见下文)。

name

需要重建索引的索引,表或者数据库的名称。 表和索引名可以有模式修饰。 目前,REINDEX DATABASE 和 REINDEX SYSTEM 只能重建当前数据库的索引, 因此其参数必须匹配当前数据库的名字。

FORCE

这是一个废弃的选项,如果声明,会被忽略。

54.数据字典查看表结构

SELECT column_name, data_type from information_schema.columns where table_name = 'blog_sina_content_train';

52.查看被锁定表

SELECT pg_class.relname AS table, pg_database.datname AS database, pid, mode, granted

FROM pg_locks, pg_class, pg_database

WHERE pg_locks.relation = pg_class.oid

AND pg_locks.database = pg_database.oid;

53.查看客户端连接情况

SELECT client_addr ,client_port,waiting,query_start,current_query FROM pg_stat_activity;

54.常看数据库.conf配置

show all

55.修改数据库postgresql.conf参数

修改postgresql.conf内容

pg_ctl reload

56.回滚日志强制恢复

pg_resetxlog -f 数据库文件路径

idvalue | remark

----------+--------

33953557 | inser

57.当前日期属于一年中第几周

select EXTRACT(week from TIMESTAMP '2010-10-22');

58.显示最近执行命令

\\s

I. SQL 命令

ABORT — 退出当前事务

ALTER AGGREGATE — 修改一个聚集函数的定义

ALTER CONVERSION — 修改一个编码转换的定义

ALTER DATABASE — 修改一个数据库

ALTER DOMAIN — 改变一个域的定义

ALTER FUNCTION — 修改一个函数的定义

ALTER GROUP — 修改一个用户组

ALTER INDEX — 改变一个索引的定义

ALTER LANGUAGE — 修改一个过程语言的定义

ALTER OPERATOR — 改变一个操作符的定义

ALTER OPERATOR CLASS — 修改一个操作符表的定义

ALTER ROLE — 修改一个数据库角色

ALTER SCHEMA — 修改一个模式的定义

ALTER SEQUENCE — 更改一个序列生成器的定义

ALTER TABLE — 修改表的定义

ALTER TABLESPACE — 改变一个表空间的定义

ALTER TRIGGER — 改变一个触发器的定义

ALTER TYPE — 改变一个类型的定义

ALTER USER — 改变数据库用户帐号

ANALYZE — 收集与数据库有关的统计

BEGIN — 开始一个事务块

CHECKPOINT — 强制一个事务日志检查点

CLOSE — 关闭一个游标

CLUSTER — 根据一个索引对某个表集簇

COMMENT — 定义或者改变一个对象的评注

COMMIT — 提交当前事务

COMMIT PREPARED — 提交一个早先为两阶段提交准备好的事务

COPY — 在表和文件之间拷贝数据

CREATE AGGREGATE — 定义一个新的聚集函数

CREATE CAST — 定义一个用户定义的转换

CREATE CONSTRAINT TRIGGER — 定义一个新的约束触发器

CREATE CONVERSION — 定义一个新的的编码转换

CREATE DATABASE — 创建新数据库

CREATE DOMAIN — 定义一个新域

CREATE FUNCTION — 定义一个新函数

CREATE GROUP — 定义一个新的用户组

CREATE INDEX — 定义一个新索引

CREATE LANGUAGE — 定义一种新的过程语言

CREATE OPERATOR — 定义一个新的操作符

CREATE OPERATOR CLASS — 定义一个新的操作符表

CREATE ROLE — define a new database role

CREATE RULE — 定义一个新的重写规则

CREATE SCHEMA — 定义一个新的模式

CREATE SEQUENCE — 创建一个新的序列发生器

CREATE TABLE — 定义一个新表

CREATE TABLE AS — 从一条查询的结果中定义一个新表

CREATE TABLESPACE — 定义一个新的表空间

CREATE TRIGGER — 定义一个新的触发器

CREATE TYPE — 定义一个新的数据类型

CREATE USER — 创建一个新的数据库用户帐户

CREATE VIEW — 定义一个视图

DEALLOCATE — 删除一个准备好的查询

DECLARE — 定义一个游标

DELETE — 删除一个表中的行

DROP AGGREGATE — 删除一个用户定义的聚集函数

DROP CAST — 删除一个用户定义的类型转换

DROP CONVERSION — 删除一个用户定义的编码转换

DROP DATABASE — 删除一个数据库

DROP DOMAIN — 删除一个用户定义的域

DROP FUNCTION — 删除一个函数

DROP GROUP — 删除一个用户组

DROP INDEX — 删除一个索引

DROP LANGUAGE — 删除一个过程语言

DROP OPERATOR — 删除一个操作符

DROP OPERATOR CLASS — 删除一个操作符表

DROP ROLE — 删除一个数据库角色

DROP RULE — 删除一个重写规则

DROP SCHEMA — 删除一个模式

DROP SEQUENCE — 删除一个序列

DROP TABLE — 删除一个表

DROP TABLESPACE — 删除一个表空间

DROP TRIGGER — 删除一个触发器定义

DROP TYPE — 删除一个用户定义数据类型

DROP USER — 删除一个数据库用户帐号

DROP VIEW — 删除一个视图

END — 提交当前的事务

EXECUTE — 执行一个准备好的查询

EXPLAIN — 显示语句执行规划

FETCH — 用游标从查询中抓取行

GRANT — 定义访问权限

INSERT — 在表中创建新行

LISTEN — 监听一个通知

LOAD — 装载或重载一个共享库文件

LOCK — 明确地锁定一个表

MOVE — 重定位一个游标

NOTIFY — 生成一个通知

PREPARE — 创建一个准备好的查询

PREPARE TRANSACTION — 为当前事务做两阶段提交的准备

REINDEX — 重建索引

RELEASE SAVEPOINT — 删除一个前面定义的保存点

RESET — 把一个运行时参数值恢复为缺省值

REVOKE — 删除访问权限

ROLLBACK — 退出当前事务

ROLLBACK PREPARED — 取消一个早先为两阶段提交准备好的事务

ROLLBACK TO — 回滚到一个保存点

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

SELECT — 从表或视图中取出若干行

SELECT INTO — 从一个查询的结果中定义一个新表

SET — 改变运行时参数

SET CONSTRAINTS — 设置当前事务的约束检查模式

SET ROLE — set the current user identifier of the current session

SET SESSION AUTHORIZATION — 为当前会话设置会话用户标识符和当前用户标识符

SET TRANSACTION — 设置当前事务的特性

SHOW — 显示运行时参数的数值

START TRANSACTION — 开始一个事务块

TRUNCATE — 清空一个或者一堆表

UNLISTEN — 停止监听通知信息

UPDATE — 更新一个表中的行

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

II. 客户端应用

clusterdb — 对一个PostgreSQL数据库进行建簇

createdb — 创建一个新的 PostgreSQL 数据库

createlang — 定义一种新的 PostgreSQL 过程语言

createuser — 定义一个新的 PostgreSQL 用户帐户

dropdb — 删除一个现有 PostgreSQL 数据库

droplang — 删除一种 PostgreSQL 过程语言

dropuser — 删除一个 PostgreSQL 用户帐户

ecpg — 嵌入的 SQL C 预处理器

pg_config — 检索已安装版本的 PostgreSQL 的信息

pg_dump — 将一个PostgreSQL数据库抽出到一个脚本文件或者其它归档文件中

pg_dumpall — 抽出一个 PostgreSQL 数据库集群到脚本文件中

pg_restore — 从一个由 pg_dump 创建的备份文件中恢复 PostgreSQL 数据库。

psql — PostgreSQL 交互终端

vacuumdb — 收集垃圾并且分析一个PostgreSQL 数据库

III. PostgreSQL 服务器应用

initdb — 创建一个新的 PostgreSQL数据库集群

ipcclean — 从失效的PostgreSQL服务器中删除共享内存和信号灯

pg_controldata — 显示一个 PostgreSQL 集群的控制信息

pg_ctl — 启动,停止和重起 PostgreSQL

pg_resetxlog — 重置一个 PostgreSQL 数据库集群的预写日志以及其它控制内容

postgres — 以单用户模式运行一个 PostgreSQL服务器

postmaster — PostgreSQL多用户数据库服务器

59.导出数据库角色

/data/pgsql/bin/pg_dumpall -r >/tmp/postgres_8.3_role.bak

-p 5432 -U postgres

60.修改sequence所有者

grant all on sequence名称 to 所有者;

61.修改sequence初始值

Alter SEQUENCE sequencename START value;

62.查看sequence当前值

SELECT currval('sequencename');

63.查看sequence下一值

SELECT nextval('sequencename');

64.设置sequence当前值

alter SEQUENCE sequencename restart with startvalue;

SELECT nextval('sequencename');

65.查询表结构

SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a

.atttypmod AS lengthvar,a.attnotnull AS notnull

FROM pg_class c,pg_attribute a,pg_type t

WHERE c.relname=表名称and a.attnum > 0 and a.attrelid = c.oid and a

.atttypid = t.oid

66.将查询结果直接输出到文件

在psql中

\\o 文件路径

select datname,rolname from pg_database a left outer join pg_roles b on a.datdba=b.oid ;

\\o

67.查询数据库所有则

select datname,rolname from pg_database a left outer join pg_roles b on a.datdba=b.oid ;

68.结束正在执行的事务

SELECT * from pg_stat_activity;

select pg_cancel_backend('procpid');

60.结束session

SELECT * from pg_stat_activity;

select pg_terminate_backend('procpid');

61.postgresql取消转义字符功能

将postgresql.conf文件中的standard_conforming_strings设置为on

62.查询正在执行SQL

SELECT

procpid,

start,

now() - start AS lap,

current_query

FROM

(SELECT

backendid,

pg_stat_get_backend_pid(S.backendid) AS procpid,

pg_stat_get_backend_activity_start(S.backendid) AS start,

pg_stat_get_backend_activity(S.backendid) AS current_query

FROM

(SELECT pg_stat_get_backend_idset() AS backendid) AS S

) AS S

WHERE

current_query <> ''

ORDER BY

lap DESC;

因篇幅问题不能全部显示,请点此查看更多更全内容

Top