psql 工具详细使用介绍
psql 介绍
psql 是 PostgreSQL 中的一个命令行交互式客户端工具,
它允许你交互地键入 SQL 命令,然后把它们发送给 PostgreSQL 服务器,再显示 SQL 或命令的结果。
输入的内容允许来自一个文件,此外它还提供了一些元命令和多种类似 shell 的特性来实现书写脚本,以及对大量任务的自动化工作。
特性:方便快捷、没有图形化工具使用上的一些限制
psql 的简单使用
直接输入 psql 进入到命令行下:

安装数据库时,会自动创建一个与当前操作系统用户同名的数据库超级用户,在当前系统下,登录数据库时执行的是操作系统认证,所以不需要用户名和密码,当然也可以通过修改 pg_hba.conf 文件来要求输入密码。
下面介绍一下常用的 psql 连接数据库的方法,命名格式如下:
psql -h <hostname or ip> -p <端口> [数据库名称] [用户名称]

这些连接参数也可以用环境变量指定,比如:
export PGDATABASE=testdb
export PGHOST=127.0.0.1
export PGPORT=5432
export PGUSER=postgres
然后直接允许 psql 即可。
psql 的常用命令
psql 的命令都是以斜杠 "\" 开头的。
\l 查看所有数据库
\d [ pattern ] 该命令将显示每个匹配关系(表、视图、索引、序列)的信息,可以加上 + 查看更多的信息,如 \d+
1、不加任何参数表示查看当前数据库的所有表。
2、\d tablename 后面跟一个表名,表示显示这个表的结构定义
3、\d indexname 也可以显示索引的信息,如 \d 索引名称
4、\d * 后面也可以跟通配符如 "*" 或 "?",\d x*
5、\d+ 将显示比 \d 更详细的信息,还会显示任何与表关系的注释,以及表中出现的 OID
6、\dt 只显示匹配的表
\di 只显示索引
\ds 只显示序列
\dv 只显示视图
\df 只显示函数
7、\timing on或off 显示 SQL 已执行的时间,默认情况下是 off

8、\dn 列出所有的 schema
9、 \du 或 \dg 列出所有的数据库用户和角色
10、 \db 显示所有的表空间,表空间其实是一个目录,放在这个表空间的表,就是把表的数据文件发到这个表空间下。
11、\dp 或 \z 显示表的权限分配情况
12、\encoding 指定客户端的字符编码,如 \encoding UTF8;
13、\pset 设置输出的格式,\pset border 0 : 表示输出内容无边框。 border 1 :表示边框只在内部。border 2 :内外都有边框
14、\x 把表中的每一行的每列数据都拆分为单行展示,与 MySQL 中的 "\G" 的功能类似。

15、\echo 用于输出一行信息,通常用于在 .sql 文件中输出一些提示信息。
16、\password 设置密码
17、\conninfo 列出当前数据库连接的信息
18、\dx 查看数据库中安装的扩展 或 select * from pg_extension;
更多的命令可以用 \? 来显示
执行存储在外部文件中的 SQL 命令
\i <文件名> 执行存储在外部文件中的 sql 语句
当然也可以在 psql 命令行加 "-s <filename>" 来执行 SQL 脚本文件中的命令,如 psql -s test.sql
psql 的使用技巧和注意事项
1、在启动 psql 命令后中加 "-E" 参数,就可以把 psql 中各种以 "\" 开头的命令执行的实际 SQL 打印出来,如下 psql -E postgres,如果想关闭此功能,可以使用 "\set ECHO_HIDDEN on | off"
2、自动提交方面的技巧
psql 中的事务是自动提交的,可以运行 begin; 然后执行 dml 语句,最后再执行 commit 或 rollback 语句。或 直接使用 psql 中的命令关闭自动提交的功能。 \set AUTOCOMMIT off
3. 查看数据库、表、索引大小
select pg_size_pretty(pg_table_size('test'));
select pg_size_pretty(pg_database_size('david'));
select pg_size_pretty(pg_indexes_size('test'));
转发请著名出处: https://www.cnblogs.com/ryanzheng/p/9575902.html
psql 工具详细使用介绍的更多相关文章
- Linux sar命令工具详细介绍
sar命令工具详细介绍 by:授客 QQ:1033553122 由于篇幅限制,采用网盘分享, 下载地址: sar命令工具详细介绍.pdf
- 单元测试系列:Mock工具Jmockit使用介绍
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6760272.html Mock工具Jm ...
- Android性能测试工具:Emmagee介绍
简介 Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具.该工具的优势在于如同windows系统性能监视器类似,它提供的是数据采集的功能,而行为则基于用户真实 ...
- Linux操作系统--help、man和info工具的区别介绍
http://wenda.tianya.cn/wenda/thread?tid=1d4b0f172f958833Linux操作系统--help.man和info工具的区别介绍 Linux操作系统为我们 ...
- JVM问题排查工具:Serviceability-Agent介绍
本文首发于微信公众号:javaadu 简单介绍 构建高性能的Java应用过程中,必然会遇到各种各样的问题,像CPU飙高.内存泄漏.应用奔溃,以及其他疑难杂症,这时可以使用Serviceability ...
- DELL服务器管理工具和RACADM介绍
DELL服务器管理工具和RACADM介绍 一.Dell服务器管理工具介绍 Dell对服务器(DELL PowerEdge)的管理主要提供了三种管理工具,分别是Dell Remote Access Co ...
- 工具篇:介绍几个好用的guava工具类
前言 平时我们都会封装一些处理缓存或其他的小工具.但每个人都封装一次,重复造轮子,有点费时间.有没有一些好的工具库推荐-guava.guava是谷歌基于java封装好的开源库,它的性能.实用性,比我们 ...
- 渗透测试之BurpSuite工具的使用介绍(三)
若希望从更早前了解BurpSuite的介绍,请访问第二篇(渗透测试之BurpSuite工具的使用介绍(二)):https://www.cnblogs.com/zhaoyunxiang/p/160002 ...
- 2.SDK目录结构和adb工具及命令介绍
安卓开发学习笔记 1.安卓开发之环境搭建 2.SDK目录结构和adb工具及命令介绍 1.SDK目录介绍: ******************************** add-ons:Androi ...
随机推荐
- 让SAP云平台上的Web应用使用destination服务
首先在SAP云平台里创建一个destination,维护service的end point: 然后打开SAP云平台的WebIDE,创建一个新的文件夹和新的HTML5 Application Descr ...
- Codeforces Round #324 (Div. 2) A B C D E
A,水题不多说. #include<bits/stdc++.h> using namespace std; //#define LOCAL int main() { #ifdef LOCA ...
- Android(java)学习笔记82:利用SpannableString设置复合文本
1. SpannableString设置复合文本: TextView通常用来显示普通文本,但是有时候需要对其中某些文本进行样式.事件方面的设置.Android系统通过SpannableString类来 ...
- securetextentry 切换后有空格问题解决
搜索发现这个问题,网上的解决方法不明确,对于小白怎么办 直接上代码: - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundCo ...
- 使用U盘引导安装CentOS
一.制作linux引导盘 1. 格式化U盘:格式成FAT32格式 2. 安装syslinux https://www.kernel.org/pub/linux/utils/boot/syslinux/ ...
- Qt之QThread随记
这是一篇随记,排版什么的就没有那么好了:) 首先要知道,一个线程在资源分配完之后是以某段代码为起点开始执行的,例如STL内的std::thread,POSIX下的pthread等,都是以函数加其参数之 ...
- SummerVocation_Learning--java的String类运用
题目: 编写一个程序,输出一个字符串中的大写字母数,小写字母数,及其它字母数. 思路1: 可以先遍历整个字符串,在判断每个字符的类型. public class TestString { public ...
- STL之deque用法
deque:双端队列 底层是一个双向链表. 常用的有队列的尾部入队.首部出队. 普通队列:queuequeue 模板类的定义在<queue>头文件中.与stack 模板类很相似,queue ...
- 【原创】大数据量时生成DataFrame避免使用效率低的append方法
转载请注明出处:https://www.cnblogs.com/oceanicstar/p/10900332.html ★append方法可以很方便地拼接两个DataFrame df1. ...
- (80)zabbix性能优化中的几个建议
随着zabbix的广泛应用,少数人的zabbix服务器在性能上出现瓶颈,或者在未来会出现性能方面的瓶颈,接下来讨论几个有效并且简单的优化方案. 服务器硬件 想通过几个简单的配置让服务器提高成倍的性能, ...