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 工具详细使用介绍的更多相关文章

  1. Linux sar命令工具详细介绍

    sar命令工具详细介绍 by:授客 QQ:1033553122 由于篇幅限制,采用网盘分享, 下载地址: sar命令工具详细介绍.pdf

  2. 单元测试系列:Mock工具Jmockit使用介绍

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6760272.html Mock工具Jm ...

  3. Android性能测试工具:Emmagee介绍

    简介 Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具.该工具的优势在于如同windows系统性能监视器类似,它提供的是数据采集的功能,而行为则基于用户真实 ...

  4. Linux操作系统--help、man和info工具的区别介绍

    http://wenda.tianya.cn/wenda/thread?tid=1d4b0f172f958833Linux操作系统--help.man和info工具的区别介绍 Linux操作系统为我们 ...

  5. JVM问题排查工具:Serviceability-Agent介绍

    本文首发于微信公众号:javaadu 简单介绍 构建高性能的Java应用过程中,必然会遇到各种各样的问题,像CPU飙高.内存泄漏.应用奔溃,以及其他疑难杂症,这时可以使用Serviceability ...

  6. DELL服务器管理工具和RACADM介绍

    DELL服务器管理工具和RACADM介绍 一.Dell服务器管理工具介绍 Dell对服务器(DELL PowerEdge)的管理主要提供了三种管理工具,分别是Dell Remote Access Co ...

  7. 工具篇:介绍几个好用的guava工具类

    前言 平时我们都会封装一些处理缓存或其他的小工具.但每个人都封装一次,重复造轮子,有点费时间.有没有一些好的工具库推荐-guava.guava是谷歌基于java封装好的开源库,它的性能.实用性,比我们 ...

  8. 渗透测试之BurpSuite工具的使用介绍(三)

    若希望从更早前了解BurpSuite的介绍,请访问第二篇(渗透测试之BurpSuite工具的使用介绍(二)):https://www.cnblogs.com/zhaoyunxiang/p/160002 ...

  9. 2.SDK目录结构和adb工具及命令介绍

    安卓开发学习笔记 1.安卓开发之环境搭建 2.SDK目录结构和adb工具及命令介绍 1.SDK目录介绍: ******************************** add-ons:Androi ...

随机推荐

  1. Mysql update后insert造成死锁原因分析及解决

    系统中出现死锁的日志如下: ) TRANSACTION: , ACTIVE sec inserting mysql tables , locked LOCK WAIT lock struct(s), ...

  2. 使用NIO快速复制Java文件

    package com.test.test; import java.io.File;import java.io.FileInputStream;import java.io.FileOutputS ...

  3. php使用GD库实现图片水印和缩略图——生成图片缩略图

    今天呢,就来学习一下在php中使用PD库来实现对图片水印的文字水印方法,不需要PS哦! 首先,准备素材 (1)准备一张图片 (2)准备一张水印(最好是透明的,即背景是白色底) (3)准备一中字体(在电 ...

  4. ES6中set和map的区别

    Set ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化. // 例一 var set = ne ...

  5. [VC]C++ operator 两种用法

    C++中的operator,有两种用法,一种是operator overloading(操作符重载),一种是operator casting(操作隐式转换).下面分别进行介绍:   1.operato ...

  6. IOS plist的数据 存 取(沙河目录)

    应用沙盒目录的常见获取方式 沙盒根目录:NSString *home = NSHomeDirectory(); Documents:(2种方式) 1.利用沙盒根目录拼接”Documents”字符串 N ...

  7. WebAppBuilder独立于portal之arcgis for js应用框架研究之二

    WAB采用ArcGIS JavaScript for API作为地图开发底层,采用Web AppBuilder作为开发框架,利用该框架即拿即用的Widget来构建应用,比如制图.查询.地理处理.编辑. ...

  8. 汇编 if else 例子

    .text .global  _start _start: mov r1,#1 mov r2,#2 cmp r1, r2 bgt  branch1 add  r3,r1,r2 b  end branc ...

  9. 最新手机号正则表达式php包括166等号段

    if(!preg_match("/^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147)) ...

  10. JZOJ 5849 d

    Description Input Output Data Constraint 做法:考虑贪心使得mina*minb最大,先以a为关键字排序,然后枚举删除最小的0~m个ai,对应删除最小的bi,然后 ...