当前位置: 首页 > 工具软件 > mysql2psql > 使用案例 >

2.PostgreSQL psql工具的使用

白修谨
2023-12-01

1.psql 常用命令

\l   列出数据库。
\c testdb 连接到testdb数据库。
psql -h 192.168.1.51 -p 5432 testdb postgres   使用postgres用户连接到testdb数据库。
\d   查看所有的表。
\d t  查看t表的结构。
\d t_pkey  查看索引t_pkey的结构。
\d x?  查看所有x开头的表的结构。
\d t*  查看所有t开头的表的结构 
\d+ t  查看t表更详细的信息。
\dt  只显示匹配的表 
\di  只显示索引 
\ds  只显示序列 
\dv  只显示视图 
\df  只显示函数 
\timing on  显示SQL的执行时间。
\dn 显示所有的schema 
\db  查看所有的表空间 
\dg  查看所有的角色或用户。
\du  查看所有的角色或用户 
\dp t 显示表的权限分配情况
\z  t  显示表的权限分配情况 
\encoding gbk;   设置客户端的字符集为gbk 
\encoding utf8;  设置客户端的字符集为utf8 
\pset border 0  ; 输出内容无边框
\pset border 1;表示边框只在内部
\pset border 2;表示边框内外都有边框
\x   设置后以后的查询每行的每列数据都拆分为单行展示。类似Mysql的G命令。
select * from pg_stat_activity; 
\i getrunsql   ;  执行外部文件 getrunsql 里面的命令;

psql -x -f getrunsql    执行getrunsql文件里面的内容。
\echo hello word  ;   打印出hello word; 
\i a.sql 
\?     显示更多的命令。
\d+tab  快捷键显示d命令的组合命令。
\d t+tab  显示t开始的对象。
\d x+tab  快捷键显示x开始的快捷键。

如果不想自动提交dml ;可以使用begin; 开启一个事务,然后执行dml; 
begin; 
update x1 set name='xxxx' where id=1;
rollback;    

2.关闭自动提交功能。
\set AUTOCOMMIT OFF ;   AUTOCOMMIT关键字必须使用大写,否则不生效。

打印\ 开头的命令实际执行的底层SQL; 使用 E参数。
psql -E postgres 
\d   ;显示\d这个命令的底层的SQL。

psql postgres 
\dn  显示所有的schema; 
\set ECHO_HIDDEN on 
\dn  把\dn这个的底层SQL打印出来。
\set ECHO_HIDDEN off;  不打印命令的底层sql;直接显示结构。

 类似资料: