203、PostgreSQL之psql使用
前言:
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 msmydb=# \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%#
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
