数据库常见面试题

2017-12-15  本文已影响77人  许小小晴

摘自http://www.51testing.com/html/53/15150753-3722362.html

1.触发器的作用?

触发器是一类特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。

2.什么是存储过程?用什么来调用?

存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需要创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以一个命令对象来调用存储过程。

3.索引的作用?它的优点缺点是什么?

索引就是一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。

4.在关系数据库中,用来表示实体间联系的是?B

A属性

B二维表

C网状结构

D树状结构

[解析]关系模型实体间的联系采用二维表来表示,简称表。选项C为网状模型实体间的联系,选项D为层次模型实体间的联系,选项A属性刻画了实体。

5.数据库中事务隔离分为4个级别,其中允许“不可重复读”的有?(求解释) BC

A SERIALIZABLE

B READ COMMITTED

C READ UNCOMMITTED

D REPEATABLE READ

C:出现脏读,幻读,不可重复读。

B:出现幻读,不可重复读。

D:出现幻读

A:不出现上述问题。

Read Uncommitted:不隔离数据,对于事务使用的数据,其他事务也能修改删除。

Read Committed:不允许读取没有提交的数据,只有其他事务提交了数据,你才能访问。

Repeatable Read:事务中用到的数据都被锁定,其他事务不能修改和删除。

Snapshot:快照隔离

Serilizable:事务要用到的数据全部锁定,不允许其他事务添加,修改,删除。

6.事务日志用于保存C

A程序运行过程

B程序的执行结果

C对数据的更新操作

D对数据的查询操作

记录数据库事务,最大限度地保证数据的一致性与安全性

重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复,一个数据库至少需要两个重做日志文件

归档日志文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

7.要删除表A中数据,使用TRUNCATE TABLE A。运行结果是?A

A表A中的约束依然存在

B表A被删除了

C表A中的数据被删除了一半,再次执行时,将删除剩下的一半数据行

D表A中不符合检查约束要求的数据被删除,而符合检查约束要求的数据依然保留

删除表的语句为:DROP TABLE table_name;

而DELETE和TRUNCATE TABLE都是删除表中的数据的语句,它们的不同之处在于:

1、TRUNCATE TABLE比DELETE的速度快;

2、TRUNCATE TABLE是删除表的所有行,而DELETE是删除表的一行或者多行(除非DELETE不带WHERE语句);

3、在删除时如果遇到任何一行违反约束(主要是外键约束),TRUNCATE TABLE仍然删除,只是表的结构及其列、约束、索引等保持不变,但DELETE是直接返回错误;

4、对于被外键约束的表,不能使用TRUNCATE TABLE,而应该使用不带WHERE语句的DELETE语句。

5、如果想保留标识计数值,要用DELETE,因为TRUNCATE TABLE会对新行标志符列搜用的计数值重置为该列的种子。

上一篇 下一篇

猜你喜欢

热点阅读