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

数据库面试题笔记

2018-07-01 10:24 211 查看
1、什么是存储过程?用什么来调用?

存储过程是一个预编译的SQL语句,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它,优点是允许模块化的设计。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。 调用:① 可以用一个命令对象来调用存储过程。② 可以供外部程序调用,比如:java程序。

2、触发器的作用?

触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。

3、存储过程的优缺点?

优点: ① 存储过程是预编译过的,执行效率高。 ② 安全性高,执行存储过程需要有一定权限的用户。 ③ 存储过程可以重复使用,可减少数据库开发人员的工作量。

缺点:移植性差

4、索引的作用?和它的优点缺点是什么?

索引就一种特殊的查询表,数据库的搜索可以利用它加速对数据的检索。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。

5、什么样的字段适合建索引?

唯一、不为空、经常被查询的字段

6、什么是事务

事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态。为了确保要么执行,要么不执行。(顺便复习ACID:原子性、一致性、隔离性、持久性脏读、不可重复读、幻读的概念,与4个隔离级别:串行化、可重复读、读已提交、读未提交,MySQL默认级别为:可重复读)

7、什么是视图

数据库中的数据都是存储在中的,而视图只是一个或多个表依照某个条件组合而成的结果集, 是一种虚拟的表。一般来说你可以用update,insert,delete等sql语句修改表中的数据,而对视图只能进行select操作

表是物理存在的,你可以理解成计算机中的文件!
视图是虚拟的内存表,你可以理解成Windows的快捷方式!

8、视图的优缺点?

优点:(1)数据安全性:对不同的用户定义不同的视图,使用户只能看到与自己有关的数据。(2)查询简单化:为复杂的查询建立一个视图,用户不必输入复杂的查询语句,只需针对此视图做简单的查询即可。(3)逻辑数据独立性:视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

缺点:查询视图时,必须把视图的查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,那么就无法更改数据。‘

9、在数据库中查询语句速度很慢,如何优化?

我个人的思路:(1)建立索引;(2)在做连接之前先尽可能使用where语句过滤筛选没用的数据。

10、数据库三范式

(网上有具体例子)

11、commit在哪里会运用

在未提交前你前面的操作更新的都是内存,没有更新到物理文件中。 执行commit从用户角度讲就是更新到物理文件了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: