PostgreSQL 的命令行工具 psql 的常用命令

时间:2022-03-16 22:21:25

1. 连接服务器:

  psql -h 192.168.1.88 -U username -d databasename

2. 切换数据库:

  \c dbname

3. 列出所有数据库:

  \l

4. 列出所有当前数据库表:

  \d

5. 列出表的所有字段:

  \d tablename

6. 列出表的基本情况:

  \d+ tablename

7. 退出

  \q

8. 查看帮助

  \?

9. 查看索引:

  \di

10. 查看系统表:

  \dtS

11.查看用户:

  \du    or   \dg

12.查看视图:

  \dv   or  \d+ viewname

13. Greenplum管理提示

查看表的分布键:    gpskew -t table_name –c

14. 分配权限:

  grant permissionname on table/view in schema schemaname to username

15. 修改当前用户密码:

  \password      or     \password username

16. 列出表空间:

  \db

17. 列出组:

  \dg

18. 列出表,视图,序列的访问权限

  \dp    or  \z

19. 列出数据类型

  \dT

20. 列出大对象:

  \dl

21. 列出函数:

  \df

22. 列出schema:

  \dn

23. 列出序列:

  \ds

24. 列出所有内部变量:

  \set   or  \set varname

25. 取消内部变量:

  \unset

26. 切换到shell:

  \!    用 exit 退回

27. 列出域:

  \dD

28. 将当前缓存内容输出到文件:

  \w  path+filename

29. 将当前缓存内容编辑,会自动打开notepad

  \e   or   \E

30. 将查询结果存储到文件中:

  \o  filename |  select * from "Products"

31. 清空查询缓冲区:

  \r

32. 打开扩展显示:

  \x

32. 获取当前时间:

  select now();   =    select current_timestamp;

  select localtime;

  select current_time;

  select current_date;

33. 时间计算:

  select now() + interval '2Y'   or '2y' or '2 year'

  select now() + interval '1 month'

  select now() + interval '3 week'

  select now() + interval '5 day'

34. 时间差计算:age()

  select age(now(), timestamp '2018-01-01');

35. 截取时间段:extract()

  select extract(day from now());

  select extract(day from interval '10 days 20 minutes');

  select extract(doy from now());    -- 查看今天是今年的第几天

  select extract(dow from now());    --查看今天是本周的第几天

  select extract(epoch from now());    --查看此时距离1970-01-01 00:00:00 UTC 的秒数

  SELECT TIMESTAMP WITH TIME ZONE 'epoch' + 1369755555 * INTERVAL '1 second';   --把epoch 值转换回时间戳

  

Abbreviation Meaning
Y Years
M Months (in the date part)
W Weeks
D Days
H Hours
M Minutes (in the time part)
S Seconds