postgreSQL psql工具使用详解

 

       PostgreSQL是功能最接近Oracle的开源数据库,对标Oracle 的sqlplus工具,在PostgreSQL中也有一个类似的命令行工具,就是plsq,它允许你交互地键入SQL或命令,本节就来讲讲psql的使用方法。

一. 进入psql

  psql -h -p <端口> [数据库名称] [用户名称]

如下:通过postgres用户进入jimhe这个本地数据库:

psql -h localhost -p 5432 jimhe postgres

如果相应的环境变量都配好了,包括这几个环境变量:

PGDATABASE,PGHOST,PGPORT,PGUSER

配置好之后,就可以直接输入plsq进入psql界面:

 

进入后可以看到psql的版本是11.2.

通过使用plsql -l 可以查看有哪些数据库。

postgreSQL psql工具使用详解_第1张图片

 

二.常用的命令

  psql的命令大多数都是以\开头的,下面将介绍常用的psql命令

 1. \l  查看有哪些数据库

  postgreSQL psql工具使用详解_第2张图片

  postgreSQL psql工具使用详解_第3张图片

  2. \c 用于切换数据库

  

 3. \q 用于退出psql命令行界面

 

4. \d命令

   \d命令的格式如下:

   \d [ pattern ]

   \d [ pattern ] +

   该命令用于显示每个匹配关系(表,视图,索引,序列)的信息

   (1)如果\d 后面什么都不带,会显示数据库所有的表,视图,索引,序列。

      postgreSQL psql工具使用详解_第4张图片

      (2)\d后面跟一个表名,表示显示这个表的结构定义

       postgreSQL psql工具使用详解_第5张图片

    (3)\d 后跟一个索引,可以显示索引的信息

          postgreSQL psql工具使用详解_第6张图片

     (4)\d后面跟通配符如“*” 或“?”

           postgreSQL psql工具使用详解_第7张图片

          (5) \d后面可以跟视图

           postgreSQL psql工具使用详解_第8张图片

         (6)\d+命令显示比\d更多的信息包括表和列的注释等相关信息

           postgreSQL psql工具使用详解_第9张图片

     (7) 匹配不同对象类型的\d命令

           \dt   显示匹配的表

           \di   显示匹配的索引

           \ds  显示匹配的序列

           \dv  显示匹配的视图

           \df   显示匹配的函数

      (8)如果想显示SQL已经执行的时间,可以使用\timing on 命令开启计时功能,如果要关闭,使用\timing off关闭计时功能。

             postgreSQL psql工具使用详解_第10张图片

         (9)列出所有的schema 使用 \dn

            postgreSQL psql工具使用详解_第11张图片

         (10)显示所有的表空间 使用\db

              postgreSQL psql工具使用详解_第12张图片

          (11) 列出所有的角色或者用户,使用\du 或者\dg命令。

               postgreSQL psql工具使用详解_第13张图片

             这两个命令其实是等价的,在PG中角色和用户是一个概念。

           (12)显示权限分配情况 \dp或者\z

            postgreSQL psql工具使用详解_第14张图片

       (13)\i file 执行文件中的命令

              一般\i用于执行sql文件的脚本

            postgreSQL psql工具使用详解_第15张图片

 

三.指定字符集编译的命令

      当客户端的字符编码与服务器不一致时,可能出现乱码现象,可以使用\encoding命令指定客户端的字符编码。

    比如:

   \encoding gbk    设置客户端的字符编码为gbk.

   \encoding utf8    设置客户端的字符编码为uft8

四. \pset 命令

    \pset命令用于设置输出的格式

    \pset border 0:表示输出内容无边框

    \pset border 1:表示边框只在内部存在

    \pset border 2:表示内外都有边框

    postgreSQL psql工具使用详解_第16张图片

 

    postgreSQL psql工具使用详解_第17张图片

 

   postgreSQL psql工具使用详解_第18张图片

   上面三种风格可以比较明显的看出来,可以根据自己喜好设置。

五. \x命令

    使用\x命令,可以把表中的每一行的每列数据都拆分为单行展示,这种适合列比较多,界面显示不全的情况下比较有用。

   postgreSQL psql工具使用详解_第19张图片

  扩展显示相当于列转行了,把多列显示成多行,更容易查看。

  关闭扩展显示可以再输入一次\x 。

六.显示信息命令

    \echo命令用于输出一行信息

   这个命令和shell中的echo命令功能是一样的,打印一条记录。可以在编写sql脚本中使用,然后调用psql执行时就会打印出来相应的信息。

  比如sql文件内容如下:

  

\echo ----------------------------------------------------
select * from code_test.test limit 10;
\echo -----------------------------------------------------

  执行命令后结果日下所示:

 postgreSQL psql工具使用详解_第20张图片

 七.自动提交功能

     在psql中事务是自动提交的,为了控制事务的进行,不希望自动提交事务,可以采用两种方法来进行操作。

    第一种方法就是在命令的开始输入begin;  然后在命令的结束位置输入 commit或者rollback,  commit表示事务提交,rollback表示事务回滚。

    第二种方式就是通过设置 \set AUTOCOMMIT off将自动提交功能关闭。

  postgreSQL psql工具使用详解_第21张图片

  postgreSQL psql工具使用详解_第22张图片

 postgreSQL psql工具使用详解_第23张图片

八 更多的命令

   通过使用\? 可以获取到更多的命令的解释。

   postgreSQL psql工具使用详解_第24张图片

 

 

 

 

 

 

 

 

             

   

      

 

 

 

 

 

 

 

    

 

你可能感兴趣的:(postgreSQL psql工具使用详解)