[PSQL介绍]
psql是一个PostgreSQL的基于终端的前端(相当于Oracle数据库的SQLPLUS)。它让你能交互式地键入查询,把它们发送给PostgreSQL,并且查看查询结果。此外,它还提供了一些元命令和多种类似Shell的特性来实现书写脚本,以及对大量任务的自动化作业。

[PSQL常用命令]
1.查询当前数据库

psql -l

2.数据库登录

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


※1 如果我们需要在已经登录的状态切换到其他用户或数据库,可以参考如下命令:

postgres=# \c <数据库> <切换用户>

※2 通常我们会通过用户环境变量简化一些参数配置。

cat ~/.bash_profile


※ 数据库部署完毕,它会有一个postgres的数据库,还有两个模板数据库template0(最精简)和template1(默认模板)。用户在创建数据库时,默认是从模板数据库template1克隆出来的。如果向template1中添加一些表或函数,那么新创建的数据库就会继承template1的内容。

3.数据库退出

postgres=# \q

4.PSQL执行SQL命令

psql -c "select * from test limit 10" zhong zuser01


5.PSQL执行SQL文件

vi /tmp/test.sql truncate table test;DROP TABLE test;CREATE TABLE test(id int4, name text, create_time timestamp without time zone default clock_timestamp());ALTER TABLE test ADD PRIMARY KEY (id);INSERT INTO test(id,name) SELECT n,n || '_francs' from generate_series(1,500) n;
/opt/pgsql/bin/psql zhong zuser01 -f /tmp/test.sql


6.PSQL常用元命令

参数 用途
\h 查看帮助文档
\c 数据库名 切换数据库
\du 查询所有用户与权限
\db 查询表空间信息
\dp 查询表权限分配
\dt 查询用户所有表
\d [表或索引] 查询表与索引定义
\di [索引名] 查询用户所有索引
\db+ 查询数据库容量
\d+ 查询所有表容量
\di+ 查询所有索引容量
\sf <函数名称> 查看函数代码
\x 设置查询结果输出模式
\pset border <0|1|2> 设置输出格式边框宽
\timing <on|off> 显示SQL已执行时间

※ 通过tab键实现补全元命令或表名称

[PSQL常见问题]
1.PSQL自动提交如何取消?
方法一:通过begin命令与commit/rollback命令结合实现;
方法二:直接关闭psql自动提交功能;

\set autocommit off

2.PSQL显示乱码?
客户端与服务器端字符不一致时,PSQL会出现部分显示乱码。

\encoding gbk
\encoding utf8

3.如何将常用的SQL命令制作为元命令方式?
通过编辑.psqlrc文件就可以实现

vi ~/.psqlrc
\set active_session 'select pid, usename, datname, query, client_addr from pg_stat_activity where pid<> pg_backend_pid() and state=\'active\' order by query;'


如下是我常用的定制:

-- 登录提示符
\set PROMPT1 '%[%033[1;33;40m%]%n@%/%R%[%033[0m%]%# '-- 查询活动会话
\set active_session 'select pid, usename, datname, state, query, client_addr from pg_stat_activity where pid<> pg_backend_pid() order by query;'-- 查询等待事件
\set wait_event 'select pid,usename,datname,query,client_addr,wait_event_type,wait_event from pg_stat_activity where pid <> pg_backend_pid() and wait_event is not null order by wait_event_type;'-- 查询数据库连接数
\set connections 'select datname, usename, client_addr, count(*) from pg_stat_activity where pid<> pg_backend_pid() group by 1,2,3 order by 1,2,4 desc;'
  1. pgpass密码文件
%APPDATA%\postgresql\pgpass.conf
hostname:port:database:username:password

[更新履历]
2019-12-05 新增用户切换命令信息
2019-12-28 新增pgpass免密文件

