数据库常见面试题

浏览: 1862

1.union ,union all 的区别

网络搜索出的最佳答案: 

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。 

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; 

Union All:对两个结果集进行并集操作,包括重复行,不进行排序; 

2.索引有哪些分类?作用是什么? 

索引用于快速找出在某个列中某一特定值的行。不使索引,数据库必须从第一条记录开始读完整个表,直到找到相关行。如果表中查询的列有一个索引,数据库能快速到达一个位置去搜寻数据,而不必查看所有数据。 

索引的含义和特点: 

     索引是一个单独的、存储在磁盘上的数据结构,他们包含着对数据表里所有记录的应用指针。使用索引用于快速找出在某个或多个列中有一某特定值的行,对相关列使用索引是降低查询操作时间的最佳途径,索引包含有表或视图中的一列或多列生成的键。 

       数据库中现在有2万条记录,现在要执行这样一个查询:SELECT* FROM table where num=10000。如果没有索引,必须遍历整个表,直到num等于10000的这一行被找到为止;如果在num列上创建索引,SQLServer不需要任何扫描,直接在索引里面找10000,就可以得知这一行的位置。可见,索引的建立可以加快数据库的查询速度。 

索引的优点主要有以下几条: 

1).通过创建唯一索引,可以保证数据库表中每一行数据的唯一性。 

2).可以大大加快数据的查询速度。 

3).实现数据的参照完整性,可以加速表与表之间的连接。 

4).在使用分组和排序字句进行数据查询时,也可以显著减少查询中分组和排序的时间。 

索引的缺点主要有以下几条: 

1).创建和维护索引要消耗时间,并且随着数据量的增加所耗费的时间也会增加。 

2).索引需要占磁盘空间,除了数据表占数据空间外,每一个索引还要占一定的物理空间,如果有大量的索引,索引文件可能比数据文件更快到达最大文件尺寸。 

3).当对数据表中的数据进行增删改的时候,索引也要动态的维护,这样就降低了数据的维护速度。 

每个表只能有一个聚集索引,如果需要在表中建立多个索引,则可以创建为非聚集索引,无论是聚集索引,还是非聚集索引,都可以是唯一索引。 

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

事务很重要的四个属性: 

1)原子性:事务必须是原子工作单位。——在事务中修改数据,要么全都执行,要么全都不执行 

2)一致性:发生在同一进程的事物里面的 修改和 查询是不会产生冲突的。保持访问的数据的一致性。 

3)隔离性:控制数据访问的机制; 说明: 一个事务正在对一个表的数据正在修改, 还没有执行完成;;这时另一个事务,想要查询里面的数据,是不能查到的,必须等到 修改的事务执行完成。:sql server 采用的 “锁”的机制,将正在修改的事务 处理的表的数据 锁定。这样是为了保证数据同步,数据的一致性。 

4)、持久性:  当一个事务的指令 已经提交到 事务日志里面,即使磁盘上的数据还没有修改,这个时候数据库的服务停止,在服务重启的时候还会将事务日志里的指令执行(进行回复处理)。保证数据的持久性 

Microsoft SQL Server 数据库引擎用来同步多个用户同时对同一个数据块的访问的一种机制,从数据库的角度分为排他锁,共享锁,更新锁。 

事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。 

4.SQL子查询 

5.SQL优化机制 

6.过滤重复行 

最后这三个建议最好多看些相关的demo

7.如果你是面试oracle数据库,那么建议看看数据库性能优化部分,比如PGA/SGA,优化器,还有oracle的体系结构等;如果你是面试sqlserver数据库的,那么多去看看关于DBCC命令这些;这些能够对你的面试增分不少

推荐 1
本文由 xiaoyaya 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册