登录
安装好之后进入到psql命令窗口,都是enter,只需输入最后的口令(此口令在安装的时候设置过):
常用命令
常用命令
-- 查看数据库
\l
-- 选择数据库
\c <数据库名>
-- 切换数据库
\c interface
-- 列出数据库的所有角色或用户
\dg
-- 查看表(视图,索引,序列)结构
\d <表名>
-- 查看用户列表
\du
-- 查询数据库所有表(非系统表)
\dt
-- 只显示序列
\ds
-- 连接数据库
psql -h <hostname or ip> -p <端口> [数据库名称] [用户名称]
-- 显示所有表空间
\db
-- 显示表的权限分配情况
\dp <表名>
-- 退出psql
\q
显示SQL执行的时间:
\timing on
自动提交技巧
在psql中事务是自动提交的。比方说,执行完一条delete或update语句后,事务就自动提交了,如果不想自动提交,方法有两种。
方法一:运行begin;命令,然后执行dml语句,最后再执行commit或rollback语句。(推荐)
begin;
<dml语句>
<查询语句验证dml语句是否改变数据>
rollback;
<查询语句验证rollback是否成功回滚>
方法二:直接使用psql中的命令关闭自动提交的功能。
\set AUTOCOMMIT off
注意,这个命令中的“AUTOCOMMIT"是大写的,不能使用小写,如果使用小写,虽然不会报错,但会导致关闭自动提交的操作不起作用。
得到psq|中命令实际执行的SQL
如果在启动psql的命令行中加“-E”参数,就可以把psql中各种以“\” 开头的命令执行的实际SQL打印出来,如下:
psql -E postgres
如果想在已运行的psql中显示某一个命令实际执行的SQL,但显示完后又想关闭这个功能,该怎么办?这时可以使用“\set ECHO_ HIDDEN on|off”命令,示例如下:
\set ECHO_HIDDEN on
<sql语句>
\set ECHO_HIDDEN off