数据库面试题

上传人:新** 文档编号:482843741 上传时间:2024-02-27 格式:DOCX 页数:9 大小:28.72KB
返回 下载 相关 举报
数据库面试题_第1页
第1页 / 共9页
数据库面试题_第2页
第2页 / 共9页
数据库面试题_第3页
第3页 / 共9页
数据库面试题_第4页
第4页 / 共9页
数据库面试题_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数据库面试题》由会员分享,可在线阅读,更多相关《数据库面试题(9页珍藏版)》请在金锄头文库上搜索。

1、数据库面试题就业面试题库一数据库部分1 . 谈谈你对Oracle的理解。Oracle是一系列产品的总和,也可以说是一个平台,它包含Oracle数据库、Oracle中间件、Oracle管理软件等,我简单的描述一下对于Oracle数据库的理解。它是一种基于网络访问的可跨平台的关系型数据库,具有较强的可移植性;通过连接存储 池(connection polling)和多路复用(multiplexing )机制来实现动态可伸缩性;它通 过并行服务器(Parallel Server Option )来提高系统的可用性;Oracle的自动备份和恢复功能,提供了对大规模和更加细化的分布式操作系统的支持等等。

2、2 .主键的作用有哪些?1)保证数据的唯一性,避免发生数据重复的情况。2)因为主键可以唯一标识某一行记录,所以能确保执行数据更新、删除的时候不会出现张冠李戴的错误。3)主键常常与外键构成参照完整性约束,防止出现数据不一致。3 .索引对数据并发会有影响吗?索引能大大提高对于数据查询的访问速度,但当有大量基于数据插入的并发操作时,索引反而会降低并发操作的执行速度;当然如果有行级锁的话,情况又会有变化。4 .查询数据库中的某一个到某一个段之间的SQL语句?(比如查询第 20到30条的数据)Oracle:select * from (select rownum r, a.* from table a

3、where rownum = 20SQL Server:select * from( select top 21 * from(select top 30 * from test1 order by _id )t order by _id desc)t order by _id5 . SQLServer中的内置函数有哪些?标量函数,如: Date( ), Convert。聚合函数,如: SUM() , MAX() , STDEV()行集函数,如: getdate( ), Substring。,,6 .数据库的设计原理。1)原始单据与实体之间的关系2)主键与外键3)范式标准4)完整性约束7 .存

4、储过程的理解。存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用 户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以出于任何使用SQL语句的目的来使用存储过程,它具有以下优点:1)可以在单个存储过程中执行一系列SQL 语句。2)可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。3)存储过程在创建时即

5、在服务器上进行编译,所以执行起来比单个SQL语句快。8 .在Oracle大数据量下的分页解决方法-游标类型定义,用于返回数据集-每页记录数-当前页码,从1开始type refCursorType is REF CURSOR;procedure sp_Page(p_PageSize int, p_PageNo int,p_SqlSelect varchar2,p_SqlCount varchar2,-查询语句,含排序部分-获取记录总数的查询语句p_OutRecordCount out int,-返回总记录数 p_OutCursor out refCursorType)asv_sql varcha

6、r2(3000);v_count int;v_heiRownum int;v_lowRownum int;begin-取记录总数execute immediate p_SqlCount into v_count;p_OutRecordCount := v_count;执行分页查询v_heiRownum := p_PageNo * p_PageSize;v_lowRownum := v_heiRownum - p_PageSize + 1;v_sql := SELECT *FROM (SELECT A.*, rownum rnFROM (| p_SqlSelect |) AWHERE rownu

7、m = | to_char(v_lowRownum);-注意对rownum别名的使用,第一次直接用rownum,第二次一定要用别名rnOPEN p_OutCursor FOR v_sql;end sp_Page;9 .存储过程和函数的区别存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种 类型的值并且不涉及特定用户表。10 .事务是什么?事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为ACID)(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:原子性,事务

8、必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不 执行。一致性,事务在完成时,必须使所有的数据都保持一致状态。在相关数据库 中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如B树索引或双向链表)都必须是正确的。隔离性,由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所 处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的 状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始 数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。持久性,事务完成之后,它对

9、于系统的影响是永久性的。该修改即使出现系统故障 也将一直保持。11 .游标的作用?如何知道游标已经到了最后?游标用于定位结果集的行,通过判断全局变量 FETCH_STATUS以判断是否到了最后,通常此变量不等于0表示出错或到了最后。12 .触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有 何区别。事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通 常事前触发器可以获取事件之前和新的字段值。语句级触发器可以在语句执行前或 后执行,而行级触发在触发器所影响的每一行触发一次。13 .你在数据库编程过程中,面临的数据量有多大?如果有一个项目中每天有三张结构

