2023年sql面试题文库.pdf

上传人:文*** 文档编号:94300486 上传时间:2023-07-29 格式:PDF 页数:15 大小:1.40MB
返回 下载 相关 举报
2023年sql面试题文库.pdf_第1页
第1页 / 共15页
2023年sql面试题文库.pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《2023年sql面试题文库.pdf》由会员分享,可在线阅读,更多相关《2023年sql面试题文库.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、s q l 面试题文库.t x t 3 7 真诚是美酒,年份越久越醉香浓烈;真诚是焰火,在高处绽放才愈显美丽;真诚是鲜花,送之于人,手有余香.2.存储过程的优缺陷是什么?优点:1.由于应用程序随着时间推移会不断更改,增删功能,T S Q L 过程代码会变得更复杂,St o r e dP r o ce du r e 为封装此代码提供了 一个替换位置。2 .执 行 计 划(存储过程在初次运营时将被编译,这将产生一个执行计划一 一 事实上是M i cr o s o f t SQ L Se r v e r 为在存储过程中获取由T-SQ L 指定的结果而必须采用的环节的记录。)缓存改善性能。.但s q

2、l s e r v e r 新版本,执行计划已针对所有SQ L 批解决进行了缓存,而不管它们是否在存储过程中,所以没比较优势了。3 .存储过程可以用于减少网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-s q l 语句的代码流量。4 .使用存储过程使您可以增强对执行计划的反复使用,由此可以通过使用远程过程调用(R P C)解决服务器上的存储过程而提高性能。R P C 封装参数和调用服务器端过程的方式使引擎可以轻松地找到匹配的执行计划,并只需插入更新的参数值。5 .可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。6 .代码精简一致,一个存储过程可以用

