PostgreSQL学习笔记
3章
高级特性
高级特性有助于简化管理,防止数据丢失和损坏。
视图
创建视图
CRATE VIEW 视图名 AS SELECT 查询的列名 FROM 表1,表2 。。。 WHERE 条件;
以后只需要执行视图名便可以查询整个定义的语句。
SELECT * FROM 视图名;
删除视图
DROP VIEW 视图名;
- 视图允许用户通过接口封装表的结构细节,这样可以避免表结构随着应用的改变而改变。
- 视图可以用在任何用表的地方。也可以在其他图的基础上创建视图.
外键
关键词:primary,references
CREATE TABLE cities (
city varchar(80) primary key,
location point
);
CREATE TABLE weathre (
city varchar(80) references cities(city),
...
);
现在如果没有city值,就不能插入行在weather表里。
事务
关键词:BEGIN,COMMIT,ROLLBACK
- 把多个操作封装在一起,形成一个整体(原子),要么全完成,要么全不完成。
- 一个事务在被报告为完成之前它所做的所有更新都被记录在磁盘里。
- 每一个事物在运行的过程中是不可见的,对并发执行的别的事务也是一样。
- 每一个SQL语句算是一个事务块(会隐式添加BEGIN,COMMIT)。
事务块组成:
BEGIN --开始
SQL语句
COMMIT --结束
如果事务执行中遇到问题,比如:从Joe账户里扣100,但是余额不足,那么它会返回ROLLBACK 而不是 COMMIT。
保存点
事务里面可以用保存点来更细微的控制。
SAVEPOINT --定义保存点
可以用ROLLBACK TO
回到保存点,这样做会把SAVEPOINT
和ROLLBACK TO
之间做的修改全部都被放弃。
- 可以多次回滚回来保存点
- 不再需要保存点的时候系统会释放掉保存点来解放资源
- 回滚或者释放都会释放掉这个保存点前面的所有保存点
- 回滚动作是不可见的,无论是在事务执行的过程中还是已经提交好的情况下
今天就到这!