SQL
关系代数与SQL。
数学术语 | SQL术语 |
---|---|
关系Relation | 表Table |
属性 | 列Colunm |
元组 | 行Row |
CRUD: Create, Read, Update and Delete
Join
笛卡尔积
- (inner) join(,)
- outer join: 保留未匹配的Row
- left (outer) join: 左表保留
- right (outer) join: 右表保留
- full (outer) join:
Index
一个table有一个数据表,可能有多个索引表。
主键和外键自动创建索引。
PostgreSQL
- 哈希索引: 索引列值唯一,适合单点查询
- B树索引: 列值是基于比较的,适合范围查询
聚合和分组,分区
事务 transcation
- ACID
- Atomic
- Consistent: 数据始终处于完整状态,没有不一致状态。(注意与CAP的C不同)
- Isolated
- Durable: 如果事务执行一半时服务器崩溃,那么服务器重启后,那个事务能够安全回滚。
PostgrSQL中每个sql语句都隐式地包含在一个事务里。
存储过程和触发器
存储过程是在数据库中定义函数。 语言不确定。
在插入或更新这样的操作发生之前或之后,触发器会自动调用存储过程。
视图和规则
使用简单的方式查询复杂的数据。
如果想要更改视图,需要新建规则,告诉数据库在更改视图时怎样更改真正的表。