一、建立连接
psql -h hostname -p port -U username -d dbname
-d dbname
--dbname=dbname
指定要连接的数据库的名称
-h hostname
--host=hostname
指定运行服务器的机器的主机名
-p port
--port=port
指定服务器用于监听连接的 TCP 端口或者本地 Unix 域套接字文件扩展,如果没有设置,则默认为编译时指定的端口号(通常是5432)
-U username
--username=username
指定连接的用户名
将上述参数替换成自己的连接参数后,按回车键会提示输入口令, 此时输入密码后按回车键就可以建立连接了。
二、操作数据库
psql命令的格式是用反斜线后面直接跟上一个命令动词,然后是一些参数。参数与命令动词和其他参数之间用任意多个空白字符分隔开。
1、打印当前工作目录: \! pwd
2、列出数据库信息:\
l[+]
[ pattern ]列出服务器中的数据库并且显示它们的名称、拥有者、字符集编码以及访问特权。如果指定了
pattern
,则只列出名称匹配该模式的数据库。如果向命令名称追加+
,则还会显示数据库的尺寸、默认表空间以及描述(尺寸信息只对当前用户能连接的数据库可用)。3、切换数据库: \c dbname
4、列出 schema:\dn[S+] [ pattern ]
如果指定了
pattern
,只列出名称匹配该模式的模式。默认情况下只会显示用户创建的对象,提供一个模式或者S
修饰符可以把系统对象包括在内。如果向命令名称追加+
,每个对象会与它相关的权限及描述(如果有)一起被列出。5、 \dE[S+] [ pattern ]
\di[S+] [ pattern ]
\dm[S+] [ pattern ]
\ds[S+] [ pattern ]
\dt[S+] [ pattern ]
\dv[S+] [ pattern ]在这一组命令中,字母
E
、i
、m
、s
、t
和v
分别对应着外部表、索引、物化视图、序列、表和视图。你可以以任何顺序指定这些字母中的任意一个或者多个,这样可以得到这些类型的对象的列表。例如,\dit
会列出索引和表。如果在命令名称后面追加+
,则每一个对象的物理尺寸以及相关的描述也会被列出。如果指定了pattern
,只列出名称匹配该模式的对象。默认情况下只会显示用户创建的对象,提供一个模式或者S
修饰符可以把系统对象包括在内。6、列出 schema下的表:\dt schema_name.*
包含一个点号(
.
)的模式被解释为一个 schema 名称模式后面跟上一个对象名称模式。例如,\dt foo*.*bar*
会显示名称以foo
开始的 schema 中所有名称包括bar
的表。如果没有出现点号,那么模式将只匹配当前 schema 搜索路径中可见的对象。同样,双引号内的点号会失去其特殊含义并且变成普通的字符。7、\! [
command
]如果没有参数,就跳出到一个子shell,当子shell退出时psql会继续。如果有一个参数,则执行shell命令
command
。与大部分其他元命令不同,该行的所有剩余部分总是会被当做
\!
的参数,并且在参数中不会执行变量篡改以及反引号展开。该行的剩余部分会被简单地按字面传递给shell。8、\q or \quit
退出psql程序。在一个脚本文件中,只有该脚本的执行会被终止。