PostgreSQL 数据库系列之二:PSQL客户端
[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;'
- pgpass密码文件
%APPDATA%\postgresql\pgpass.conf
hostname:port:database:username:password
[更新履历]
2019-12-05 新增用户切换命令信息
2019-12-28 新增pgpass免密文件
PostgreSQL 数据库系列之二:PSQL客户端相关推荐
- PostgreSQL数据库系列之六:增量备份和恢复
[概述] 备份是恢复的前提.不发生故障时,世界很太平,但发生故障时,如果不能顺利进行恢复,那将是一场噩梦!甚至可能对于企业是致命打击,这绝对不是危言耸听! 日常的备份有效性的检查就显得尤其重要,一个无 ...
- postgresql数据库系列之:cmd命令行访问远程postgresql数据库
postgresql数据库系列之:cmd命令行访问远程postgresql数据库 psql -h 10.129.88.141 -U iris_read -d iris_test Password fo ...
- 数据库发展与PostgreSQL生态系列文章二
作者:魏波,中国PG分会培训认证执行总监.资深数据库工程师,十多年的数据库运维管理及培训经验,掌握PostgreSQL架构部署.性能优化等,致力于推动PostgreSQL在中国的发展. 数据库发展概要 ...
- 死磕数据库系列(二十六):MySQL 高可用之单主、双主模型组复制配置实践
点关注公众号,回复"1024"获取2TB学习资源! 前面我们学习:MySQL 高可用之组复制(MGR)技术的相关原理知识,今天我将详细的为大家介绍 MySQL 高可用技术组复制的单 ...
- 死磕数据库系列(二十):MySQL 数据库 DDL、DML、DQL、DCL 语言理论与实践(sql 8.0 版)...
点关注公众号,回复"1024"获取2TB学习资源! 今天,民工哥带大家一起来学习一下 MySQL 数据库的 DDL.DML.DQL.DCL 这几种语言的理论知识与实践.如有帮助,请 ...
- PostgreSQL数据库系列之五:预写式日志WAL
[WAL介绍] Write-Ahead Logging是一种保证数据完整性的标准方法.简单地说,WAL的概念就是对数据文件的改变(包括表和索引)必须先写入日志,即日志记录刷新到永久储存之后,才能被写. ...
- 数据库系列(二):数据库基础02
1.MySQL 数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 1.1.数值类型 MySQL支 ...
- 后端开发如何设计数据库系列文章(二)设计大数据量表结构
上篇文章讲解了传统数据库的一些设计注意点. 本篇为第二篇,在大数据量的情况下,如何去提前设计这个表结构,来达到一个比较好的效果.对于团队,对于后续的维护和扩展都带来更大的便利. 自增id 自增id还是 ...
- PostgreSQL流复制之二:pgpool-II实现PostgreSQL数据库集群(转发+整理)
转发来源: PostgreSQL的集群技术比较:https://iwin.iteye.com/blog/2108807 参考:https://blog.csdn.net/yaoqiancuo3276/ ...
最新文章
- windows下rpc框架thrift的环境配置
- 投了3遍都被毙的论文,终于中了
- linux怎么在win上安装mysql_CentOS下安装MySQL及Windows下使用Navicat for MySQL连接
- mysql 重启_windows下重启mysql的方法
- Java 故障处理与性能监控工具
- python爬虫应用实例_Python爬虫进阶必备 | 一个典型的 AES 加密在爬虫中的应用案例...
- Python绘制渐变色三角形
- php 跨域 json,php跨域调用json的例子
- 编译原理: Thompson 构造法(正则表达式 转 NFA)
- 10.5 Parameterize Method 让方法携带参数
- 育儿心得,所有适龄女青年都该看一下(转)
- 为什么Android系统比ios系统卡?
- MaxEnt软件的下载与安装
- 阿里达摩院获KDD 2022最佳论文,国内企业首次获奖
- Visual and Object Geo-localization: A Comprehensive Survey
- android 2.3 StrictMode 使用
- chosen插件 select 替换 option
- python第二周day3
- 用计算机写文章 单元备课,泰山版小学信息技术第一册上第四单元单元备课
- 关于libpthread.a静态链接缺少依赖问题
热门文章
- c语言expand函数,编撰expand(s1,s2)
- 基于深度学习的股票预测(完整版,有代码)
- 高一数学知识点:逻辑联结词、全称量词与存在量词
- android高仿京东秒杀,Android仿京东首页秒杀倒计时
- Word 突出显示 快捷键
- 新高考计算机科学与技术,2017年浙江新高考:“技术科目”成“黑马”
- spring线程池的使用
- Java序列化与反序列化(一)
- Facebook SDK for iOS 2.4 iOS 6 上运行崩溃
- 网吧服务器点歌系统,和朋友在网吧五黑,看到网吧有点歌系统,就点了一首……...