PostgreSQL命令行工具psql常用命令

1. 概述

通常情况下操作数据库使用图形化客户端工具,在实际工作中,生产环境是不允许直接连接数据库主机,只能在跳板机上登录到Linux服务器才能连接数据库服务器,此时就需要使用到命令行工具。psql是PostgreSQL中的一个命令行交互式客户端工具,类似于Oracle数据库中的命令行工具sqlplus,允许用户输入SQL语句或命令,并将其发送给PostgreSQL服务器,再显示SQL语句或命令的执行结果。

2. 进入命令行模式

操作用户是数据库用户时,可以使用直接psql命令,进入命令交互输入模式后会显示psql版本,然后出现命令提示符

如果使用与操作系统用户名不相同的数据库用户名连接数据库时,需要指定对应的用户名和数据库名称,命令如下:

sql 复制代码
psql -h 127.0.0.1 -p 5432 -U 用户名 -d 数据库名
  • -h后面的IP地址是数据库所在的IP地址
  • -p后面的端口时数据库的监听端口
  • -U后面的参数是创建的用户名
  • -d后面的参数是创建的数据库名

退出psql命令行模式,使用\q命令

3. psql常用命令

3.1. \h命令

用于查询SQL语句的语法,例如需要查看如何使用SQL语句创建用户,可以使用命令:

sql 复制代码
\h create user

3.2. ?命令

用于查询所有命令符,例如要查看psql中有哪些提示符,可以使用命令:

sql 复制代码
\?

3.3. \d命令

用于查询表、视图、索引、序列的信息,包括对象中所有的列、各列的数据类型、表空间和所有特殊属性

\d命令后什么都不带,将列出当前数据库中所有的表和序列

\dt命令只显示所有表信息

\d命令后跟表名,可以显示该表的结构

\d命令后面跟索引名,也可以用于显示索引信息

\d命令后面的表名或索引名可以使用通配符,如""或"?",使用\d x?命令可以匹配数据库名以x开头的数据库

使用\d t
命令可以匹配包含数据库名为t的数据库

\d+命令可以显示更详细的信息

\di 命令只显示索引

\ds 命令只显示序列

\dv 命令只显示视图

\df 命令只显示函数

\dn 命令显示所有的schema

\db 命令显示所有表空间

\du或\dg 命令显示数据库中所有角色或用户

\dg命令与\du命令等价

\dp或\z 命令显示表的权限分配

3.4. 字符集命令

客户端的字符集与服务器字符集不一致时,会出现乱码,可以使用\encoding命令指定客户端的字符编码

3.5. 格式化输出命令

psql中执行SQL语句后输出的内容默认只有内边框的表格

如果需要输出的带有内外边框的表格内容,使用命令\pset border 2

如果需要输出的不带任何边框,使用命令\pset border 0

如果需要使用逗号分隔或以Tab分隔,使用\pset format unaligned命令

默认分隔符是"|",可以使用\pset fieldsep命令来设置分隔符,如更改为Tab分隔符

未了方便分析数据,有时需要将查询结果写入文件,可以使用\o命令

使用cat命令或view命令可以查看刚才保存的文件

使用\t命令可以删除文本中的表头和末尾的行数

\x 命令可以把按行展示的数据变为按列展示

3.6. 其他命令

\i <文件名>用于执行存储在外部的文件中的SQL语句或命令

sql 复制代码
\x
\i xxx.sql

也可以直接在psql命令行使用-f <文件名>来执行SQL脚本

sql 复制代码
psql -x -f xxx.sql

此处的-x命令的作用相当于在psql中交互模式下运行\x命令

\l命令显示所有数据库信息

\c database命令切换数据库

相关推荐
在努力的前端小白7 分钟前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
未来之窗软件服务8 分钟前
自建知识库,向量数据库 (九)之 量化前奏分词服务——仙盟创梦IDE
数据库·仙盟创梦ide·东方仙盟·自建ai·ai分词
冒泡的肥皂3 小时前
MVCC初学demo(一
数据库·后端·mysql
.Shu.4 小时前
Redis Reactor 模型详解【基本架构、事件循环机制、结合源码详细追踪读写请求从客户端连接到命令执行的完整流程】
数据库·redis·架构
薛晓刚7 小时前
当MySQL的int不够用了
数据库
SelectDB技术团队8 小时前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术
星空下的曙光8 小时前
mysql 命令语法操作篇 数据库约束有哪些 怎么使用
数据库·mysql
小楓12018 小时前
MySQL數據庫開發教學(一) 基本架構
数据库·后端·mysql
染落林间色8 小时前
达梦数据库-实时主备集群部署详解(附图文)手工搭建一主一备数据守护集群DW
数据库·sql
颜颜yan_8 小时前
企业级时序数据库选型指南:从传统架构向智能时序数据管理的转型之路
数据库·架构·时序数据库