对数据库的修改
事务(transaction):由查询和更新语句的序列组成。SQL标准规定当一条SQL语句被执行,就隐式地开始了一个事务。下列SQL语句之一会结束一个事务:
Commit work:提交当前事务,也就是将该事务所做的更新在数据库中持久保存。在事务被提交后,一个新的事务自动开始。
Rollback work:回滚当前事务,即撤销该事务中所有SQL语句对数据库的更新。这样,数据库就恢复到执行该事务第一条语句之前的状态。
示例:
![](http://images0.cnblogs.com/blog2015/692648/201507/111343018145301.png)
如果其中一个更新成功,另一个更新失败,会导致数据库不一致问题
因此,这两个更新要么全部成功,要么全部失败
原子性(atomic):一个事务或者在完成所有步骤后提交其行为,或者在不能成功完成其所有动作的情况下回滚其所有动作
事务的四个性质:
1.原子性(atomic)
2.一致性(consistency)
3.隔离性(isolation)
4.持久性(durability)
在很多SQL实现中,默认方式下每个SQL语句自成一个事务,且一执行完就提交。如果一个事务要执行多条SQL语句,就必须关闭单独SQL语句的自动提交,如何关闭自动提交也依赖于特定的SQL实现
`定义外键的目的:不是为了连接(JOIN),而是系统可以帮我们做参照完整性检查。`
完整性约束:
完整性约束保证授权用户对数据库所做的修改不会破坏数据的一致性