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语句都隐式地包含在一个事务里。

存储过程和触发器

存储过程是在数据库中定义函数。 语言不确定。

在插入或更新这样的操作发生之前或之后,触发器会自动调用存储过程。

视图和规则

使用简单的方式查询复杂的数据。

如果想要更改视图,需要新建规则,告诉数据库在更改视图时怎样更改真正的表。