psql-01基本介绍
安装与启动
- 安装:
apt-get install postgresql / yum install postgresql.XXX
; - 启动:
mac
下直接打开linux
service postgresql status
service postgresql stop
service postgresap start
修改监听Ip和端口
//postgresql.config; 修改并重启
#listen_address = 'localhost'
#port = 5432
关于用户
- 安装postgresql数据库时会建立一个与初始化数据库时的操作系统同名的数据库用户,即为超级用户,在这个用户下登陆数据库是系统默认认证;`
- 可以修改
pg_hna.config
要求输入密码; - 列出数据库中所有用户:
\du / \dg
默认数据库
- 安装后默认有
template0, template1
; - 新创建的数据库默认继承自
template1
,可以对他定义些表和函数; tempalte0
是一个最简化的模版库, 创建数据库时可以指定从此继承;
完整的链接数据库
- 格式:
psql -h <hostname or ip> -p <port> [mydb] [username]
psql -h 192.168.56.11 -p 5432 testdb postgres
- 环境变量: 连接参数可以用环境变量指定
export PGDATABSE=xx
export PGHOST=xx
.....
客户端基本操作
- 显示所有:
\d
;详细信息:\d+
;
\dt //只显示表
\di //只显示索引
\ds //只显示序列
\dv //只显示视图
\df //只显示函数
-
打开显示SQL执行时间:
\timing on
; 关闭:\timing off
; -
指定客户端字符编码与服务器一致:
\encoding utf8/gbk
防止乱码; -
查询结果的边框显示
\pset border 0;
\pset border 1;
\pset border 2;
- 查询结果拆行显示;在单行数据太多的情况下;
\x on
\x off
-
显示信息:
\echo xxx
-
执行外部文件脚本
\i a.sql
psql -f a.sql
- psql中事务是自动提交的
//不自动提交
begin;
xxxx;
rollback;/commit;
//直接设定
\set AUTOCOMMIT off //注意一一定要大写
- 获得psql中命令实际执行的sql
- 连接数据库时:
psql -E mydb
; - 设置:
\set echo_hidden on|off
- 连接数据库时:
SQL简介
数据定义语句
- DDL: 创建,修改,删除表;
数据操纵语句
- DML: 插入,更新,删除数据;
数据查询语句
- DQL:
用shell
执行
按外部sql
文件执行
psql database -f test.sql;
连接数据库
- 创建特殊用户
create user username with password 'password';
//指定仅将某个数据库的权限给他
grant all privileges on database db_name to username;
- 登录
psql -h myhost -d mydb -U myuser -W
- 移除权限
drop owned by username
- 创建超级用户
create user admin with superuser password 'admin_pwd';
可能出现的问题
- role "root" does not exist
* key
//可以再创建超级用户root
createuser -d -a -P root