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 ~]$
常用的命令
类别 | 命令 | 说明 | 示例 |
---|---|---|---|
运行外部sql | psql -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的使用技巧
- 历史命令:使用上下键来查看历史命令
- 命令补全: 使用tab键
取消自动提交的功能:
- 方法1:语句前写
begin;
提交或者回滚时,使用"commit;"
或者"rollback"
- 方法2: 关闭自动提交功能.
\set AUTOCOMMIT off
- 方法1:语句前写
显示psql的命令对应的语句
- 方法1: 启动时加
-E
参数. - 方法2: 使用语句
\set ECHO_HIDDEN on | off
- 方法1: 启动时加