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/wwh/p/11610772.html

时间: 2024-10-10 12:46:40

psql 工具详细使用介绍的相关文章

psql工具的使用介绍

查看有哪些数据库 psql -l 或 \l 查看有哪些表 \d 连接到某个数据库 \c [dbname数据库名] 查看某个表的结构定义 \d [tabname表名] 或 \d+ [tabname表名] 查看索引信息 \d [idxname索引名] 或 \d+ [idxname索引名] 查看以某些字母开头的表的结构定义 \d [表名开头字母]? 或 \d [表名开头字母] 或 \d+ [表名开头字母]? 或 \d+ [表名开头字母] 只显示匹配的表 \dt 只显示匹配的索引 \di 只显示匹配的序

PostgreSQL快速入门:psql工具的使用

一.psql介绍 psql是PostgreSQL中的一个命令行交互式客户端工具,类似Oracle中的命令行工具sqlplus: 1.允许你交互地键入SQL或命令,然后把它们发出给PostgreSQL服务器,再显示SQL或命令的结果: 2.输入的内容还可以来自一个文件: 3.还提供了一些元命令和多种类似shell的特性来实现书写脚本,以及对对量任务的自动化工作: 二.psql的简单实用 按照前面的步骤,切换su - postgres用户,实用psql工具连接数据库. 1.查看有哪些数据库 post

阿里云开源离线同步工具DataX3.0介绍

阿里云开源离线同步工具DataX3.0介绍 一. DataX3.0概览 ? DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之间稳定高效的数据同步功能. 设计理念 为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源.当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数

show table status like &#39;table&#39;\G 详细信息介绍

mysql> show table status like'leyangjun'\G *************************** 1. row *************************** Name: leyangjun                 表名字 Engine: MyISAM                 表存储引擎 Version: 10                          版本 Row_format: Dynamic        行格式

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

http://wenda.tianya.cn/wenda/thread?tid=1d4b0f172f958833Linux操作系统--help.man和info工具的区别介绍 Linux操作系统为我们提供了十分方便的系统文档帮助信息.例如 “--help”选项.man工具和info工具文档等.许多初学者对于这三种帮助信息的概念并不是十分了解,下面就让我们来作一些具有针对性的讲解. [b]“--help”选项[/b] “--help”是一个工具选项,大部分的GNU工具都具备这个选项,“--help

Android性能测试工具:Emmagee介绍

简介 Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具.该工具的优势在于如同windows系统性能监视器类似,它提供的是数据采集的功能,而行为则基于用户真实的应用操作. 开源地址:https://github.com/NetEase/Emmagee/releases 支持SDK:Android2.2以及以上版本 为什么使用Emmagee? 开源 使用方便 可以监控单个应用性能 浮窗显示实时展示数据 CSV格式保存性能数据,方便转换为其它格式 用户自定义

doT.js详细使用介绍

官网: http://olado.github.iodoT.js详细使用介绍 使用方法: {{= }} for interpolation {{ }} for evaluation {{~ }} for array iteration {{? }} for conditionals {{! }} for interpolation with encoding {{# }} for compile-time evaluation/includes and partials {{## #}} for

一、使用工具的简单介绍

学习数据库知识,不能只光光停留在阅读课本知识上,这样不光学习吃力,而且会让你慢慢崩溃,最终心理会出现一种对数据库知识的抵触心理,这是我在很长一段时间领会到的一点心得,为什么现在突然想对数据库进行学习:主要原因是系统上线后日常工作,维护,取值都几乎处处都与数据库打交道,感觉自己微薄的数据知识有点力不从心,往往会遇到一下让自己茫然的问题出来:还有就是大量的数据存储在服务器中,但挖掘出来的数据很少,使得大量有价值的数据存于"海底",这导致数据价值本身的搁置,浪费,想通过对数据加强学习,可以更

ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)

原文:ThinkPHP 自动创建数据.自动验证.自动完成详细例子介绍(十九) 1:自动创建数据 //$name=$_POST['name']; //$password=$_POST['password'];  ---这个注册页面传过来的POST值 下面用了自动穿件create方法就可以不用这个,会行动绑定 $user =M('User'); $User->create();   //会将传过来的$_POST数据对应到数据库的字段 $user->add();   //就可以直接写入 2:自动验证