面试中常问到的数据库的一些问题
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操作,都将导致数据库自动对外键所关联的对应表做检查,产生开销,如果已在程序中控制逻辑,这些判断将增加额外负担,可以省去;外键确定了主从表的先后生成关系,有时会影响业务逻辑。
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操作,都将导致数据库自动对外键所关联的对应表做检查,产生开销,如果已在程序中控制逻辑,这些判断将增加额外负担,可以省去;外键确定了主从表的先后生成关系,有时会影响业务逻辑。
相关文章推荐
- 关于数据库(Mysql)的一些面试(笔试)问题
- 数据库事务的一些面试问题
- 在用ORACLE数据库和JSP连接时要注意的一些问题精粹
- 管理Oracle数据库要注意的一些问题
- ABAP 面试问题及答案(一):数据库更新及更改 SAP Standard (转)
- 面试时候经常会问的一些问题
- 从传统数据库访问转向LINQ过程中遇到的一些问题和解决方法
- 面试时要注意的一些问题
- 看到很多同学面试出现问题,这里提供一些资料
- 面试时要注意的一些问题
- ABAP 面试问题及答案(一):数据库更新及更改 SAP Standard
- 在用ORACLE数据库和JSP连接时要注意的一些问题精粹
- 面试中一些常见问题的回答(2005-5-19)
- C#面试的一些问题.
- 面试时要注意的一些问题
- 面试的时候问的一些问题
- ASP与数据库打交道时,可能会遇到的一些问题!
- 一些关于数据库的问题
- JSP面试中的一些问题
- [导入]C#面试的一些问题.