postgres的常用命令:
查看所有库: \l
进入库 :\c
查看所有表:\d 库名;
查看表结构:\d 表名;
查看所有用户:\du
显示当前库下schema信息: \dn
postgres的防火墙配置:
在安装目录的/var/lib/pgsql/data/pg_hba.conf 文件中
创建用户:
在postgres中创建、修改用户使用role,删除用户使用user
-- 创建角色 test1 带超级权限 登录权限 配置密码为 dyh666
create role test1 with SUPERUSER LOGIN password 'dyh666';
-- 普通用户
create role test2 with LOGIN password 'dyh666';
-- 创建复制用户
create role test3 with REPLICATION LOGIN password 'dyh666';
-- 修改用户
alter role test1 with NOSUPERUSER login password 'dyh666';
-- 删除用户
drop user test1;
--修改将属主为 test 的表分配给 test2
reassign owned by test1 to test2;
-- 删除属于 test1 的表
-- 需要手动删除数据库或表空间
drop owned by test1;
权限管理:
授权test1用户对test库拥有create权限
grant create on database test to test1;
schema 权限
-- 创建schema 默认为当前用户
create schema test_schema;
-- 创建schema test2 授权给 test1 用户
create schema test2 authorization test1;
-- 进入schema
set search_path to test_schema;
-- 查看一个database下有几个schema
select * from information_schema.schemata;
-- 将test_schema的拥有者设置为test用户
alter schema test_schema owner to test;
-- 进入test 库
\c test
-- 授权 test 用户 test_chema 下的所有表,增删改查权限
grant select,insert,update,delete on all tables in schema test_schema to test;
-- 删除模式
drop schema test1;
-- 删除模式及其包含的对象
drop schema test2 cascade;
角色权限:
-- 创建角色
create role select_group;
-- 授权 t1 表查询权限 给角色 select_group
grant select on t1 to select_group;
-- 授权 select_group 组给 user_test 用户
grant select_group to user_test;
在库里面执行: set search_path to test_app_schema; 切换到指定schema下面;
postgres的数据类型:
1、数值:
名字 | 存储长度 | 描述 | 范围 |
smallint | 2 字节 | 小范围整数 | -32768 到 +32767 |
integer | 4 字节 | 常用的整数 | -2147483648 到 +2147483647 |
bigint | 8 字节 | 大范围整数 | -9223372036854775808 到 +9223372036854775807 |
decimal | 可变长 | 用户指定的精度,精确 | 小数点前 131072 位;小数点后 16383 位 |
numeric | 可变长 | 用户指定的精度,精确 | 小数点前 131072 位;小数点后 16383 位 |
real | 4 字节 | 可变精度(整数或小数), 不精确 |
6 位十进制数字精度 |
double precision | 8 字节 | 可变精度,不精确 | 15 位十进制数字精度 |
smallserial | 2 字节 | 自增的小范围整数 | 1 到 32767 |
serial | 4 字节 | 自增整数 | 1 到 2147483647 |
bigserial | 8 字节 | 自增的大范围整数 | 1 到 9223372036854775807 |
2、货币类型:money
money类型存储带有固定小数精度的货币金额。
numeric、int 和 bigint 类型的值可以转换为 money,不建议使用浮点数来处理处理货币类型,因为存在舍入错误的可能性。
名字 | 存储容量 | 描述 | 范围 |
money | 8 字节 | 货币金额 | -92233720368547758.08 到 +92233720368547758.07 |
3、字符类型:
名字 | 描述 |
varchar(n) 或 character varying(n) | 变长,有长度限制,最大为 10485760(1G) |
char(n)或 character(n) | 定长,不足补空白,最大为 10485760(1G) |
text | 变长,无长度限制 |