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

SQL常见的概念型面试题

2014-01-04 19:58 281 查看
SQL理论题

1.触发器的作用?

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

 

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

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

 

3.SQL语句和存储过程的区别?

         1.存储过程在创建时候就在服务器上进行编译,是一个预编译集合,因此运行速度快.

         2.存储过程可以在单个存储过程中运行一系列SQL语句,而SQL是一句句执行.

         3.存储过程比SQL多了逻辑处理,变量,异常处理,可以接受参数,输出参数,返回单个或多个结果集,可以向程序返回错误原因.

         4.存储过程可以在其运行过程中调用其他存储过程,简化一系列的复杂语句.

         5.稳定,不会有太多错误,一次成功,以后就按这个程序运行.

         6.存储过程防SQL注入,安全性高,他只在服务器上运行,而SQL是在客户端运行.

 

4.索引的作用?他的优缺点是什么?

         索引就是一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索.类似书的目录一样,不需查询整本书就得到了数据.索引可以说唯一的,创建索引允许指定单个列或者多个列.缺点是它减慢了数据录入的速度,同时增加了数据库大小. 索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。

 

5.维护数据的完整性,一致性,你喜欢用触发器还是自写业务逻辑?为什么?

         1.尽量使用约束,如check,主键,外键,非空字段等来约束,效率最高,方便.

         2.使用触发器,这个方法保证无论什么业务系统访问数据库都可保证数据的完整一致性.

         3.最后考虑只写业务逻辑,这样做最麻烦,复杂,效率最低.

 

6.什么是事务?什么是锁?

         事务就是被绑定在一起作为一个逻辑工作单元的SQL语句组,一句失败全体失败,就回滚回操作前的状态.需要有原子性,一致性,隔离性,持久性.

         锁是实现事务的关键,锁可以保证事务的完整性和并发性.它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构.

 

7.什么叫视图?游标时什么?

         视图是一种虚拟的表,具有和物理表相同的功能,可以对视图进行增删改查,视图通常是一个表或者多个表的行或者列的子集.对视图的修改不影响基本表,它是的我们获取数据更容易,相比多表查询.

         游标时对查询出来的结果集作为一个单元来有效的处理.游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行.可以对结果集当前行做修改.一般不使用游标,但是需要一条条处理数据的时候,游标就十分重要.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: