关于数据库事务,总有一些疑问,今天终于找到问题的源头了。总听到有人说DQL没有事务,DML有事务,为什么会有人这么说呢?是因为,这个行业内才懂得简约表达吗,还是其他的原因,麻烦有想法的解答一下。谢谢了。。
DQL:Data QueryLanguage DMLData Manipulation Language,前者是查询,后者是增删改,而数据库的事物就是在数据发生了改变才有的,就是保证数据的一致,额。。。。。。。。。表述不清楚,就像银行转账,这个例子最好理解,~.~
那事务在什么时候开启,什么时候关闭呢?还有就是什么样的操作算是一个事务呢,也就是是说怎么区分,这个操作是属于A事务,还是B事务呢?举个例子,就是同时执行多条update语句,这些update语句应该是属于同一个事务吗?
或者说,是一个sql对应一个事务吗?
@王的女人: 那不能这么说啊 ,你再添加一条数据的时候,你就需要commit一下,这个commit就是把这个事物提交了,然后这个数据就进了数据库。那银行转账的例子讲呢,就是从你卡里面给钱别人,别人卡里钱会增加,这一个增加一个减少肯定是控制在一个事物里面的对吧,不然钱不是莫名其妙的少了或者多了?
@王的女人: 你是搞那块的呢?
@猪喂了吗: 也就是说,当=事务开启的时候,在没有commit之前,所有的数据库操作都属于同一个事务?可以这样理解吗
@猪喂了吗: java web服务器端开发的~ 初入行业,还有很多不懂。来学习学习。。
@王的女人: 那这个问题就好回答了嘛,事物控制一般控制在service层,控制在方法级别,你一个方法里面的关于数据的增删改操作,要么全部成功,要么全部失败。写多了写着写着就明白了,去年这个时候我对这个问题也很懵逼~、~
@王的女人: 其实你没必要纠结这么多,后面自然而然的懂了
@猪喂了吗: 那我又出现了一个新的问题,你说的这个事务是spring的事务吗?和数据库的事务一样的吗?我被网上很多文章,搞蒙了
@王的女人: 事物就是数据库的,spring控制事物就是控制的数据库的事物...,你要这么想,你项目用操作东西一般不都是来操作数据库的么,Spring就是帮你在做了一堆增删改后帮你把数据库里面的事物提交了下or回滚了下。
@猪喂了吗:是这个理儿~~~ 虽然没全懂,但是大概思路有了,谢了哈
@王的女人: 写着写着你就懂了,事物这儿概念太抽象,还是要靠实践取理解,看概念的确不太好懂
可以了解下SQL99标准
SQL92/【99】标准的四大分类 :
DML(数据操纵语言):select,insert,update,delete
DDL(数据定义语言):create table,alter table,drop table,truncate table ......
DCL(数据控制语言):grant 权限 to scott,revoke 权限 from scott......
TCL(事务控制语言):commit,rollback,rollback to savepoint......