暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

psql工具的使用介绍

叶同学专栏 2021-04-16
6613

1psql介绍

psqlPostgreSQL中的一个命令行交互式客户端工具,类似Oracle中的命令行工具sqlplus,但它使用起来远比sqlplus方便。它允许你交互地键入SQL或命令,然后把它们发出给PostgreSQL服务器,再显示SQL或命令的结果。而且,输人的内容还可以来自于一个文件。此外,它还提供了一些元命令和多种类似shell的特性来实现书写脚本,以及对大量任务的自动化工作。

2、psql简单使用

2.1 psql连接数据库方法

    psql -h <hostname or ip> -P <端口> [数据库名称] [用户名称]

    这些连接参数也可以用环境变量指定,例如

      export PGDATABASE=testdb
      export PGHOST=192.168.43.128
      export PGPORT=6432
      export PGUSER=postgres

      2.2 使用psql –l查看有哪些数据库

      同时也可以在psql命令行中使用\l查看数据库

      3psql常用命令

      3.1 \d命令

      该命令将显示每个匹配关系(表、视图、索引、序列)的信息,包括对象所有的列、它们的类型、表空间( 如果不是默认的)和任何特殊属性(诸如NOT NULL或默认值等)等。与唯一约束相关的索引、规则、约束、触发器也同样会显示出来。如果关系是一个视图,还会显示视图的定义。

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

      如果想只显示匹配的表,可以使用\dt命令。

      如果想只显示索引,可以使用\di命令。

      如果想只显示序列,可以使用\ds命令。

      如果想只显示视图,可以使用\dv命令。

      如果想显示函数,可以使用\df命令。 

      \d+ 命令

      该命令将显示比\d命令更详细的信息,除了前面介绍的那些,它还会显示任何与表列关联的注释,以及表中出现的OID

      \timing    

      显示SQL的执行时间

      \dn          

      显示所有有schema

      \db           

      显示所有的表空间

      \du \dg 

      显示所有的角色或用户

      \dp \z

      显示表的权限分配情况

      3.2 \pset命令

      \pset命令用于设置输出的格式,具体如下。

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

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

      \pset border2:表示内外都有边框

      3.3 \x命令

      使用\x命令,可以把表中每一行的每列数据都拆分为单行展示

      3.4执行存储在外部文件中的SQL命令

      命令\i <文件名>执行存储在外部文件中的sql 语句或命令

      也可以用psql –f <文件名> 执行

      3.5显示信息的命令

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

      3.6 更多的使用用\?来查看 

      4psql使用技巧和注意事项

      4.1 历史命令和补全功能

      使用上下键把以前使用过的命令或SQL语句调出来,连续按两个tab键表示把命令补全

      4.2 事务的自动提交

      psql中事务是自动提交的。比方说,执行完一条deleteupdate语句后,事务就自动提交了,如果不想自动提交,方法有两种。

      方法一:运行begin;命令,然后执行dml语句,最后再执行commitrollback语句。

      没有commit,断开连接再重连值没有修改

      方法二:直接使用psql中的命令关闭自动提交的功能,需要手工commit

        \set AUTOCOMMIT off

        注意,这个命令中的“AUTOCOMMIT"是大写的,不能使用小写。

        4.3 得到psql中命令实际执行的sql

        如果在启动psql的命令行中加”-E”参数,就可以把psql中各种以“\”开头的命令执行的实际SQL打印出来

         在已运行的psql中关闭这个功能,使用“\set ECHO_HIDDEN on |off"命令


        文章转载自叶同学专栏,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论