数据库配置
- 配置文件
/etc/postgresql/9.5/main/postgresql.conf
- 数据目录
/var/lib/postgresql/9.5/main
进入数据库
- 切换到postgres用户
sudo su postgres
- 连接数据库
psql
- 退出psql
q
数据库状态
- 查看数据库状态
sudo service postgresql status
- 启动数据库状态
sudo service postgresql start
- 查看数据库状态
sudo service postgresql stop
数据库操作
- 列出所有数据库
l
- 显示数据库中有哪些表
d
- 显示表
table_name
的定义情况d table_name;
d
的具体用法d
后面可以跟t_pkey
(索引信息)和通配符d
可以显示更详细的信息 只显示匹配的表:dt
只显示索引:di
只显示序列:ds
只显示视图:dv
只显示函数:df
列出所有的schema:dn
显示所有的表空间:db
列出数据库中的所有角色和用户:du
或dg
显示表的权限分配情况:dp
或z
- 创建用户数据库
CREATE DATABASE testdb
- 连接到用户数据库
c testdb;
- psql连接数据库命令格式
psql -h <hostname or ip> -p <端口> [数据库名称] [用户名称]
示例如下:psql -h 192.168.56.11 -p 5432 testdb postgres
最后两个参数是数据库名和用户名 这些参数也可以用环境变量指定,比如: export PGDATABASE=testdb export PGHOST=192.168.56.11 export PGPORT=5432 export PGUSER=postgres - 显示SQL已执行的时间
timing on
- 指定客户端字符编码
encoding gbk
encoding utf8
- 设置输出格式
pset border 0
:表示输出内容无边框pset border 1
:表示边框只在内部pset border 2
:表示内外部都有边框 - 每一行的每列拆分为单行展示
x
如果一行数据有太多,显示不下,可以使用x
,与MySQL的G
类似。 - 执行存储在外部文件中的SQL命令
i <filename>
终端中中执行:psql -f <filename>
可以达到同样的效果 - 显示信息
echo
用于输出一行信息,比如:echo hello world
- 自动提交和回滚
运行
begin;
命令,然后执行dml语句,最后执行commit;
提交或rollback;
回滚 直接使用psql
的命令关闭自动提交的功能:set AUTOCOMMIT off
- 得到
psql
中命令实际执行的SQL
在启动psql
的命令行中加-E
参数,就可以把psql
中各种以开头的的命令执行的实际
SQL
打印出来 可以使用命令打开关闭这个功能:set ECHO_HIDDEN on
set ECHO_HIDDEN off
- 更多命令
?
用来显示更多命令
内容来源
唐成. PostgreSQL修炼之道[M]. 机械工业出版社, 2015.