3-面试题汇总-数据库相关

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

北京星模实训学校培养IT界的明星模特北京市海淀区清河清景园3号楼1单元9层邮编:100085电话:010-819983565271792352717924面试题汇总——数据库相关1、写出三种以上MySQL数据库存储引擎的名称(提示:不区分大小写)2、说出你所知道的三种以上开源数据库的名称(提示:想想目前国外流行的开源数据库)3、MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?4、说出MySQL4.0和MySQL4.1版本的最主要的两个区别。如果你使用过MySQL5,请说说MySQL5跟MySQL4的主要区别。(后半题选作)5、MySQL数据库基本的三个优化法则是什么?(提示:从服务配置、应用、开发角度考虑)6、优化MYSQL数据库的方法。(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read&write,从服务器readonly,或者N台服务器,各机器互为Master(3).(1)和(2)超越PHPProgrammer的要求了,会更好,不会没关系.检查有没有少加索引(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的GroupBy和orderby,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,selectcount(*)...wherearticle_id=?就可以了,不要先select*...wherearticle_id=?然后msql_num_rows.只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就update...settitle=?wherearticle_id=?不要setcontent=?(大文本)(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度.7、谈谈事务处理如同是个编程语言都会有答应HelloWorld的例子一样,是本数据库的教材都会讲A给B的账户转账50美元的例子,回答这个就好了.不过据我所知,用MySQL的企业,很少用MySQL来实现事务处理.何况现在Oracle收购了InnoDB的公司.答:事务就是一系列的操作,这些操作完成一项任务。只要这些操作里有一个操作没有成功,事务就操作失败,发生回滚事件。即撤消前面的操作,这样可以保证数据的一致性。而且可以把操作暂时放在缓存里,等所有操作都成功有提交数据库,这样保证费时的操作都是有效操作。北京星模实训学校培养IT界的明星模特北京市海淀区清河清景园3号楼1单元9层邮编:100085电话:010-819983565271792352717924、某内容管理系统中,表message有如下字段id文章idtitle文章标题content文章内容category_id文章分类idhits点击量创建上表,写出MySQL语句9、同样上述内容管理系统:表comment记录用户回复内容,字段如下comment_id回复idid文章id,关联message表中的idcomment_content回复内容现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面文章id文章标题点击量回复数量用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为010、上述内容管理系统,表category保存分类信息,字段如下category_idint(4)notnullauto_increment;categroy_namevarchar(40)notnull;用户输入文章时,通过选择下拉菜单选定文章分类写出如何实现这个下拉菜单11、数据库设计题:请设计一套图书馆借书管理系统的数据库表结构;可以记录基本的用户信息、图书信息、借还书信息;数据表的个数不超过6个;请画表格描述表结构(需要说明每个字段的字段名、字段类型、字段含义描述);在数据库设计中应:a.保证每个用户的唯一性;b.保证每种图书的唯一性;每种图书对应不等本数的多本图书;保证每本图书的唯一性;c.借书信息表中,应同时考虑借书行为与还书行为,考虑借书期限;d.保证借书信息表与用户表、图书信息表之间的参照完整性;e.限制每个用户最大可借书的本数f.若有新用户注册或新书入库,保证自动生成其唯一性标识g.为以下的一系列报表需求提供支持:(无特定说明,不需编写实现语句,而需在数据库设计中,保证这些报表可以用最多一条SQL语句实现)北京星模实训学校培养IT界的明星模特北京市海淀区清河清景园3号楼1单元9层邮编:100085电话:010-819983565271792352717924)日统计报表:当日借书本数、当日还书本数报表;b)实时报表:i.当前每种书的借出本数、可借本数;ii.当前系统中所有超期图书、用户的列表及其超期天数iii.当前系统中所有用户借书的本数,分用户列出(包括没有借书行为的用户);请编写实现此需求的SQL语句:数据库应用:请撰写一系列的SQL语句,分别描述完整的借书行为与还书行为;并保证这一系列的SQL语句的执行完整性下题是测验能力之最重要测试,如不能完成我们将无法给出评判结果!所以请写出详细的回答,并保证答案是可以执行的程序。在两日内将结果通过电子邮件寄到hr@88keke.com邮箱结合第二题中你的设计,用一种数据库实现,要求使用三层结构或者多层结构,要求采用面向对象的思想进行编程,有可能的话,设计一套模板机制来实现之。功能:列出当前借出图书的情况,按日期排列编号用户姓名书名书的编号借出日期1.张进大染坊125765872004-9-12.刘兴西游记321310982004-9-2……12、SQL中LEFTJOIN的含义是(16)。如果tbl_user记录了学生的姓名(name)和学号(ID),tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句(17)。自然左外连接selectname,count(score)assum_scorefromtbl_userleftjointbl_scoreontbl_user.ID=tbl_score.IDgroupbytbl_user.IDcreatedatabasephpinterview;usephpinterviewcreatetabletbl_user(IDintnotnull,namevarchar(50)notnull,primarykey(ID));北京星模实训学校培养IT界的明星模特北京市海淀区清河清景园3号楼1单元9层邮编:100085电话:010-819983565271792352717924(IDintnotnull,scoredec(6,2)notnull,subjectvarchar(20)notnull);insertintotbl_user(ID,name)values(1,'beimu');insertintotbl_user(ID,name)values(2,'aihui');insertintotbl_score(ID,score,subject)values(1,90,'语文');insertintotbl_score(ID,score,subject)values(1,80,'数学');insertintotbl_score(ID,score,subject)values(2,86,'数学');insertintotbl_score(ID,score,subject)values(2,96,'语文');selectA.id,sum(B.score)assumscorefromtbl_userAleftjointbl_scoreBonA.ID=B.IDgroupbyA.id13、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)14、防止SQL注射漏洞一般用_____函数。15、查询在线人数,并能处理异常掉线的SQL....WHERE________16、MYSQL取得当前时间的函数是?,格式化日期的函数是17、写出SQL语句的格式:插入,更新,删除(4分)表名UserNameTelContentDate张三13333663366大专毕业2006-10-11张三13612312331本科毕业2006-10-15张四021-55665566中专毕业2006-10-15(a)有一新记录(小王13254748547高中毕业2007-05-06)请用SQL语句新增至表中(b)请用sql语句把张三的时间更新成为当前系统时间(c)请写出删除名为张四的全部记录18、请写出数据类型(intcharvarchardatetimetext)的意思;请问varchar和char有什么区别19、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段20、取得查询结果集总数的函数是?北京星模实训学校培养IT界的明星模特北京市海淀区清河清景园3号楼1单元9层邮编:100085电话:010-819983565271792352717924、以下请用PHPMYADMIN完成(一)创建新闻发布系统,表名为message有如下字段(3分)id文章idtitle文章标题content文章内容category_id文章分类idhits点击量(二)同样上述新闻发布系统:表comment记录用户回复内容,字段如下(4分)comment_id回复idid文章id,关联message表中的idcomment_content回复内容现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面文章id文章标题点击量回复数量用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0(三)上述内容管理系统,表category保存分类信息,字段如下(3分)category_idint(4)notnullauto_increment;categroy_namevarchar(40)notnull;用户输入文章时,通过选择下拉菜单选定文章分类写出如何实现这个下拉菜单22、请简述数据库设计的范式及应用。一般第3范式就足以,用于表结构的优化,这样做既可以避免应用程序过于复杂同时也避免了SQL语句过于庞大所造成系统效率低下。23、一个表中的Id有多个记录,把所有这个id的记录查出来,并显示共有多少条记录数,用SQL语句及视图、存储过程分别实现。以下为引用的内容:DELIMITER//CREATEPROCEDUREProcGet(INID_aINT(11))BEGINDECLAREEXITHANDLERFORSQLEXCEPTIONBEGINEND;SELECTCOUNT(*)ASSumFROMNewsWhereID=ID_a;北京星模实训学校培养IT界的明星模特北京市海淀区清河清景园3号楼1单元9层邮编:100085电话:010-819983565271792352717924

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功