203、PostgreSQL之psql使用

psql是PostgreSQL自带的命令行客户端工具,功能丰富。本文介绍了psql的使用,包括连接数据库实例的参数,如 -A、-t、-c、-f 等;还说明了创建新库 mydb 的步骤,以及外部调用 sql 语句、显示 SQL 执行时间、反复执行命令和变更提示符等操作。

前言:

psql是PostgreSQL自带的命令行客户端工具,具有非常丰富的功能, 类似于Oracle的sqlplus,MySQL的mysql,MongoDB的MongoDB等等命令行交互界面,对于DBA来说,熟悉psql是非常有必要也是很有帮助的。

1.连接数据库实例:

psql -h 127.0.0.1 -U root -d postgres

参数说明
在psql使用时,总是有一些参数需要你注意一下,否则可能懵逼半天

  • -A 设置非对齐输出模式
  • -t,只显示数据,不显示字段名称和返回的结果集行数
  • -c, 调用SQL语句命令
  • -f, 调用sql脚本文件
2.如何创建一个新库mydb

创建表空间目录(在shell界面下)
$ mkdir -p /data/johnny/pgdata/12/data/pg_tblspc/mydb_tbs

创建一个新用户(psql界面)
postgres=# create user pguser with encrypted password 'admin123';

创建表空间
postgres=# create tablespace mydb_tbs owner pguser LOCATION '/data/johnny/pgdata/12/data/pg_tblspc/mydb_tbs';

创建数据库
postgres=# create database mydb with owner=pguser template=template0 tablespace=mydb_tbs;

赋权

postgres=# grant all on database mydb to pguser with grant option;        --
postgres=# grant all on tablespace mydb_tbs to pguser;
3.外部调用sql语句
$ psql -h 10.67.37.45 -U root -d mydb -c 'select * from test_1 where id=1'

id |  name
----+--------
  1 | 1_kobe
(1 row)

批量执行sql命令(即调用sql脚本文件)
$ psql -h 10.67.37.45 -U root -d mydb -f test_q.sql

4.在psql中如何显示SQL语句的执行时间:
mydb=# \timing     --timing命令是你不二的选择
Timing is on.
mydb=# select count(*) from test_1;
count
--------
100000
(1 row)

Time: 8.100 ms
5.反复执行当前SQL命令
mydb=# select now();
             now
-----------------------------
2020-05-06 15:03:10.8976+08
(1 row)
Time: 0.462 ms

mydb=# \watch 1    --watch命令就会每隔1秒钟执行一次select now()命令;
Wed 06 May 2020 03:03:14 PM CST (every 1s)
             now
------------------------------
2020-05-06 15:03:14.87073+08
(1 row)

Time: 0.282 ms
Wed 06 May 2020 03:03:15 PM CST (every 1s)
              now
-------------------------------
2020-05-06 15:03:15.872128+08
(1 row)
6.变更psql提示符
mydb=# \set PROMPT1 '%/%R%#'  --具体提示符都有哪些含义,可以自己查查
mydb=#\echo :PROMPT1
%/%R%#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值