刘刚刚的个人博客

psql的使用

创建时间:2021-07-11 01:23:06
更新时间:2021-07-11 01:23:06

psql时postgreSQL的命令行工具,提供了很多sql语法的简写,使用起来更加的方便.

psql的使用模式

psql包括两种使用模式:

  • 交互模式

    # 输入psql进入交互环境
    [postgres@postgresql ~]$ psql 
    psql (12.1, server 12.7)
    Type "help" for help.
    
    postgres=# \l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
    -----------+----------+----------+-------------+-------------+-----------------------
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
    (3 rows)
    
    postgres=# exit
  • 非交互模式

    # 在linux的命令行种直接执行命令
    [postgres@postgresql ~]$ psql -l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
    -----------+----------+----------+-------------+-------------+-----------------------
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
    (3 rows)
    
    [postgres@postgresql ~]$ 

常用的命令

类别命令说明示例
运行外部sqlpsql -f 文件名
帮助psql -h
类别命令说明示例
帮助h [sql 命令]显示sql命令的帮助信息h create user
显示信息d [参数]显示和参数相关的所有信息(包括:表,视图,索引,序列,约束,触发器等)
默认显示所有的表
如果参数为表名,则显示表的结构
d [表名]
d+ [参数]可以显示比d 更多的信息,比如:字段的注释
dt [参数]显示相关的表
di [参数]显示相关的索引
ds [参数]显示相关的序列
dv [参数]显示相关的视图
df [参数]显示相关的函数
dn列出所有的schema
db列出所有的表空间
du 或 dg列出所有的用户和角色,两个命令等价,pg种不区分用户和角色
dp 或 z显示表的权限的分配情况
显示执行时间timing on显示sql的执行时间
字符集encoding [字符集]指定客户端的字符集,解决与服务端字符集不一直的情况encoding utf8
格式化输出pset
pset border [参数]0-无边框,1-内边框,2-全部边框peset border 2
pset format unaligned修改数据的间隔方式,默认使用 \作为间隔
pset fieldsep [间隔符]修改默认的间隔符pset fieldsep "t"
o [文件名称]将输出重定向到文件种o a.txt
t取消结果种的列头及行数
x将输出换为按行显示,
运行外部文件i 文件名
编辑命令e进入vim ,编辑上一个执行的命令或者语句,保存后会立即执行.
ef [函数名]无参数代表创建函数
有参数代表查看函数的定义
ev [视图名]无参数代表创建视图<br/>有参数代表查看视图的定义
帮助?

....

psql的使用技巧

  1. 历史命令:使用上下键来查看历史命令
  2. 命令补全: 使用tab键
  3. 取消自动提交的功能:

    • 方法1:语句前写 begin;提交或者回滚时,使用 "commit;"或者"rollback"
    • 方法2: 关闭自动提交功能.\set AUTOCOMMIT off
  4. 显示psql的命令对应的语句

    • 方法1: 启动时加-E参数.
    • 方法2: 使用语句 \set ECHO_HIDDEN on | off
我的名片

昵称:shuta

职业:后台开发(python、php)

邮箱:648949076@qq.com

站点信息

建站时间: 2020/2/19
网站程序: ANTD PRO VUE + TP6.0
晋ICP备18007778号