psql是PostgreSQL中的一个命令行交互式客户端工具,类似Oracle中的sqlplus,但比sqlplus方便。
由于我使用的PostgreSQL是用docker部署的,所以使用docker命令进入。先查看pg的容器id:docker ps,然后执行如下命令进入容器:
docker exec -it 容器id psql -U postgres -d postgres 或者 docker exec -it 容器name psql -U postgres -d postgres
\d命令
postgres=# \l //查看数据库列表
postgres=# \c ota_system //进入指定的数据库
postgres=# select tablename from pg_tables; //查看数据库所有的表
postgres=# \d //列出当前数据库中的所有表
postgres=# \d t //\d后面跟一个表名,表示显示这个表的结构定义
postgres=# \d t_pkey //\d后面跟一个索引名,显示索引的信息
postgres=# \d x? //\d后面跟一通配符"*"或"?",这里是显示表名以x开头的表信息
postgres=# \d+ t //该命令显示比\d更详细的信息,比如还会显示任何与表列关联的注释,以及表中出现的OID
postgres=# \timing //如果想显示SQL已执行的时间,可以先执行\timing命令
postgres=# \dn //列出所有的schema
postgres=# \db //列出所有的表空间
postgres=# \du //想要列出数据库中的所有角色或用户,可以使用\du或\dg命令
postgres=# \dp t //\dp或\z命令用于显示表的权限分配情况
指定字符串编译命令
postgres=# \encoding utf8 //设置客户端的字符编码
\pset命令
postgres=# \pset border 0 //\pset命令用于设置输出格式,0:输出内容无边框;1:边框只在内部;2:内外都有边框
postgres=# \x //先执行,然后可以把后面从表中查出的每一行的每列的数据都拆分为单行展示
postgres=# \i getsql //\i <文件名> 执行存储在外部文件中的sql语句或命令
//也可以在psql命令行加 -s <filename> 来执行sql脚本
psql -x -f getsql
//其中命令行的参数 -x 相当于在psql交互模式下执行\x命令
postgres=# \echo hello world //\echo用于输出一行信息
postgres=# \? //显示更多命令