惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Darknet – Hacking Tools, Hacker News & Cyber Security
Jina AI
Jina AI
博客园_首页
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
Forbes - Security
Forbes - Security
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
The Register - Security
The Register - Security
N
News | PayPal Newsroom
S
Security Archives - TechRepublic
量子位
Cisco Talos Blog
Cisco Talos Blog
V
V2EX
C
Cisco Blogs
The Cloudflare Blog
Stack Overflow Blog
Stack Overflow Blog
L
LangChain Blog
Scott Helme
Scott Helme
S
Securelist
Security Latest
Security Latest
爱范儿
爱范儿
TaoSecurity Blog
TaoSecurity Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
L
LINUX DO - 最新话题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
美团技术团队
Know Your Adversary
Know Your Adversary
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
PCI Perspectives
PCI Perspectives
月光博客
月光博客
T
Tailwind CSS Blog
Cloudbric
Cloudbric
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
D
DataBreaches.Net
博客园 - 【当耐特】
有赞技术团队
有赞技术团队

博客园 - 刀哥道

python 占位符 %s Format odoo 中字段属性对象Field 安装CentOS7.7图解 docker的volumes Docker常用命令详解 Ubuntu修改时区和更新时间 SqlServer创建时间维度 odoo 去除登录页‘数据库管理’和‘由odoo提供支持’字样 Python之虚拟环境virtualenv python三大神器之virtualenv linux下将Python环境默认更改为Python3.6 费曼学习法 Ubuntu修改系统默认编码 如何在Ubuntu 18.04上安装和使用PostgreSQL Bash简介 & Bash是如何处理命令的 ubuntu环境变量的三种设置方法 使用ubuntu server18.04 搭建odoo12运行环境 Ubuntu修改时区和更新时间 Ubuntu18.04修改apt-get源
psql 工具详细使用介绍
刀哥道 · 2019-09-30 · via 博客园 - 刀哥道

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'));√