PostgreSQL 数据库系列之二:PSQL客户端相关推荐

  1. PostgreSQL数据库系列之六:增量备份和恢复

    [概述] 备份是恢复的前提.不发生故障时,世界很太平,但发生故障时,如果不能顺利进行恢复,那将是一场噩梦!甚至可能对于企业是致命打击,这绝对不是危言耸听! 日常的备份有效性的检查就显得尤其重要,一个无 ...

  2. postgresql数据库系列之:cmd命令行访问远程postgresql数据库

    postgresql数据库系列之:cmd命令行访问远程postgresql数据库 psql -h 10.129.88.141 -U iris_read -d iris_test Password fo ...

  3. 数据库发展与PostgreSQL生态系列文章二

    作者:魏波,中国PG分会培训认证执行总监.资深数据库工程师,十多年的数据库运维管理及培训经验,掌握PostgreSQL架构部署.性能优化等,致力于推动PostgreSQL在中国的发展. 数据库发展概要 ...

  4. 死磕数据库系列(二十六):MySQL 高可用之单主、双主模型组复制配置实践

    点关注公众号,回复"1024"获取2TB学习资源! 前面我们学习:MySQL 高可用之组复制(MGR)技术的相关原理知识,今天我将详细的为大家介绍 MySQL 高可用技术组复制的单 ...

  5. 死磕数据库系列(二十):MySQL 数据库 DDL、DML、DQL、DCL 语言理论与实践(sql 8.0 版)...

    点关注公众号,回复"1024"获取2TB学习资源! 今天,民工哥带大家一起来学习一下 MySQL 数据库的 DDL.DML.DQL.DCL 这几种语言的理论知识与实践.如有帮助,请 ...

  6. PostgreSQL数据库系列之五:预写式日志WAL

    [WAL介绍] Write-Ahead Logging是一种保证数据完整性的标准方法.简单地说,WAL的概念就是对数据文件的改变(包括表和索引)必须先写入日志,即日志记录刷新到永久储存之后,才能被写. ...

  7. 数据库系列(二):数据库基础02

    1.MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 1.1.数值类型 MySQL支 ...

  8. 后端开发如何设计数据库系列文章(二)设计大数据量表结构

    上篇文章讲解了传统数据库的一些设计注意点. 本篇为第二篇,在大数据量的情况下,如何去提前设计这个表结构,来达到一个比较好的效果.对于团队,对于后续的维护和扩展都带来更大的便利. 自增id 自增id还是 ...

  9. PostgreSQL流复制之二:pgpool-II实现PostgreSQL数据库集群(转发+整理)

    转发来源: PostgreSQL的集群技术比较:https://iwin.iteye.com/blog/2108807 参考:https://blog.csdn.net/yaoqiancuo3276/ ...

最新文章

  1. windows下rpc框架thrift的环境配置
  2. 投了3遍都被毙的论文,终于中了
  3. linux怎么在win上安装mysql_CentOS下安装MySQL及Windows下使用Navicat for MySQL连接
  4. mysql 重启_windows下重启mysql的方法
  5. Java 故障处理与性能监控工具
  6. python爬虫应用实例_Python爬虫进阶必备 | 一个典型的 AES 加密在爬虫中的应用案例...
  7. Python绘制渐变色三角形
  8. php 跨域 json,php跨域调用json的例子
  9. 编译原理: Thompson 构造法(正则表达式 转 NFA)
  10. 10.5 Parameterize Method 让方法携带参数
  11. 育儿心得,所有适龄女青年都该看一下(转)
  12. 为什么Android系统比ios系统卡?
  13. MaxEnt软件的下载与安装
  14. 阿里达摩院获KDD 2022最佳论文,国内企业首次获奖
  15. Visual and Object Geo-localization: A Comprehensive Survey
  16. android 2.3 StrictMode 使用
  17. chosen插件 select 替换 option
  18. python第二周day3
  19. 用计算机写文章 单元备课,泰山版小学信息技术第一册上第四单元单元备课
  20. 关于libpthread.a静态链接缺少依赖问题

热门文章

  1. c语言expand函数,编撰expand(s1,s2)
  2. 基于深度学习的股票预测(完整版,有代码)
  3. 高一数学知识点:逻辑联结词、全称量词与存在量词
  4. android高仿京东秒杀,Android仿京东首页秒杀倒计时
  5. Word 突出显示 快捷键
  6. 新高考计算机科学与技术,2017年浙江新高考:“技术科目”成“黑马”
  7. spring线程池的使用
  8. Java序列化与反序列化(一)
  9. Facebook SDK for iOS 2.4 iOS 6 上运行崩溃
  10. 网吧服务器点歌系统,和朋友在网吧五黑,看到网吧有点歌系统,就点了一首……...