psql工具使用(二)
所有psql命令都以 \ 开头
一、使用psql -l查看有哪些数据库:
-bash-4.2$ psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
(4 rows)
创建数据库的时候默认是hi从template克隆出来的。
\l 同psql -l
\d 查看表
\c 连接数据库
postgres=# create database testdb;
CREATE DATABASE
postgres=# \c testdb;
You are now connected to database "testdb" as user "postgres".
testdb=# \d
No relations found.
testdb=# create table t(id int primary key, name varchar(40));
CREATE TABLE
testdb=# \d
List of relations
Schema | Name | Type | Owner
--------+------+-------+----------
public | t | table | postgres
(1 row)
psql -h <hostname or ip> -p <port> [数据库名称] [用户名称]
二、\d
2.1 \d 列出当前数据库所有表;
2.2 \d table_name,显示表结构定义;
testdb=# \d t
Table "public.t"
Column | Type | Modifiers
--------+-----------------------+-----------
id | integer | not null
name | character varying(40) |
Indexes:
"t_pkey" PRIMARY KEY, btree (id)
\d 显示索引信息。
testdb=# \d t_pkey
Index "public.t_pkey"
Column | Type | Definition
--------+---------+------------
id | integer | id
primary key, btree, for table "public.t"
\d+ table_name 显示比\d更详细的信息。
如果只想显示匹配的表 \dt
如果只想显示索引 \di
如果只想显示序列 \ds
如果只想显示视图 \dv
如果只想显示函数 \df
显示SQL执行的时间 \timing on
列出所有schema \n
显示所有表空间 \db
显示数据库中所有角色或者用户 \du 或者 \dg
显示表的权限分配情况 \dp 或者 \z
三、使用\encoding 命令指定字符集 \encoding utf8;
四、\pset命令---用于设置输出的格式
\pset border0: 表示输出内容无表框;
\pset border1: 表示内部显示边框
\pset border2: 表示内部都有边框
testdb=# select * from t;
id | name
----+------
(0 rows) Time: 0.522 ms
testdb=# \pset border 2;
Border style is 2.
testdb=# select * from t;
+----+------+
| id | name |
+----+------+
+----+------+
(0 rows) Time: 0.585 ms
testdb=#
五、\x命令,把表中每一行的每列数据都拆分为单行显示;同mysql /G
六、执行存储在外部文件的SQL命令;
1、 \i <文件名> 执行存储在外部文件中的sql语句或者命令;
2、\echo 显示数据一行信息;
testdb=# \echo hello word
hello word
3、更多命令使用 \? 查看;
七、自动提交方面的技巧。
在psql中事物是自动提交的。如果不想自动提交,方法有两种
方法一:运行begin;命令,然后执行dml语句,最后再执行commit或rollback语句。
testdb=# begin;
BEGIN
Time: 0.428 ms
testdb=# update t set name='xxx' where id=1;
UPDATE 1
Time: 0.743 ms
testdb=# select * from t;
+----+------+
| id | name |
+----+------+
| 2 | haha |
| 1 | xxx |
+----+------+
(2 rows) Time: 0.507 ms
testdb=# rollback;
ROLLBACK
Time: 0.317 ms
testdb=# select * from t;
+----+--------+
| id | name |
+----+--------+
| 1 | steven |
| 2 | haha |
+----+--------+
(2 rows) Time: 0.584 ms
testdb=#
方法二:直接使用psql中的命令关闭自动提交的功能。
\set AUTOCOMMIT off \\AUTOCOMMIT必须大写
八、如何得到psql中命令实际执行的SQL
如果在启动psql的命令行中加 -E ,就可以把pslq中执行的命令实际SQL打印出来:
临时起作用打印SQL的命令:\set ECHO_HIDDEN on | off
psql工具使用(二)的更多相关文章
- WCF学习之旅—TcpTrace工具(二十六)
止文(WCF学习之旅—TcpTrace工具(二十五))介绍了关于TcpTrance的一种使用方式,接下来介绍第二种使用方式. 三.通过ListenUri实现基于tcpTracer的消息路由 对于路由的 ...
- HTML-DEV-ToolLink(常用的在线字符串编解码、代码压缩、美化、JSON格式化、正则表达式、时间转换工具、二维码生成与解码等工具,支持在线搜索和Chrome插件。)
HTML-DEV-ToolLink:https://github.com/easonjim/HTML-DEV-ToolLink 常用的在线字符串编解码.代码压缩.美化.JSON格式化.正则表达式.时间 ...
- Mac开发必备工具(二)—— iTerm 2
iTerm 2 简介 iTerm 2 is a terminal emulator for Mac OS X that does amazing things. iTerm 2 有很多能够提升效率的实 ...
- Ansible批量自动化管理工具(二)
Ansible批量自动化管理工具(二) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...
- PostgreSQL下的SQL Shell(psql)工具
首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485130&idx=1 ...
- WCF学习之旅—TcpTrace工具(二十五)
前面的几篇文章,我们学习了怎么开发WCF应用程序与服务,也学习了如何进行WCF的配置.对于Web Service与WCF服务应用,服务端与客户端的通信是通过收发SOAP Message进行,我们如何有 ...
- git版本控制工具(二)----本地版本库的常用操作
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- [转] Android自动测试之monkeyrunner工具(二)
monkeyrunner工具 前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyru ...
- 自动化工具之二:win32gui
自动化工具win32gui 一.下载安装win32gui 二.Win32gui的使用 1.查找窗体句柄 我们知道的所有空间其实就是窗体,所有的窗口都有一个独立的句柄,要操作任意一个窗体,你都需要找到这 ...
随机推荐
- noip第24课作业
1. 马走日 [问题描述] 马在中国象棋以日子形规则移动.请编写一段程序给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点. ...
- [kuangbin]树链剖分A - Aragorn's Story
比较水的题了,比模板题还要简单一点 理解了这个结构,自己打出来的,但是小错误还是很多,越来越熟练吧希望 错误函数updata,updata_lca,query||错误地方区间往下递归的时候是left ...
- Maven的依赖管理
我们知道dependencies是可以被继承的,这个时候我们就想到让我们的发生了共用的依赖元素转移到parent中,这样我们又进一步的优化了配置.可是问题也随之而来,如果有一天我创建了一个新的模块,但 ...
- poj 2531 搜索剪枝
Network Saboteur Time Limit: 2000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u ...
- asp.net core mvc 中间件之WebpackDevMiddleware
asp.net core mvc 中间件之WebpackDevMiddleware WebpackDevMiddleware中间件主要用于开发SPA应用,启用Webpack,增强网页开发体验.好吧,你 ...
- ADO.NET系列之事务和调用存储过程
ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 前几篇我们介绍了Conne ...
- WTS 2.1.18124.1 彻底抛弃了 15063(Win 10 创意者更新)
现在新建的WTS模板,默认最低版本是16299了,目标版本是17134 17134到来之前,就感觉到会这样,不过终究还是来了. 不支持15063的原因是导航菜单Windows.UI.Xaml.Cont ...
- Java计数器之CountDownLatch、CyclicBarrier、Semaphore
在Java里面有几种可以用于控制线程状态的方法,如CountDownLatch计数器.CyclicBarrier循环栅栏.Sempahore信号量.下面就分别演示下他们的使用方法: CountDown ...
- ssh登录时在参数中加入密码的解决方案
在使用ssh登录远程服务器的时候,在执行完ssh user@ip后,要输入登录密码,有时候登录密码记不住,这样以来Ian带来的很多的麻烦,有没有一种在ssh的参数中直接加入密码的方法呢?查看ssh的帮 ...
- 移动端font-size适配方案(续)
概述 之前写过一篇移动端font-size适配方案,但是在实践过程中,还是发现当时的思维太局限了,视野太窄了,所以现在补充更新一下,记录下来,供以后开发时参考,相信对其他人也有用. 我上一篇博文主要有 ...