事务:事务是需要在同一个处理单元中执行的一系列更新处理的集合。
事务处理的终止指令包括:commit 和 rollback
DBMS的事务具有 ACID 四种属性
原子性 atomicity
一致性 consistency
隔离性 isolation
持久性 durability
在RDBMS系统中,事务代表了对表中数据进行更新的单位
例如:在某公司的会议上,大家决定将a衬衫销售价格降低100元出售,b衬衫的销售价格上涨50元。正常逻辑就是写sql句子咯:
update clothes set a_shirt_price = a_shirt_price - 100 where colthes_name = 'a_shirt'; update clothes set b_shirt_price = b_shirt_price + 100 where colthes_name = 'b_shirt';
但是上述两个操作必须在同一个单元进行处理,任何一项操作被忘记,都会对公司造成影响。所以,事务就是解决上述问题的。
在DBMS系统的创建事务的语法,如下:
事务开始语句;
DML语句①(DML句子包括:INSERT、UPDATE、DELETE、SELECT DDL句子包括:CREATE、ALTER、DROP )
DML语句②
DML语句③
事务结束语句(commit rollback)
在标准的SQL中并没有定义事务的开始语句,而是由各个DBMS自己来定义的。比较有代表性的语法如下:
1、SQL Server、PostgreSQL BEGIN TRANSACTION 2、MySQL START TRANSACTION 3、Oracle、DB2 无
那么对应的,在demo中,该公司进行衬衫价格调整的sql句子在Oracle中就该是按照如下写法:
update clothes set a_shirt_price = a_shirt_price - 100 where colthes_name = 'a_shirt'; update clothes set b_shirt_price = b_shirt_price + 100 where colthes_name = 'b_shirt'; COMMIT;