10、完全相同的表,一个365天天天如此,每张表记录在100万条以上,现需要分页查询,根据这样的项目,采用你用过的分页原理,行吗?这是考的是性能,一般的分页方式不行,遇到这样的题,你可以说,你需要了解更 详细的业务,认真的研究一下,是可以的,当然,如果你认为你的方法可以,可以 对这样的问题进行交流,等等。这样的题,说不好也行,不影响你的面试,主要是 看一下你对问题的态度14 .写出从数据库表 Custom中查询 No Name Numl Num2 并将 Name以姓名显示、计算出的和以总和显示的SQLSELECTNo, Name AS 姓名Num1 , Num2, (Num1+Num2) AS 总和

11、FROM Custom15 .何为“事务处理”,谈谈你对它的理解。事务处理是指一个单元的工作,这些工作要么全做,要么全部不做。作为一个逻辑 单元,必须具备四个属性:自动性、一致性、独立性和持久性。自动性是指事务必 须是一个自动的单元工作,要么执行全部数据的修改,要么全部数据的修改都不执 行。一致性是指当事务完成时,必须使所有数据都具有一致的状态。在关系型数据 库中,所有的规则必须应用到事务的修改上,以便维护所有数据的完整性。所有的 内部数据结构,在事务结束之后,必须保证正确。独立性是指并行事务的修改必须 与其他并行事务的修改相互独立。一个事务看到的数据要么是另外一个事务修改这些事务之前的状态,

12、要么是第二个事务已经修改完成的数据,但是这个事务不能看 到正在修改的数据。16 .数据库名词解析批:是包含一个或多个 Transact-SQL语句的组,从应用程序一次性地发送到 Microsoft SQL Server执行。批作为一个整体执行,以 GO命令结束。批处理是客户 端作为一个单元发出的一个或多个SQL语句的集合。每个批处理编译为一个执行计戈|J。触发器:触发器是在对表进行插入、更新或删除操作时自动执行的存储过程,触发 器通常用于强制业务规则,触发器可以确保数据的完整性和一致性。事务:是用户定义的一个操作序列,这些操作要么全做要么全不做,是一个不可分 割的工作单位(构成单一逻辑工作单元

13、的操作集合)如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错 误且必须取消或回滚,则所有数据更改均被清除 锁:是在多用户环境中对数据访问的限制封锁就是事务T在对某个数据对象 (如表、记录等)操作之前,先向系统发出请求,对其加锁。加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。(锁蕴含的基本概念是用户需要对表的排它访问)从程序员的角度看:分为乐观锁和悲 观锁。乐观锁:完全依靠数据库来管理锁的工作。悲观锁:程序员自己管理数据或 对象上的锁处理。子查询:一个 SELECT语句嵌套在另一个SELECT语

14、句中。索引:是一个数据库对象,它是某个表中一列或若干列值的集合和相应的指向表中 物理标识这些值的数据页的逻辑指针清单,然后根据指定的排序次序排列这些指针优点:提高查询执行的速度,强制实施数据的唯一性,提高表之间联接的速度。缺 点:存储索引要占用磁盘空间,数据修改需要更长的时间,因为索引也要更新。试图:是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的。视图 本质上讲,就是保存在数据库中的select查询,视图并不是数据库中存储的数据值的集合。对最终用户的好处:结果更容易理解,获得数据更容易。对开发人员的好处:限制数据检索更容易,维护应用程序更方便。存储过程:使用一个名称存储的预编译T

15、-SQL语句和流程控制语句的集合?由数据库开发人员或数据库管理员编写用来执行管理任务或应用复杂的业务规则优点?执行速度更快?首次运行时,进行优化和编译得到执行计划并将该计划存储在系统表 中,以后直接运行。?实现多个程序共享应用程序逻辑?组件式编程?能够屏蔽数据库的结构,实现更高的安全性减少网络流通量。 数据模型: 是一种标识实体类型及其实体间联系的模型。典型的数据模型有网状模 型、层次模型和关系模型。17 .数据库设计和建模必要性好的数据库结构有利于:节省数据的存储空间,能够保证数据的完整性,方便进行 数据库应用系统的开发。设计不好的数据库结构将导致:数据冗余、存储空间浪费,内 存空间浪费。18 .数据库设计步骤收集信息- 标识对象 - 设计数据模型 - 标识每个对象存储白M言息类型-标识对象之间的关系19 .什么是规范化从关系数据库的表中,除去冗余数据的过程称为规范化。包括:精简数据库的结构,从表中删除冗余的列,标

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 工业自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号