【PostgreSQL】PostgreSQL操作-psql基本命令

在阅读的过程中有不论什么问题,欢迎一起交流

邮箱:1494713801@qq.com   

QQ:1494713801

一、建立数据库连接
----------------
接入PostgreSQL数据库: psql -h IP地址 -p port  -U 数据库名

之后会要求输入数据库password

二、訪问数据库

1、列举数据库:l
2、选择数据库:c  数据库名
3、查看该某个库中的全部表:dt
4、切换数据库:c interface
5、查看某个库中的某个表结构:d 表名
6、查看某个库中某个表的记录:select * from apps limit 1;
7、显示字符集:encoding
8、退出psgl:q

三、dump数据库

命令:pg_dump -h IP地址 -p port -U 数据库username -f 目标存储文件及路径 目标数据库名

之后会要求输入数据库用户password

參数:

    # -h: PostgreSQLserver的主机为192.168.149.137。
    # -U: 登录用户为postgres。
    # -t: 导出表名以test开头的数据表。如testtable。


    # -a: 只导出数据。不导出对象的schema信息。
    # -f: 输出文件是当前文件夹下的my_dump.sql

实例:
    # mydatabase是此次操作的目标数据库。
    /> pg_dump -h 192.168.149.137 -U postgres -t test* -a -f ./my_dump.sql mydatabase
    #-c: 先输出删除数据库对象的SQL命令。在输出创建数据库对象的SQL命令。这对于部署干净的初始系统或是搭建測试环境都很方便。
    /> pg_dump -h 192.168.220.136 -U postgres -c -f ./my_dump.sql mydatabase
    #导出mydatabase数据库的信息。在通过psql命令导入时能够又一次指定数据库,如:/> psql -d newdb -f my_dump.sql
    /> pg_dump -h 192.168.220.136 -U postgres -f ./my_dump.sql mydatabase
    #导出模式为my_schema和以test开头的数据库对象名。可是不包含my_schema.employee_log对象。
    /> pg_dump -t 'my_schema.test*' -T my_schema.employee_log mydatabase > my_dump.sql
    #导出east和west模式下的全部数据库对象。以下两个命令是等同的,仅仅是后者使用了正则。
    /> pg_dump -n 'east' -n 'west' mydatabase -f my_dump.sql
    /> pg_dump -n '(east|west)' mydatabase -f my_dump.sql

 四、恢复dump的数据库

命令:psql -h IP地址 -p port -U 数据库username -d 目标数据库名 -f 目标存储文件及路径

之后会要求输入数据库用户password

參数:

    # -h: PostgreSQLserver的主机为192.168.149.137。
    # -U: 登录用户为postgres。
    # -f: 输出文件是当前文件夹下的my_dump.sql

 五、压缩dump数据库及其恢复

压缩dump:pg_dump -h IP地址 -p port -U 数据库username -f 目标存储文件及路径 -Fc 目标数据库名

恢复:pg_restore -h IP地址 -p port -U 数据库username -Fc -d 目标数据库名 目标存储文件及路径

附:压缩dump后文件大小会缩小10倍

六、使用系统表查询数据库个数

运行sql命令:select count(*) from pg_database where datname like 'db%';

參考http://www.cnblogs.com/stephen-liu74/archive/2012/06/01/2307813.html

原文地址:https://www.cnblogs.com/yjbjingcha/p/6888651.html