PostgreSQL 系列博文讲解(B站同步介绍视频:https://space.bilibili.com/282421760)
支持一下,关注一波微信公众号:【 钥道不止 】
#查看客户端所有的连接参数选项
psql -? 或者 psql --help
#远程登录 -h:IP -p:PORT -d:DATABASE -U:USERNAME
psql -h 127.0.0.1 -p 5432 -d postgres -U postgres
# -W 选项的话,默认我们pg_hba.conf文件设置了认证模式为本地为trust所以不需要输入密码也能登陆,当我们切换为md5时候不加参数也会提示输入密码。
# -c 选项 后接执行的sql
psql -c 'select count(*) from pg_stat_activity;'
# -f 选项 执行sql脚本。
psql -f checkuser.sql
# -A 选项 设置非对齐输出模式,且返回结果没有空行。
psql -A -c 'select count(*) from pg_stat_activity;'
# -t 选项 输出结果只显示数据,一般于-A结合使用。
psql -At -c 'select count(*) from pg_stat_activity;'
# -q 选项 界面输出不显示信息,一般与-f参数,-c参数结合使用,在输出信息不重要的时候。
psql -q -f test.sql
# -v 传递参数变量。
psql -v v_id=1 -f test2.sql
psql进入到数据库之后,可以使用元命令,注意是反斜杠 \
\l 列出数据库
\d(+)会显示详细信息
\di 显示索引
\dv 显示视图
\dt 显示表
\db 显示表空间
\df 显示函数
\dn 显示模式
\du或\dg:显示用户和角色
\ds 显示序列
\x 换行输出
\timing 执行耗时,显示执行时间
\c 连接的数据库及对应用户(\c database username 或 \c - username)
\i 执行外部脚本
\q 退出(或者ctrl +D)
\copy 元命令,可以导出数据为text、csv、binary格式,还不支持导出为sql语句。普通用户也能执行 \copy test ,客户端操作 copy sql命令,只能超级用户执行,服务端操作,效率更高
#导出数据
\copy TABLENAME to '/home/postgres/a.txt';
#指定导出为csv格式
\copy TABLENAME to '/home/postgres/a.csv' with csv header;
#导入数据,追加方式
\copy TABLENAME from '/home/postgres/a.txt';
tab键位自动补全,箭头键支持上下翻阅历史sql命令(安装了readline包)
#显示元命令的实际SQL,进入时用-E参数或进入后再开启
psql -E
或
\set ECHO_HIDDEN on|off
#执行计划
explain analyze xxoo;
#显示DB编码
\encoding
#查看客户端编码
show client_encoding
#设定客户端编码
set client_encoding to 'GBK';
\encoding utf8
缺省是自动提交
# 查看是否是自动提交,\echo:输出一段文本
\echo :AUTOCOMMIT
# 会话级别关闭自动提交(小写无效)
\set AUTOCOMMIT off
# 语句级关闭自动提交
begin;
rollback;
end;
# 进入postgres用户
su - postgres
# 在用户根目录下创建 .pgpass 文件,并按格式编写
vi ~/.pgpass
##VIPhostname:port:database:username:password
192.168.56.103:5432:postgres:pg14:Pgdb@123
# 授于文件权限
chmod 0600 ~/.pgpass