数据库复试面试

这些资料都是在参考各种大佬的文章的基础之上整理出来的部分内容,仅供参考。
1.关于范式

个人理解的话,第一范式的最大特点是不可分割,属性都是单一分开的,第二范式的话,就是有主键,并且其他属性都是完全依赖于主键,第三范式的话,就是消除冗余,在表中信息只存在一个地方,而不是多个地方,即不存在传递依赖,相当于非主键列A依赖非主键列B,非主键列B依赖于主键C。

2.主键和外键

主键就是一个代表这个表的唯一属性,有且只有一个,并且不能为空,外键是存在于此表中的,另一张表的主键。

3.触发器

也就是在sql语言中,当满足该触发条件时,执行在触发器中的语言集合。

4.事务的问题

事务本身的意思是,一个逻辑单元产生的一系列操作。
本身包含四个属性:1.原子性:要么执行,要么不执行。2.隔离性:所有操作在执行完以前,其他会话是看不到过程的。3.一致性:事务前后,数据总额保持一致。4.持久性:一旦事务提交,对系统进行的修改就是永久性的。

5.关于drop,delete,turncate的操作

主要来说,这三个最大的区别就是,1.drop是直接删除这张表。2.delete是删除表中部分或者全部的数据,并且可以通过commit提交或者rollback回滚。3.turncate是直接删除此表中的数据,而不删除表。

6.视图和表的区别

数据库中的数据都是存储在表中的,而视图只是一个或者多个表通过某些条件组合在一起的结果,一般来说,可以对数据表进行插入删除操作,而对视图只能进行select操作。

7.关于冷备份和热备份的区别

相当于冷备份是在系统已经关闭的情况之下对数据的存储,把数据放在了另一个位置之上,而热备份是在系统还在运行的情况之下进行的操作,一边运行一边备份,消耗空间较多。

8.数据库中inner join,outer join,cross join的联系。

inner join 相当于就是两个集合的交集
outer join里包含 right join和left join
分别代表:产生右边表的完全集,而左边表不存在的数据用null表示,存在的数据则显示和产生左边表的完全集,而右边表中不存在的数据用null表示,存在的数据则显示。
cross join:相当于就是对两个表格进行笛卡尔积。

9.varchar2 和char的区别

其实就是关于长度的区别,varchar是长度可变的,而char的长度是固定的

10.什么是脏读,不可重读,丢失更新

脏读:事务T1
更新了数据R,然后事务T2读取了更新的数据R,但是事务T1由于某些原因被撤销,修改无效,R重新变成了更新前的,所以T2读取到的数据和在数据库中的数据不一样,这就是脏读
不可重读:事务T1读取了数据R,然后事务T2也读取了数据R,并且将其更新,之后T1再去读取的时候,会发现R和他之前的数据不一样,这就是不可重读
丢失更新:事务T1和T1同时对数据R进行了修改,但是T1把T2或者T2把T1所修改的结果覆盖掉了,导致数据的丢失,这就是丢失更新

发布了72 篇原创文章 · 获赞 5 · 访问量 2824

猜你喜欢

转载自blog.csdn.net/qq_41115379/article/details/104873194