3、于应用程序代码的不同位置。7 .更好的版本控制,通过使用M i cr o s o f t Vi s u al So u r ce Saf e 或某个其他源代码控制工具,您可以轻松地恢复到或引用旧版本的存储过程。8 .增强安全性:a、通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;b、提高代码安全,防 止S Q L注 入(但未彻底解决,例如,将数据操作语言一一D M L,附加到输入参数);c、S q l P ar am et er类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型(但也不是万无一失,还是应当传递至数据库前得到附加

4、验证)。缺陷:1.假如更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更 新Get V al u eO调用,等等,这时候估计比较繁琐了。2 .可移植性差由于存储过程将应用程序绑定到S Q L S er v er,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。假如应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定 于R D BM S的中间层中也许是一个更佳的选择。5.说一下m y s q l,o r acl e等常见数据库的分页实现方案?1.O r acl e:s el ect *fr o m (s el ec

5、t r o w _.*,r o w n u m r o w n u m _ fr o m (q u er y S Q L )r o w _ w h er e r o w n u m=m i n2.S Q L S er v er:s el ect t o p p ages i z e*fr o m t abl en am e w h er e i d n o t i n (s el ect t o p p ages i z e*(p age-l)i dfr o m t abl en am e o r der by i d)o r der by i d3.M y S Q Ls el ect *fr

6、 o m t abl en am e l i m i t p o s i t i o n,co u n t er4.D B2s el ect *fr o m (s el ect *,r o w n u m ber ()as R O W N E X T fr o m t abl en am e)w h er e R O W N E X Tbet w een m i n an d m ax6.第一范式(I N F)、第二范式(2 N F)和第三范式(3 N F)之间的区别是什么?构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系

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

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

9、式(2 N F)是在第一范式(1 N F)的基础上建立起来的,即满足第二范式(2 N F)必须先满足第一范式(1 N F)O第二范式(2 N F)规定数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标记。如图 3-2 员工信息表中加上了员工编号(e m p _i d)歹 U,由于每个员工的员工编号是惟一的,因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。第二范式(2 N F)规定实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,假如存在,那么这个属性和主关键字的这一部分应当分离出来形成一个

10、新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标记。简而言之,第二范式就是非主属性非部分依赖于主关键字。3.4.3 第三范式(3 N F)满足第三范式(3 N F)必须先满足第二范式(2 N F)。简而言之,第三范式(3 N F)规定一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(d e p t _i d)、部门名称、部门简介等信息。那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。假如不存在部门信息表,则根据第三范式(3 N

11、F)也应当构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。所谓范式就是符合某一种级别的关系模式的集合。通过度解把属于低档范式的关系模式转换为几个属于高级范式的关系模式的集合。这一过程称为规范化。1、第一范式(1 N F):一个关系模式R的所有属性都是不可分的基本数据项。2、第二范式(2 N F):关系模式R 属于第一范式,且每个非主属性都完全函数依赖于键码。3、第三范式(3 N F):关系模式R 属于第一范式,且每个非主属性都不伟递领带于键码。4、B C 范 式(B C N F):关系模式R 属于第一范式,且每个属性都不传递依赖于键码。武汉英思工程科技有限公司

12、-O R A C L E 面试测试题目1.解释 F U N C T IO N,PR O C E D U R E 和 PA C K A G E 区别答:f un c t i o n 和 p r o c e d ur e 是 PL/S Q L 代码的集合,通常为了完毕一个任务。p r o c e d ur e 不需要返回任何值而f un c t i o n 将返回一个值在另一方面,Pac k ag e 是为了完毕一个商业功能的一组 f un c t i o n 和 p r o c e d ur e 的集合。2.取某个序列的当前值的PL/S Q L 语句怎么写?答:S E L E C T 序列名.C

13、 U R R V A L F R O M D U A L;3.说明O R A C L E 数据库实例与O R A C L E 用户的关系?答:实例可以包含多个用户,一个用户只能在一个实例下4.创建数据库时,自动建立的t ab l e s p ac e 名称?答:S Y S T E M t ab l e s p ac e5.创建用户时,需要赋予新用户什么权限才干使它连上数据库?答:C O N N E C T6.IM PO R T 和 S Q L*L O A D E R 这 2个工具的不同点?答:这两个O R A C L E 工具都是用来将数据导入数据库的。区别是:IM PO R T 工具只能解决

14、由另一个O R A C L E 工具E X PO R T 生成的数据。而 S Q L*L O A D E R 可以导入不同的A S C II格式的数据源。7.解释冷备份和热备份的不同点以及各自的优点?答:热备份针对归档模式的数据库,在数据库依旧处在工作状态时进行备份。而冷备份指在数据库关闭后,进行备份,合用于所有模式的数据库。热备份的优点在于当备份时,数据库依旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于它的备份和恢复操作相称简朴,并且由于冷备份的数据库可以工作在非归档模式下,数据库性能会比归档模式稍好。(由于不必将ar c h i v e l o g 写入硬盘)8 .比较

15、 t r un c at e 和 d e l e t e 命令?答:两者都可以用来删除表中所有的记录。区别在于:t r un c at e 是 D D L (d at a d e f i n i n gl an g uag e 数据定义语言),它移动HW K,不需要r o l l b ac k s e g m e n t (解决事务回滚操作)而D e l e t e 是 D M L (d at a m an uf ac t ur i n g l an g uag e 数据操作语言)操作,需要 r o l l b ac k s e g m e n t(解决事务回滚操作)且花费较长时间。9 .给出

16、数据的相关约束类型?答:主键约束,外键约束,非空约束,唯一约束,检查约束。1 0 .说明索引的类型与作用?答:索引类型上分为聚集索引,非聚集索引其作用是加快查询速度。1 1 .解释归档和非归档模式之间的不同和它们各自的优缺陷答:归档模式是指你可以备份所有的数据库t r a n s a c t i o n s 并恢复到任意一个时间点。非归档模式则相反,不能恢复到任意一个时间点。但是非归档模式可以带来数据库性能上的少许提高。1 2 .解释$0 R A C L E _H 0 M E 和$O R A C L E _B A SE 的区别?答:O R A C L E _B A SE 是 o r a c 1

17、 e 的根目录,O R A C L E _H O M E 是 o r a c 1 e 产品的目录。1 3 .获取某个字符字段的最后3 个字符的函数是什么?答:s e l e c t s u b s t r (字段,(l e n g t h (字段)-3)f r o m 表1 4.取当前系统时间点日期(不涉及年月)的 SQ L 写法是如何的?答:Select substr(to_char(sysdate,YYYYMMDDh24hh:MM:SS?,5)from dual;1 5.返回大于等于N 的最小整数值?答:select ceil(N)from dual;1 6.将根据字符查询转换后结果,规则

18、为:A,转换为男B,转换为女 其 他 字 符转换为 未知,请用一个SQL语句写出。答:select decode(字符,A男,B女,未 知 )from dual;1 7.如何搜索出前N 条记录?答:select*from 表 where Rownum=N;1 8.如何搜索出第NM 条记录?答:select*from 表 where Rownum=MMinusselect*from 表 where Rownum=N;1 9.有一个数据表(TEST),字段如下:ID numberPARENT_ID numberNAME Varchar(20)请使用PL/SQL来按父子层次关系查询出该表的所有数据答

19、:Select*from test a,test b Where a.parent_id=b.id;20.如何用SQL语句实现查找一列中的第N 大值?答:select*from(select*from 表 order by 歹 U名 Desc)where Rownum=NMinusselect*from(select*from 表 order by 歹 U名 Desc)where Rownum=N-1;腾讯公司的一个s q l 题小小+霸霸+王王=小霸王小=?,霸=?,王=?用 s q l 求证参考答案:de c l a r e da t a i n t,i i n t,j i n t,1 i

20、 n ts e t da t a=1 0 0wh i l e (da t a ins e r t int o s _ d e p t(id,na m e,r e gio n_ id)v a l u e s (s _ d e p t _ id.ne xt v a l,f ina nc e*,2);1 r o w c r e a t e d.只有运营了序列号的名称.ne xt v a l 后序列号的名称.c u r r v a l 才有效才有值.O r a c l e 里面常用的数据字典有哪些?D ic t io na r y存放所有数据表,视图,同义词名称和解释D ic t.c o l u m

21、ns 数据字典里字段名称的和解释D b a _ u s e r s 用户 D b a _ t a b l e s p a c e s 表空间D b a _ d a t a _ f il e s 数据库的文献 D b a _ f r e e _ s p a c e空闲表空间D b a _ r o l l b a c k_ s e gs 回滚段Us e r _ o b je c t s数据对象Us e r _ c o ns t r a int s 约束条件Us e r _ s e q u e nc e s 序歹 U 号 Us e r _ v ie ws视图Us e r _ ind e xe s 索

22、弓I Us e r _ s yno nym s同义词S e s s io n_ r o l e s 用户的角色 Us e r _ r o l e _ p r iv s 用户的角色权限Us e r _ s ys _ p r iv s 用户的系统权限 Us e r _ t a b _ p r iv s 用户的表级权限V$s e s s io n 实时用户情况V$s ys s t a t 实时系统记录V$s e s s t a t 实时用户记录V$s ga s t a t 实时S G A 使用V$l o c ke d _ o b je c t 实时锁 V$c o nt r o l f il e 控制

23、文献V$l o gf il e 日记文献V$p a r a m e t e r 参数文献1.O r a c l e 安装完毕后的初始口令?int e r na l/o r a c l es ys/c ha nge _ o n_ ins t a l lsystem/managerscott/tigersysman/oem_temp2.0RACLE91 AS WEB CACHE的初始默认用户和密码?administrator/administrator3.oracle 8.0.5 怎么创建数据库?用 orainsto假如有motif界面,可以用orainst/m4.oracle 8.1.7 怎么创

24、建数据库?dbassist5.oracle 9 i 怎么创建数据库?dbca6.oracle中的裸设备指的是什么?裸设备就是绕过文献系统直接访问的储存空间7.oracle 如何区分 64bit/32bit 版本??$sqlplus 7 AS SYSDBASQL*Plus:Release 9.0.1.0.0-Production on Mon Jul 1 4 1 7:01:09 2023(c)Copyright 2023 Oracle Corporation.All rights reserved.Connected to:0racle9i Enterprise Edition Release

25、9.0.1.0.0-ProductionWit h t h e Pa r t it io n in g o p t io nJSe r v e r Re l e a s e 9.0.1.0.0-Pr o d u c t io nSQL s e l e c t *f r o m v$v e r s io n;BANNER0r a c l e 9i En t e r p r is e Ed it io n Re l e a s e 9.0.1.0.0-Pr o d u c t io nPL/SQL Re l e a s e 9.0.1.0.0-Pr o d u c t io nCORE 9.0.1

26、.0.0 Pr o d u c t io nTNS f o r So l a r is:Ve r s io n 9.0.1.0.0-Pr o d u c t io nNLSRTL Ve r s io n 9.0.1.0.0-Pr o d u c t io nSQL8.SVRMGR什么意思?s v r m gr l,Se r v e r Ma n a ge r.9i 下没有,已经改为用SQLPLUS 了s q l p l u s /n o l o g变为归档日记型的9.请问如何分辨某个用户是从哪台机器登陆ORACLE的?SELECT m a c h in e ,t e r m in a l FR

27、OM V$SESSION;10.用什么语句查询字段呢?d e s c t a b l e _ n c im e 可以查询表的结构s e l e c t f ie l d _ n a m e,f r o m 可以查询字段的值s e l e c t *f r o m a l l _ t a b l e s w h e r e t a b l e _ n a m e l ik eselect*from all_tab_columns where table_name=,?1 1 .如何得到触发器、过程、函数的创建脚本?desc user_sourceuser triggers1 2.如何计算一个表占

28、用的空间的大小?select owner,table name,NUM_ROWS,BLOCKS*AAA/1 024/1 024“Size M”,EMPTY_BLOCKS,LAST_ANALYZEDfrom dba_tableswhere table_name=,X XX;Here:AAA is the value of db block size;XXX is the table name you want to check1 4.如何查看系统被锁的事务时间?select*from v$locked_object;1 5.如何以archivelog的方式运营oracleoinit.oralog

29、_archive_start=trueRESTART DATABASE1 6.怎么获取有哪些用户在使用数据库select username from v$session;17.数据表中的字段最大数是多少?表或视图中的最大列数为100018.如何查得数据库的S1D?s e l e c t n a m e f r o m v$d a t a b a s e;也可以直接查看in it.o r a文献19.如何在Or a c l e服务器上通过SQLPLUS查看本机IP地 址?s e l e c t s y s _ c o n t e x t(,u s e r e n v ,ip _ a d d r

30、e s s )f r o m d u a l;假如是登陆本机数据库,只能返回127.0.0.1,呵呵20.u n ix下怎么调整数据库的时间?s u -r o o td a t e -u 08010000如何找出EMP表里面SALARY第N高的e m p l o y e e?SELECT DISTINCT(a.s a l)FROM EMP A WHERE&N=(SELECT COUNT(DISTINCT(b.s a l)FROMEMP B WHERE a.s a l=b.s a l);例如:-输入&N的值为2则输出结果为:SAL3700如何删除一个表里面的反复行?d e l e t e f r

31、 o m t a b l e n a m e w h e r e r o w id n o t in (s e l e c t m a x(r o w id)f r o m t a b l e n a m e gr o u pb y d u p l ic a t e _ v a l u e s _ f ie l d _ n a m e);或者d e l e t e d u p 1ic a t e _ v a l u e s _ f ie 1d _ n a m e d v f r o m t a b l e _ n a m e t a w h e r e r o w id (SELECT MIN(r o w id)FROM t a b l e _ n a m e B WHEREAk e y _ v a l u e s=B.k e y _ v a l u e s);SQL里面IN比较快还是EXISTS比较快?EXISTS比较快由于EXISTS返回一个Bo o l e a n 型而IN返回一个值。

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