您的位置:首页 > 职场人生

数据库常见面试题

2018-02-25 23:01 281 查看

1

一张数据库表,存储的是班级学生的名字,如何检索出同名的人

select * from class in (select name from class group by name having count(*)>1)

2 数据库四种隔离级别

事物并发会导致三种问题:

1. 脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

2. 不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

3. 幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

小结:脏读是因为回滚,不可重复读是因为更新,幻读是因为插入。



总结:读未提交会引起脏读,所以用读已提交来解决。可重复读,实际上是锁住对应行的数据,这样就可以解决不可重复读问题。串行化实际上是锁住整个表,以解决幻读。

2 外连接vs内连接

内连接

select * from tbl_dept a inner join tbl_emp b on a.id=b.deptId;



外连接

外连接有左连接,右连接,全连接

左连接如下:

select * from tbl_dept a left join tbl_emp b on a.id=b.deptId;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: