电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数据库方面面试题DBA数据库管理员JAVA程序员架构师必看

28页
  • 卖家[上传人]:206****923
  • 文档编号:91101760
  • 上传时间:2019-06-22
  • 文档格式:DOC
  • 文档大小:120KB
  • / 28 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、-DBA数据库管理员JAVA程序员架构师必看1、 如何查找和删除数据库中的重复数据法一: 用Group by语句 此查找很快的select count(num), max(name) from student 查找表中num列重复的,列出重复的记录数,并列出他的name属性group by numhaving count(num) ;1 按num分组后找出表中num列重复,即出现次数大于一次delete from student(上面Select的)这样的话就把所有重复的都删除了。慎重法二:当表比较大(例如10万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法:- 执行下面SQL语句后就可以显示所有DRAWING和DSNO相同且重复的记录SELECT * FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB D D相当于First,SecondWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);-

      2、 执行下面SQL语句后就可以刪除所有DRAWING和DSNO相同且重复的记录DELETE FROM EM5_PIPE_PREFABWHERE ROWID!=(SELECT MAX(ROWID) FROM EM5_PIPE_PREFAB DWHERE EM5_PIPE_PREFAB.DRAWING=D.DRAWING ANDEM5_PIPE_PREFAB.DSNO=D.DSNO);2、说一下数据表设计要遵守的三范式是什么?除了这些你觉得数据表的设计还要注意哪些规则?1、无重复列,实际上就是一个表中一个列不允许有多值属性、复合属性或者嵌套的表,即列的值域必须是原子值,表必须有主键。2、属性完全依赖于主键消除部分子函数依赖。第二范式其实是在第一范式上的扩展,所以第二范式必须符合第一范式,表中列不存在部分函数依赖。3、属性不依赖于其它非主属性消除传递依赖。第三范式是在第二范式的基础上进行的扩展,所以必须符合第二范式且表中不存在传递依赖。数据量大的情况下如:百万级数据肯定不能按第三范式来了,必须适当增加冗余数据,减少查询的关联次数,当然做好索引是大前提。还可以考虑使用分区表。还不行的话那就换个牛

      3、叉点的database。3、写一个SQL存储过程,建立一个表USER 字段是姓名,年龄,职位,权限,然后向里面插入6条数据,然后查询出年龄大于18的所有信息。Create table user(Name varchar(20),Age int,Position varchar(20)Quanxian varchar(20)Insert into user values(111,11,11111,1111111)Insert into user values(112,12,11112,1111112)Insert into user values(113,13,11113,1111113)Insert into user values(114,14,11114,1111114)Insert into user values(115,15,11115,1111115)Insert into user values(116,16,11116,1111116)Create procedure selectUserAsSelect * from user where age 184、1. 你对哪

      4、种数据库最熟悉?使用该数据库多少年?简单描述对该数据库的理解.答:SQL,适合中小型企业使用2. 对其它较熟悉的商业数据库的了解及使用年限.3. 如何将数据库(实例)备份和还原?(针对自己最熟悉的)答:SQL,在企业管理器上右点要备份或还原的数据,从所有任务选择备份或还原。4. 如何知道一个表或视图的结构?答:查询系统表sysobjects5. 描述INNER JOIN的功能和已在何种情况下使用INNER JOIN.答:内联接是用比较运算符比较要联接列的值的联接,连接的2个表都要满足、5、存储过程和SQL语句的优缺点存储过程的优缺点:优点:1.由于应用程序随着时间推移会不断更改,增删功能,TSQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了一个替换位置。2.执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划 实际上是 Microsoft SQL Server为在存储过程中获取由 T-SQL 指定的结果而必须采取的步骤的记录。)缓存改善性能。.但sql server新版本,执行计划已针对所有 T-SQL 批处理进行了缓存,而不管它们是否在存储过程中,所

      5、以没比较优势了。3.存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。4.使用存储过程使您能够增强对执行计划的重复使用,由此可以通过使用远程过程调用 (RPC) 处理服务器上的存储过程而提高性能。RPC 封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划,并只需插入更新的参数值。5.可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。6.代码精简一致,一个存储过程可以用于应用程序代码的不同位置。7.更好的版本控制,通过使用 Microsoft Visual SourceSafe 或某个其他源代码控制工具,您可以轻松地恢复到或引用旧版本的存储过程。8.增强安全性:a、通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;b、提高代码安全,防止 SQL注入(但未彻底解决,例如,将数据操作语言DML,附加到输入参数);c、SqlParameter 类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型(但也不是万无一失,还是应该传递至数据

      6、库前得到附加验证)。缺点:1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。2.可移植性差由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于 RDBMS 的中间层中可能是一个更佳的选择。Sql语句灵活,可移植性强,查询速度比存储过程慢些6、为数据库创建索引都需要注意些什么?1. 索引能提高速度的关键就是索引所占的空间要比表小得多2. 注意索引的大小,有一些表可以建成索引组织表3. 索引的列不要太多,要选择一些selective比较低的列建B-tree索引,选择selective高的列建bitmap索引(在更新比较多的表不不要建bitmap索引)4. 将selective较低的列放在前面5. 在更新不多的表上建索引时,可以考虑用compress选择,以节约索引的空间7、一组SQL相关操作面试题1. 在表A中有数据ID MO1 Y2 N

      7、请用一个SELECT 语句写出,如果MO的值为“Y”,返回“YES”,为N返回“NO”效果如下:ID MO1 YES2 NOSELECT ID,MO=CASEWHEN MO=Y THEN YESWHEN MO=N THEN NOENDFROM Az2. 在表A中查询出自动增长列中31到40之间的数据(注意可能不是连续的)select * from A where id between 31 and 403. 有一个表table中有一个自动增长字段ID,如果在存储过程中向这个表插入一条记录后,如何获得新记录的ID.(写出获取新记录ID的函数即可)CREATE FUNCTION c_currentId()RETURNS intASBEGINdeclare lastId intselect lastId=max(cid) from cRETURN (lastId)ENDselect tempdb.dbo.c_currentId() as 当前C表中最新的编号4. having的用法, 是用来做什么的 having用来对group by 分组后的记录进行过滤。5. sql中的什么函数可以转换为

      8、时间 select convert(datetime,2000/01/01) select cast(2001/02/02 as datetime)6. 查询数据放入一张临时表 select * into #A from Test select * from #A8、如何使用SQL进行模糊查询LIKE条件一般用在指定搜索某字段的时候, 通过”% _” 通配符的作用实现模糊查找功能,通配符可以在前面也可以在后面或前后都有。搜索以mian开头:SELECT * FROM teble WHERE title LIKE mian% 搜索以mian结束:SELECT * FROM teble WHERE title LIKE %mian 搜索包含mian:SELECT * FROM teble WHERE title LIKE %mian%注释:%表示0个或多个字符构成的字符串_表示单个字符 9、说一下mysql, oracle等常见数据库的分页实现方案?1.Oracle:select * from ( select row_.*, rownum rownum_ from ( query_SQL

      9、 ) row_ where rownum = min2.SQL Server:select top pagesize * from tablename where id not in (select top pagesize*(page-1) id from tablename order by id) order by id3.MySQLselect * from tablename limit position, counter4.DB2select * from (select *,rownumber() as ROW_NEXT from tablename) where ROW_NEXT between min and max1.分页方案一:(利用Not In和SELECT TOP分页)效率次之语句形式:SELECT TOP 10 * FROM TestTableWHERE(ID NOT IN (SELECT TOP 20 id FROM TestTable ORDERBY id) ORDERBYIDSELECT TOP 页大小 * FROM TestTableWHERE( ID NOT IN(SELECT TOP 每页大小-1

      《数据库方面面试题DBA数据库管理员JAVA程序员架构师必看》由会员206****923分享,可在线阅读,更多相关《数据库方面面试题DBA数据库管理员JAVA程序员架构师必看》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.