一.单选
1.在关系型是数据库中,有两个不同的事务同时操作数据库中同一表的同一行,不会引起冲突的是:(F)
A. 其中一个DELETE操作,一个是SELECT操作
B. 其中两个都是UPDATE
C. 其中一个是SELECT,一个是UPDATE
D. 其中一个SELECT
E. 其中一个是DELETE,另一个是UPDATE
F. 两个都是DELETE
解析:A - F选项:一个操作属于一个会话,另一个操作属于另一个会话。
冲突:两个会话的操作,同时执行时,是否会互相影响。
id = 1,score = 50
A. 会话1:delete from 表 where id = 1,此时score = 50的记录都没有了,会话2如何查询。
B. 会话1:update 表 set score = 60 where score = 50,此时score = 60
会话2:update 表 set score = 70 where score = 50,此时就会报错,因为会话1已经把 score改成了60。
会话1:update 表 set score = score + 10 where id = 1,50---》60
会话2:update 表 set score = score + 20 where id = 1,60---》80,此时会话2已经被会话1影响了,题目的意思是50---》70。
C.会话1:select ... from 表 where id = 1,此时50
会话2:update 表 set score = 60 where id = 1,select ... from 表 where id = 1,此时score = 60
D. 其中一个select ,另一个操作只有是查询时,不会有冲突,但如果时插入、修改、删除都存在冲突
E. update 表 set score = 60 where id = 1,delete from 表 where id = 1,
select ... from 表 where id = 1,此时期望看到score = 60的记录 ,但是已经没有了。
F. 会话1:delete from 表 where id = 1 成功删除了这条记录
会话2:delete from 表 where id = 1 虽然这条记录已经被删除,但是当要删除的记录在数据库中不存在时,是不会报错的,而且会执行成功,只是没有删除任何数据而已。
此时无论查询会话1还是会话2都查询不到这条记录。
总结:在关系型是数据库中,有两个不同的事务同时操作数据库中同一表的同一行,只有两个都是delete和两个都是select才不会引起冲突。
2..计算每位学生的多学科加总成绩的SQL是 (C)
A. select sum(score) as tot