PostgreSQL约束、表空间、视图、物化视图、索引、事务(MVCC和锁)、数据备份和恢复
一、PostgreSql的表约束:
1、构建表:create table
2、构建表时指定约束:
(1)主键约束: primary key,
create table table_name(
id bigserial primary key,
name varchar(32) not null,
id_card varchar(32) unique
price numeric check(price > 0),
discount_price numeric check(discount_price > 0),
check(price > discount_price )
);
(2)非空约束:not null,
(3)唯一约束:unique,
(4)检查约束: check(price > 0)
(5)外键约束(不建议,会导致级联关联)
二、默认值:一般公司要求除了主键和业务,必须要有5个字段:
created
created_id
updated
update_id
deleted
三、触发器:Trigger,本质上是由事件触发的一种存储过程
如:对表进行insert、update、delete、truncate时,会触发表的Trigger
四、表空间(tablespace)
在PostgreSQL中,在存储数据时,数据必须要落到磁盘。基于构建的tablespace,指定数据存储的磁盘路径;默认都是在pgsql的安装目录下,data文件夹下
select pg_relation_file_path('表名')
当创建表时指定了表空间,则默认存储表空间存储了一个链接,指向指定的实际存储的磁盘目录
五、视图:
和mysql没区别,对用户来说,就是一张真实的表,对开发就是一条sql:
create view 视图名称 as
(select id,name,real_name from user) ---- 仅查询部分字段,不查询密码
简单视图允许写操作,但不推荐,因为视图实际上是写的表数据
六、索引:
分类:
pgsql中使用的是B-Tree索引
Hash索引(和msql一样)
GIN索引:主要针对字段有多个,比如数组
七、事务
MVCC和锁
1、mvcc
事务的ACID:
事务隔离级别:
mvcc执行原理:隐藏字段 +根据事务隔离级别去查询哪行的数据
保存点(savepoint):事务部分提交和回滚
2、锁:
行锁和表锁
八、备份和数据恢复
1、sql导出和导入
2、文件和文件夹备份
3、基于redolog的数据备份和恢复
原文地址:https://blog.csdn.net/weixin_41992498/article/details/140613525
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!