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

在阅读的过程中有任何问题,欢迎一起交流

邮箱:[email protected]   

QQ:1494713801

 

 

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

之后会要求输入数据库密码

 

二、访问数据库

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 端口 -U 数据库用户名 -f 目标存储文件及路径 目标数据库名

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

参数:

    # -h: PostgreSQL服务器的主机为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 端口 -U 数据库用户名 -d 目标数据库名 -f 目标存储文件及路径

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

参数:

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

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

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

恢复:pg_restore -h IP地址 -p 端口 -U 数据库用户名 -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

你可能感兴趣的:(Linux)