明明记得,当初上课的时候老师说,只有DML才有事务操作,可是我在很多博文上面看到,DQL也有事务。那些脏读,不可重复读啊那些问题,就是描述的是,同一个事务下的问题,是我理解错了吗?
这就得看你信谁了,老师、博文还是强大的内心。
要不然我说了,你会增加你的混乱。
我在回忆是不是我理解有偏差~。 数据库本来就有事务,只是DQL 会自动提交,DML 需要手动提交,请求指点,谢谢啦~
@王的女人: DQL 只是查询 Select, 并不会对数据库的数据产生任何影响,
而事务,通常的理解是,做一件事情,这件事情如果中途出现故障,整件事情回滚,
请问这样一来,查询该如何回滚呢?阅后即焚也已经被阅了。
当然,还有另外一种可能性,那就是大家对DML,DQL的定义不同。
我上面的说法是基于:
数据库中DQL、DML、DDL、DCL的概念与区别
而如果按照 这篇文章 说的 DQL
DQL as a query language has SELECT, UPDATE and DELETE constructs that map to their corresponding SQL statement types.
那又完全不一样了。
@爱编程的大叔: 我在想我是不是问题描述的不清楚。我可能想表达的是,数据库的事务和sql 语言之间到底是一种什么样的关系?是不是说之间根本就没关系,或者说是sql语言是数据库事务的一种表现形式,并不是决定数据库有无事务。不管是DQL,DML.还是DDL,DCL。都不能说是数据库没有事务,只数据库的事务本身跟sql是不相关的,两者不是一个概念?。