psql中常用元命令示例合集

psql 命令 

常用命令示例:

输入psql   --help 查看帮助文档


General options:


-f, --file=FILENAME      execute commands from file, then exit(执行文件中的命令,然后退出)

示例:

创建测试脚本

-- 创建测试表
CREATE TABLE test (
  id SERIAL PRIMARY KEY,
  value TEXT NOT NULL
);

-- 插入数据
INSERT INTO test (value) SELECT 'test' || i::text FROM generate_series(1, 1000000) AS i;

-- 更新数据
UPDATE test SET value = 'updated_test' WHERE id IN (SELECT id FROM test ORDER BY random() LIMIT 1000);

-- 插入数据
INSERT INTO test (value) SELECT 'test' || i::text FROM generate_series(1, 1000) AS i;

-- 删除数据
DELETE FROM test WHERE id IN (SELECT id FROM test ORDER BY random() LIMIT 1000);

将 脚本上传至/home/postgres/text.sql

键入 psql -f /home/postgres/text.sql        

  -c, --command=COMMAND    run only single command (SQL or internal) and exit(仅运行单个命令(SQL或内部命令)然后退出)

 psql -c "drop table test;"

 
  -d, --dbname=DBNAME      database name to connect to (default: "postgres")(链接的数据库名称 默认是“postgres” )

在没有约束链接用户名和数据库名   默认均是 postgres  当约束链接用户名时,默认链接和用户名同名的数据库

        键入 psql 
 

创建同名用户,数据库

create user r1 login ;
create database r1;

键入   psql -U r1 此时登录默认为r1数据库

键入   psql -U r1  -d postgres
 

 指定登录数据库postgres

  -l, --list               list available databases, then exit(列出可用数据库,并退出)


  -v, --set=, --variable=NAME=VALUE
                           set psql variable NAME to VALUE
                           (e.g., -v ON_ERROR_STOP=1)(给变量名赋值)

键入:psql -v v1="h" -c "insert into test (value) values(':v1');" 


  -V, --version            output version information, then exit(打印版本信息并退出)


  -X, --no-psqlrc          do not read startup file (~/.psqlrc)(不读取启动文件)


  -1 ("one"), --single-transaction
                           execute as a single transaction (if non-interactive)
  -?, --help[=options]     show this help, then exit
      --help=commands      list backslash commands, then exit
      --help=variables     list special variables, then exit

