PostgreSQL|PostgreSQL 命令行终端 psql 的快捷键
注 1
尖括号表示必填项,中括号表示选填项。这两种括号非实际字符,而是文本描述符。
注 2
美元符号 $ 表示终端命令。
在操作系统终端命令行执行控制台命令:psql -d <数据库名> [-U 用户名]
命令可以进入到 PostgreSQL 的控制台,类似于 MySQL 的mysql -uroot
命令。
\l
$ psql -l
查看全部数据库信息,包括俩模板数据库 template0 和 template1
使用 SQL 语句的话,有点儿麻烦:
SELECT
datname AS 数据库,
pg_encoding_to_char(encoding) AS 编码格式,
rolname AS 拥有者
FROM pg_database
JOIN pg_authid
ON pg_database.datdba = pg_authid.oid;
其中 pg_database 表的 encoding 字段值是 int 类型
需要调用 pg_encoding_to_char 函数获取对应的编码格式名
\c
查看当前登录用户以及所选数据库
\c <数据库名>
切换数据库
\c - <用户名>
切换用户
\d
查看当前数据库中的关系(Relation),包括数据表 Table 、视图 View 和序列 Sequence
模式(也叫架构)属于数据库,数据表/视图属于模式
如果当前数据库里有与当前用户同名的模式
当前用户会自动选择同名模式以及 public 模式中的数据表和视图
否则,选择 public 模式中的数据表和视图
注意:以上所指当前用户须是超级用户,如果不是超级用户还需要额外增加一个条件:
模式的拥有者须是该用户才会自动选择同名模式
\d <数据表名/视图名/序列名>
查看某个 Relation 的详细信息,相当于 MySQL 中的DESC
以查看数据表结构为例,这块儿也可以用 SQL 语句写一下子:
SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_schema = '<模式名>' AND table_name = '<数据表名>';
除了最后的 “模式名” 和 “数据表名”,其余都是固定写法
\du
SELECT * FROM pg_user;
查询全部用户的信息
对应的 SQL 语句如下:
SELECT
usename AS 用户名,
usesysid AS "用户ID",
usecreatedb AS 创建数据库,
usesuper AS 超级用户,
userepl AS 控制流备份模式,
usebypassrls AS 绕过行级别的安全策略
FROM pg_user;
\dn
查看当前数据库的全部模式(Schema)
对应的 SQL 语句如下:
SELECT schema_owner AS "Owner", schema_name AS "Schema", catalog_name AS "Database"
FROM information_schema.schemata
WHERE schema_name NOT LIKE 'pg%'
AND schema_name NOT LIKE 'information_schema';
\dt
查看当前数据库的全部数据表(Table)
对应的 SQL 语句如下:
SELECT tablename AS "Name", schemaname AS "Schema", tableowner AS "Owner"
FROM pg_tables WHERE tablename NOT LIKE 'pg%' AND tablename NOT LIKE 'sql%'
ORDER BY "Schema", "Name"
这块儿有三个别名,它们都用双引号引起来了
这么做的目的是使得首字母大写被保留,如果去掉双引号,结果就是全小写了
\dv
查看当前数据库的全部视图(View)
对应的 SQL 语句如下:
SELECT table_name AS "View", table_schema AS "Schema", table_catalog AS "Database"
FROM information_schema.views
WHERE table_schema NOT IN ('pg_catalog', 'information_schema');
\ds
查看当前数据库的全部序列(Sequence)
对应的 SQL 语句如下:
SELECT
sequence_name AS 序列,
sequence_schema AS 模式,
sequence_catalog AS 数据库
FROM information_schema.sequences;
\df
查看当前数据库的全部函数(Function),包括触发器函数
\dD
查看当前数据库的全部域(Domain)
SHOW SERVER_VERSION;
$ psql -V
查看 PostgreSQL 的版本
- 【PostgreSQL|PostgreSQL 命令行终端 psql 的快捷键】
SELECT current_database();
查看当前所选数据库,不如\c
利索
推荐阅读
- Node.js中readline模块实现终端输入
- 用Go构建区块链——3.持久化和命令行
- ubuntu开机默认进入命令行模式/用户图形界面
- 命令行上传小程序版本至微信后台
- 2019-12-21 Linux常用命令行操作
- doc---Hbuilder中配置集成终端(cmd)
- 创建、执行存储过程
- 杭州视频会议硬件终端和四海云视频会议软件系统解决方案
- 作业2
- 8.|8. PostgreSQL逻辑结构(2)——表