sql面试题文库

上传人:缘*** 文档编号:190282716 上传时间:2021-08-12 格式:DOCX 页数:12 大小:24.72KB
返回 下载 相关 举报
sql面试题文库_第1页
第1页 / 共12页
sql面试题文库_第2页
第2页 / 共12页
sql面试题文库_第3页
第3页 / 共12页
sql面试题文库_第4页
第4页 / 共12页
sql面试题文库_第5页
第5页 / 共12页
点击查看更多>>
资源描述

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

1、读书破万卷下笔如有神2.存储过程的优缺点是什么?优点:1 .由于应用程序随着时间推移会不断更改,增删功能,T- SQL过程代码会变得更复杂,StoredProcedure 为封装此代码提供了一个替换位置。2 .执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划-实际上是Microsoft SQL Server为在存储过程中获取由T-SQL指定的结果而必须采取的步骤的记录。)缓存改善性能。.但sql server 新版本,执行计划已针对所有T-SQL批处理进行了缓存,而不管它们是否在存储过程中,所以没比较优势了。3 .存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不

2、会产生大量 T-sql语句的代码流量。4 .使用存储过程使您能够增强对执行计划的重复使用,由此可以通过使用远程过程调用(RPC)处理服务器上的存储过程而提高性能。RPC封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划,并只需插入更新的参数值。5 .可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。6 .代码精简一致,一个存储过程可以用于应用程序代码的不同位置。7 .更好的版本控制,通过使用Microsoft Visual SourceSafe或某个其他源代码控制工具,您可以轻松地恢复到或引用旧版本的存储过程。8 .增强安全性:a、通过向用户授予对

3、存储过程(而不是基于表) 的访问权限,它们可以提供对特定数据的访问;b、提高代码安全,防止 SQL注入(但未彻底解决,例如,将数据操作语言DML附加到输入参数);c、SqlParameter类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型(但也不是万无一失,还是应该传递至数据库前得到附加验证)。缺点:1 .如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则 您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较 繁琐了。2 .可移植性差由于存储过程将应用程序绑定到SQL Server ,因此使

4、用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于RDBMS的中间层中可能是一个更佳的选择。5.说一下mysql, oracle等常见数据库的分页实现方案?1.Oracle:select * from ( select row_.*, rownum rownum_ from ( query_SQL ) row_ where rownum= min2.SQL Server:select top pagesize * from tablename where id not in (select top pagesize*(page

5、-1) idfrom tablename order by id) order by id3.MySQLselect * from tablename limit position, counter4.DB2select * from (select *,rownumber() as ROW_NEXT from tablename) where ROW_NEXTbetween min and max6.第一范式(1NF)、第二范式(2NF)和第二范式(3NF)之间的区别是什么? 构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种 级别的关系模式的集合。关系数据库中

6、的关系必须满足一定的要求,即满足不同的范式。目 前关系数据库有六种范式:第一范式(1NF)、第二范式(2ND、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式 (3NF)就行了。下面我们举例介绍第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。3.4.1 第一范式(1NF)在任何一个关系数据库中, 第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。所谓第一范式(

7、1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不 能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属 性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一 对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于图 3-2中 的员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显 示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而 言之,第一范式就是无重复的列。3.4.2 第二范式(2NF)第二范式(2NF)是在第一范式(1NF)的基础上建立起来的

8、,即满足第二范式(2NF)必须先满足第一范式 (1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一 地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。如图3-2员工信息表中加上了员工编号(emp_id)歹U,因为每个员工的员工编号是惟一的,因 此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅 依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来 形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一 个列,

9、以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键3.4.3 第三范式(3NF满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一 个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表, 其中每个部门有部门编号(dept_id )、部门名称、部门简介等信息。那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入 员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。所谓范式就是符

10、合某一种级别的关系模式的集合。通过分解把属于低级范式的关系模式转换 为几个属于高级范式的关系模式的集合。这一过程称为规范化。1、 第一范式(1NF): 一个关系模式R的所有属性都是不可分的基本数据项。2、 第二范式(2NF):关系模式R属于第一范式,且每个非主属性都完全函数依赖于键 码。3、 第三范式(3NF):关系模式R属于第一范式,且每个非主属性都不伟递领带于键码。4、 BC范式(BCNF:关系模式R属于第一范式,且每个属性都不传递依赖于键码。武汉英思工程科技有限公司-ORACL画试测试题目1 , 解释 FUNCTION PROCEDURE PACKAG区另答:function 和proc

11、edure是PL/SQL代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而 function 将返回一个值在另一方面,Package是为了完成一个商业功能的 组 function 和 procedure 的集合。2 .取某个序列的当前值的PL/SQL语句怎么写?答:SELECT序歹U名.CURRVAL FROM DUAL3 .说明ORACL激据库实例与 ORACLE1户的关系?答:实例可以包含多个用户,一个用户只能在一个实例下4 .创建数据库时,自动建立的tablespace 名称?答:SYSTEM tablespace5 . 创建用户时,需要赋予新用户什么权限才能使它连

12、上数据库?答:CONNECT6 . IMPORT 和SQL*LOADE这2个工具的不同点?答:这两个ORACLEE具都是用来将数据导入数据库的。区别是:IMPORTS具只能处理由另一个 ORACLET具EXPOR正成的数据。而 SQL*LOADERT 以导入不同的 ASCII格式的数据源。7 .解释冷备份和热备份的不同点以及各自的优点?答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指在 数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库 仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相当简单,并

13、且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(因为不必将archive log写入硬盘)8 .比较 truncate 和 delete 命令?答:两者都可以用来删除表中所有的记录。区别在于:truncate 是DDL (data defininglanguage数据定义语言),它移动HWK不需要rollback segment(处理事务回滚操作)而Delete 是 DML(data manufacturing language 数据操作语言)操作,需要 rollback segment (处理事务回滚操作)且花费较长时间。9 .给出数据的相关约束类型?答:主键约束,

14、外键约束,非空约束,唯一约束,检查约束。10 .说明索引的类型与作用?答:索引类型上分为聚集索引,非聚集索引其作用是加快查询速度。11 .解释归档和非归档模式之间的不同和它们各自的优缺点答:归档模式是指你可以备份所有的数据库transactions并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许 提高。12 .解释 $ORACLE_HOM!E$ORACLE_BASE区别?答:ORACLE_BASE oracle 的根目录,ORACLE_HOMEoracle 产品的目录。13 .获取某个字符字段的最后3个字符的函数是什么?答:selec

15、t substr ( 字段,(length( 字段)-3) from 表14 .取当前系统时间点日期(不包括年月)的SQL写法是怎样的?答:Select substr (to_char(sysdate, YYYYMMDDh24hh:MM:SS),5) from dual;15 .返回大于等于 N的最小整数值?答:select ceil(N) from dual;16.将根据字符查询转换后结果,规则为:A转换为男,B转换为女,其他字符转换为未知,请用一个SQL语句写出。答:select decode( 字符,A,男,B,女,未知)from dual;17.如何搜索出前答:select * fromN条记录?表 where Rownum = N;18 .如何搜索出第 NM条记录?答:select * from 表 where Rownum = MMinusselect * from 表 where Rownum = N;19 .有一个数据表(TEST,字段如下:ID numberPARENT_ID num

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

当前位置:首页 > IT计算机/网络 > 其它相关文档

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