Input and output options:(输入或者输出的控制参数)
  -a, --echo-all           echo all input from script(把所有非空输入行按照它们被读入的形式打印到标准输出(不适用于交互式行读取))
  -b, --echo-errors        echo failed commands(把失败的 SQL 命令打印到标准错误输出。)
  -e, --echo-queries       echo commands sent to server(把发送到服务器的所有 SQL 命令复制到标准输出)
  -E, --echo-hidden        display queries that internal commands generate(回显\d以及其他反斜线命令生成的实际查询。可以用它来学习psql的内部操作)
  -L, --log-file=FILENAME  send session log to file(将回话日志保存为文本)
  -n, --no-readline        disable enhanced command line editing (readline)(禁用增强的命令行编辑)
  -o, --output=FILENAME    send query results to file (or |pipe)(将命令输出结果保存到指定的文件中 或者使用|管道符
  -q, --quiet              run quietly (no messages, only query output)(静默状态运行(没有消息,只有查询输出))
  -s, --single-step        single-step mode (confirm each query)(单步提交模式)

Output format options:
  -A, --no-align           unaligned table output mode(不对齐表输出模式)
      --csv                CSV (Comma-Separated Values) table output mode(对输出脚本为CSV格式默认使用逗号分隔)
  -F, --field-separator=STRING
                           field separator for unaligned output (default: "|")(输出脚本默认采用管道符分隔)
  -H, --html               HTML table output mode(默认输出采用HTML格式)
  -R, --record-separator=STRING
                           record separator for unaligned output (default: newline)(未对齐输出的记录分隔符(默认值: 换行))
  -t, --tuples-only        print rows only(不带表头打印)
  -T, --table-attr=TEXT    set HTML table tag attributes (e.g., width, border)(设置 HTML 表格标签属性(例如,宽度,边框))
  -x, --expanded           turn on expanded table output(打开扩展表输出)
  -z, --field-separator-zero
                           set field separator for unaligned output to zero byte(将未对齐输出的字段分隔符设置为零字节)
  -0, --record-separator-zero
                           set record separator for unaligned output to zero byte(将未对齐输出的记录分隔符设置为零字节)

Connection options:
  -h, --host=HOSTNAME      database server host or socket directory (default: "local socket")(指定数据库IP地址,默认是localhost)
  -p, --port=PORT          database server port (default: "5432")(指定端口号 默认“5432”)
  -U, --username=USERNAME  database user name (default: "postgres")(指定用户名 默认“postgres”)
  -w, --no-password        never prompt for password(永不提示输入密码)
  -W, --password           force password prompt (should happen automatically)(指定用户密码)

键入 psql -U pg01 -h 10.0.0.200 -d postgres -p 15432 -W   链接远程数据库10.0.0.200

PostgreSQL 元命令

 psql 提供了一组以“\”开头的快捷命令,称之为 psql 元命令。
 搭配通配符“*”或“?”提高查询效率。
 使用选项“S”显示系统对象。
 使用选项“+”显示更加丰富的信息。
--在执行以下源命令的过程中(底层实际上执行的就是一段SQL代码),我们可以将源命令执行的隐藏SQL代码展示出来
方法一
\set ECHO_HIDDEN on 

方法二  在是用psql进入数据库的时候加入参数E 

psql -E
\dt

postgresql元命令

\d[S+]

列出表,视图和序列,其中 S 表示包含系统对象,+表示列

出详细信息

\d[S+] 名称

描述表,视图,序列,或索引

        

\db[+] [schemaname]

列出表空间

\di[S+] [schemaname]

列出索引

\dp [schemaname]

列出表,视图和序列的访问权限(\z 和相同)

\ds[S+] [schemaname]

列出序列

\du[+][参数]

列出角色

\l[+][参数]

列出所有的数据库

\?[参数]

获得 psql 的帮助

\h[参数]

获取语法的帮助

psql -c shellcommand

执行shell命令        

psql <

通过 psql 执行 sql 文件,常用于(pg_restore程序)

        

\c (database)(username)

切换数据库、用户      单独见图\c显示当前所链接的数据库和 用户信息

\timing on

显示 每一次执行SQL的执行的时间

        

\timing off

关闭每一次执行SQL的执行的时间的展示

\dn[参数]

列出所有的 schema

\db[参数]

显示所有的表空间

\du[参数]

列出所有的角色或用户

\dp[参数]

显示权限分配情况

\x[参数]

打开行列互换显示

\set AUTOCOMMIT

off

关闭AC功能

\i (command)

psql 控制台内执行shell命令

\s

来查看和调用执行过的历史 命令。

\C [参数]

设置下一句查询结果的标题,这个命令等效于\pset title title

\cd [ directory ]

把当前工作目录改为directory,查看当前的工作目录,可以使用\! pwd

\conninfo

查看当前连接数据库的连接信息

\copy

复制指令,常用于导入或者导出查询结果

\copyright

显示PostgreSQL的版权以及发布条款。

\da[S/+][参数]

列出聚集函数,以及它们的返回类型和它们所操作的数据类型。

\da+[参数]

列出聚集函数,以及它们的返回类型和它们所操作的数据类型

\dAc[+][参数]

列出运算符类,每个运算符类别及其关联的运算符系列和所有者

\dAf[+][参数]

列出与名称与该模式匹配的输入类型关联的运算符系列。 如果将 + 附加到命令名称,则会列出每个运算符系列及其所有者

\dAo[+][参数]

列出与运算符系列关联的运算符,列出名称与该模式匹配的运算符系列的成员。 如果将 + 附加到命令名称,则会列出每个运算符及其排序运算符系列(如果它是排序运算符)。

\dAp[+][参数]

列出名称与该模式匹配的运算符系列的函数。 如果将 + 附加到命令名称,则会详细显示函数及其实际参数列表。

\dC[+][参数]

列出类型转换。列出源类型和目标类型匹配该模式的转换。如果在命令名称后面追加+,则每一个对象相关的描述也会被列出

\dd[S][参数]

显示指定对象的约束、操作符类、操作符族、规则以及触发器类型对象的注释

\dD[S+][参数]

列出域,
\dt[S+][参数]展示数据库中的表
\dE[S+][参数]展示数据库中的外部表fdw(关注博主,后续会讲解外部表的创建方式)
\di[S+][参数]展示数据库中的索引
\dm[S+][参数]展示数据库中的物化视图
\dv[S+][参数]展示数据库中的视图
\ds[S+][参数]展示数据库中的序列
红色高亮为常用命令,整个列表中部分命令需要添加对应的参数 ,也就是你需要查找的对应类型,其名称。才会展示其对应信息。需要

如有对上述相关术语或者操作不理解的 欢迎私信咨询

如果有帮助,麻烦点赞 关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值