psql是 PostgreSQL中的一个命令行交互式客户端工具,类似MySQL的mysql的
Oracle中的命令行工具 sqlplus,它允许你交互地输入SQL或命令,然后把它们发出给PostgreSQL服务器,再显示SQL或命令的 结果。而且,输入的内容还可以来自于一个文件。此外,它还提供了一些命令和多种类似shell的特性来 实现书写脚本,从而实现对大量任务的自动化工作。
虽然也可以使用PostgreSQL中图形化的客户端工具(如pgadmin)来实现上述功能。但如果掌握了psql 的 使用方法,将会体会到它的方便之处。因为psql是一个字符界面的工具,没有图形化工具使用上的一些 限制。psql 与 pgAdminIII之间的关系类似于vi与某些图形化工具的关系。
psql 的历史命令与补全的功能
可以使用上下键把以前使用过的命令或SQL语句调出来
连续按两个tab键表示把命令补全或给出提示输入
psql 命令格式
psql -h <hostname or ip> -p<端口> [数据库名称] -U [用户名称] -h #指定要连接的数据库主机名或IP地址,默认local socket登录(由配置项unix_socket_directories指定) -p #指定连接的数据库端口 #最后两个参数是数据库名和用户名 #这些连接参数也可以用环境变量指定,比如: export PGDATABASE=testdb export PGHOST=10.0.0.200 export PGPORT=5432 export PGUSER=postgres #然后运行psql即可,其效果与运行psql -h 10.0.0.200 -p 5432 testdb postgres相同。 #可通过下面命令查看详细帮助:man /apps/pgsql/share/man/man1/psql.1
查看当前链接的是哪个数据库
postgres=# \c You are now connected to database "postgres" as user "postgres".
链接到template1
数据库
postgres@postgresql-1:~$ psql template1 psql (14.2) Type "help" for help. 查看 template1=# \c You are now connected to database "template1" as user "postgres".
在root用户,指定账号登录postgresql
root@postgresql-1:~# psql -U postgres psql (14.2) Type "help" for help.
在root用户,指定账号登录postgresql到tempatel1下
root@postgresql-1:~# psql -U postgres template1 psql (14.2) Type "help" for help. template1=# \c You are now connected to database "template1" as user "postgres".