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

面试中常问到的数据库的一些问题

2017-03-17 16:25 543 查看
Java汇总 2017-02-08 09:52

1 简述视图的意义

参考答案

视图的意义在于两个方面:

1)简化复杂查询。如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,此后查询此视图即可。

2)限制数据访问。视图本质上就是一条SELECT语句,所以当访问视图时,只能访问到所对应的SELECT语句中涉及到的列,对基表中的其它列起到安全和保密的作用。

2 下列关于视图说法正确的是

A.对复杂视图可以执行插入数据操作

B.为了禁止在视图上执行DML操作,可以在建立视图时设置READ ONLY约束

C.CHECK OPTION约束表示,通过视图所做的修改,必须在视图的可见范围内

D.对视图的操作,最终都会转化成对基本表的操作

参考答案

本题的正确答案为BCD。

选项A说法不正确,复杂视图不允许DML操作。

3 关于序列的说法,下列正确的是

A.序列是Oracle提供的可用于产生一系列唯一数字的数据库对象。

B.通常情况下,一个序列为一张表提供主键值,但一个序列也可以为多个表提供主键值。

C.使用序列时,伪列NEXTVAL返回序列生成的下一个值。

D.任何时候都可以使用伪列CURRVAL返回当前序列值。

参考答案

本题的正确答案为ABC。

本题中D选项说法不正确,当序列创建以后,必须先执行一次NEXTVAL,之后才能使用CURRVAL。

4 简述索引的原理及创建索引的意义

参考答案

索引是对表的一列或多列进行排序的结构。因为绝大多数的搜索方法在搜索排序结构时效率都会大大提高,所以如果表中某一列经常被作为关键字搜索,则建议对此列创建索引。

索引提供指针以指向存储在表中指定列的数据值,根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行。

5 列举需要创建索引以及不适合创建索引的场合

参考答案

适合创建索引的场合为:

1)为经常出现在WHERE子句中的列创建索引。

2)为经常出现在ORDER BY、DISTINCT后面的字段建立索引。如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致。

3)为经常作为表的连接条件的列上创建索引

不适合创建索引的场合为:

1)不要在经常做DML操作的表上建立索引。

2)不要在小表上建立索引。

3)限制表上的索引数目,索引并不是越多越好。

6 简述主键选取的原则

参考答案

主键的选取原则如下:

1)主键应是对系统无意义的数据。

2)永远也不要更新主键,让主键除了唯一标识一行之外,再无其他的用途。

3)主键不应包含动态变化的数据,如时间戳。

4)主键应自动生成,不要人为干预,以免使它带有除了唯一标识一行以外的意义。

5)主键尽量建立在单列上。

7 简述外键约束的意义

参考答案

外键约束维护数据的一致性。外键约束条件包括两个方面的数据约束:

1)从表上定义的外键的列值,必须从主表被参照的列值中选取,或者为NULL。

2)当主表参照列的值被从表参照时,主表的该行记录不允许被删除。

8 简述外键约束对性能的影响,以及应对策略

参考答案

如果在一个频繁DML操作的表上建立外键,每次DML操作,都将导致数据库自动对外键所关联的对应表做检查,产生开销,如果已在程序中控制逻辑,这些判断将增加额外负担,可以省去;外键确定了主从表的先后生成关系,有时会影响业务逻辑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: