资源描述:
《数据库方面面试题-DBA数据库管理员JAVA程序员架构师必看.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、-DBA数据库管理员JAVA程序员架构师必看1、如何查找和删除数据库中的重复数据法一:用Groupby语句此查找很快的selectcount(num),max(name)fromstudent–查找表中num列重复的,列出重复的记录数,并列出他的name属性groupbynumhavingcount(num)>;1–按num分组后找出表中num列重复,即出现次数大于一次deletefromstudent(上面Select的)这样的话就把所有重复的都删除了。—–慎重法二:当表比较大(例如10万条以上)时,这个方法的效率之差令人无法忍受,需要另想办法:—-执
2、行下面SQL语句后就可以显示所有DRAWING和DSNO相同且重复的记录SELECT*FROMEM5_PIPE_PREFABWHEREROWID!=(SELECTMAX(ROWID)FROMEM5_PIPE_PREFABD–D相当于First,SecondWHEREEM5_PIPE_PREFAB.DRAWING=D.DRAWINGANDEM5_PIPE_PREFAB.DSNO=D.DSNO);—-执行下面SQL语句后就可以刪除所有DRAWING和DSNO相同且重复的记录DELETEFROMEM5_PIPE_PREFABWHEREROWID!=(SELEC
3、TMAX(ROWID)FROMEM5_PIPE_PREFABDWHEREEM5_PIPE_PREFAB.DRAWING=D.DRAWINGANDEM5_PIPE_PREFAB.DSNO=D.DSNO);2、说一下数据表设计要遵守的三范式是什么?除了这些你觉得数据表的设计还要注意哪些规则?1、无重复列,实际上就是一个表中一个列不允许有多值属性、复合属性或者嵌套的表,即列的值域必须是原子值,表必须有主键。2、属性完全依赖于主键[消除部分子函数依赖]。第二范式其实是在第一范式上的扩展,所以第二范式必须符合第一范式,表中列不存在部分函数依赖。3、属性不依赖于其它
4、非主属性[消除传递依赖]。第三范式是在第二范式的基础上进行的扩展,所以必须符合第二范式且表中不存在传递依赖。数据量大的情况下如:百万级数据肯定不能按第三范式来了,必须适当增加冗余数据,减少查询的关联次数,当然做好索引是大前提。还可以考虑使用分区表。还不行的话那就换个牛叉点的database。3、写一个SQL存储过程,建立一个表USER字段是姓名,年龄,职位,权限,然后向里面插入6条数据,然后查询出年龄大于18的所有信息。Createtableuser(Namevarchar(20),Ageint,Positionvarchar(20)Quanxianva
5、rchar(20))Insertintouservalues(‘111’,11,’11111’,’’)Insertintouservalues(‘112’,12,’11112’,’’)Insertintouservalues(‘113’,13,’11113’,’’)Insertintouservalues(‘114’,14,’11114’,’’)Insertintouservalues(‘115’,15,’11115’,’’)Insertintouservalues(‘116’,16,’11116’,’’)CreateprocedureselectUse
6、rAsSelect*fromuserwhereage>184、1. 你对哪种数据库最熟悉?使用该数据库多少年?简单描述对该数据库的理解.答:SQL,适合中小型企业使用2. 对其它较熟悉的商业数据库的了解及使用年限.3. 如何将数据库(实例)备份和还原?(针对自己最熟悉的)答:SQL,在企业管理器上右点要备份或还原的数据,从所有任务选择备份或还原。4. 如何知道一个表或视图的结构?答:查询系统表sysobjects5. 描述INNERJOIN的功能和已在何种情况下使用INNERJOIN.答:内联接是用比较运算符比较要联接列的值的联接,连
7、接的2个表都要满足、5、存储过程和SQL语句的优缺点存储过程的优缺点:优点:1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了一个替换位置。2.执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划--实际上是MicrosoftSQLServer为在存储过程中获取由T-SQL指定的结果而必须采取的步骤的记录。)缓存改善性能。……..但sqlserver新版本,执行计划已针对所有T-SQL批处理进行了缓存,而不管它们是否在存储过程中,所以没比较优势了。3.存储过程可以用于
8、降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代