版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年mysql数据库二级考试试题及答案第一部分单项选择题(共20题,每题1分,共20分)1.MySQL8.0版本默认的存储引擎是()A.MyISAMB.InnoDBC.MemoryD.CSV2.下列MySQL数据类型中,属于可变长度字符串类型的是()A.CHAR(10)B.VARCHAR(10)C.INTD.DATE3.下列约束中,能够同时保证字段值非空且唯一的是()A.UNIQUEB.NOTNULLC.PRIMARYKEYD.CHECK4.下列SQL语句中,属于数据定义语言(DDL)范畴的是()A.INSERTB.UPDATEC.SELECTD.ALTER5.若要查询student表中所有姓“李”的学生信息,WHERE子句应写为()A.s_nameLIKE'李%'B.s_nameLIKE'李_'C.s_name='李%'D.s_name='李_'6.下列聚合函数中,能够统计表中总记录行数的是()A.SUM()B.COUNT(*)C.AVG()D.MAX()7.若要对GROUPBY分组后的结果进行筛选,应当使用的关键字是()A.WHEREB.HAVINGC.DISTINCTD.ORDERBY8.下列关于外键约束的描述中,错误的是()A.外键列和参照列的数据类型必须完全一致B.外键列必须参照主键或者唯一约束列C.外键约束只能在单表内设置D.外键约束可以保证参照完整性9.事务ACID特性中,隔离性指的是()A.事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态B.事务一旦提交,对数据库的修改就是永久性的C.一个事务的执行不能被其他事务干扰D.事务中包含的所有操作要么全部执行,要么全部不执行10.InnoDB存储引擎默认的索引底层数据结构是()A.B树B.B+树C.哈希表D.跳表11.MyISAM存储引擎不支持下列哪项特性()A.全文索引B.表级锁C.事务D.压缩存储12.下列关于MySQL视图的描述中,错误的是()A.视图是一张虚拟表,本身不存储实际数据B.视图可以基于多张基表创建C.视图创建后不能修改结构D.视图可以限制用户访问数据的范围,提高安全性13.下列哪种操作不能作为触发器的触发事件()A.INSERTB.UPDATEC.DELETED.SELECT14.若执行SELECT*FROMuserLEFTJOIN`order`ONuser.id=`order`.user_id,下列描述正确的是()A.仅返回两张表完全匹配的记录B.返回`order`表所有记录,user表匹配的字段显示,不匹配显示NULLC.返回user表所有记录,`order`表匹配的字段显示,不匹配显示NULLD.返回两张表的所有记录,不管是否匹配15.MySQL8.0新增的窗口函数中,若要实现排名,相同分数排名相同且后续排名不产生空位,应当使用()A.RANK()B.DENSE_RANK()C.ROW_NUMBER()D.NTILE()16.MySQL8.0支持原子DDL操作的前提条件是()A.使用InnoDB存储引擎B.开启事务C.关闭自动提交D.使用MyISAM存储引擎17.下列工具中,属于MySQL逻辑备份工具的是()A.xtrabackupB.mysqldumpC.cp命令D.磁盘快照18.下列创建MySQL用户的语句中,语法正确的是()A.CREATEUSER'test'@'%'IDENTIFIEDBY'123456';B.CREATEUSERtest@%PASSWORD'123456';C.NEWUSER'test'@'%'IDENTIFIEDBY'123456';D.NEWUSERtest@%PASSWORD'123456';19.InnoDB存储引擎的行锁是通过锁住什么实现的()A.表结构B.数据行C.索引项D.数据库文件20.使用EXPLAIN分析SQL执行计划时,type列的下列取值中,查询性能最优的是()A.ALLB.rangeC.refD.const第二部分多项选择题(共10题,每题2分,共20分,多选、少选、错选均不得分)1.下列属于MySQL支持的约束类型的有()A.PRIMARYKEYB.FOREIGNKEYC.UNIQUED.CHECK2.下列SQL语句中,属于DDL操作的有()A.CREATETABLEB.ALTERTABLEC.DROPDATABASED.TRUNCATETABLE3.下列属于InnoDB支持的事务隔离级别的有()A.READUNCOMMITTEDB.READCOMMITTEDC.REPEATABLEREADD.SERIALIZABLE4.下列关于MySQL索引的描述中,正确的有()A.索引可以加快查询效率,但会降低增删改的效率B.唯一索引的列值不允许重复,也不允许为NULLC.联合索引遵循最左匹配原则D.索引越多,数据库查询性能越好5.下列关于InnoDB和MyISAM存储引擎的描述中,正确的有()A.InnoDB支持行级锁,MyISAM仅支持表级锁B.InnoDB支持外键约束,MyISAM不支持C.InnoDB支持事务,MyISAM不支持D.MyISAM的查询性能一定优于InnoDB6.下列关于视图的作用描述正确的有()A.简化复杂SQL查询的编写B.屏蔽基表的结构细节,提高数据安全性C.可以实现逻辑上的数据分块,不同用户访问不同范围的数据D.视图可以独立于基表存在,基表删除后视图仍然可用7.下列属于MySQL8.0版本新增特性的有()A.窗口函数B.原子DDLC.默认字符集为utf8mb4D.角色管理功能8.下列属于MySQLSQL注入防护手段的有()A.使用参数化查询/预编译SQLB.过滤用户输入的特殊字符C.数据库用户遵循最小权限原则D.关闭数据库的外网访问权限9.下列关于MySQL锁机制的描述中,正确的有()A.MyISAM存储引擎仅支持表级锁B.InnoDB存储引擎同时支持表级锁和行级锁C.InnoDB的行锁不会产生死锁D.行锁的粒度比表锁小,并发性能更高10.下列属于MySQL数据库优化手段的有()A.合理创建索引,避免冗余索引B.优化SQL语句,避免全表扫描C.采用读写分离架构分散读压力D.对数据量过大的单表进行分库分表第三部分判断题(共10题,每题1分,共10分,正确填√,错误填×)1.CHAR类型的存储长度是固定的,VARCHAR类型的存储长度是可变的。()2.COUNT(列名)统计行数时会包含该列值为NULL的记录。()3.MySQLInnoDB默认的事务隔离级别是READCOMMITTED。()4.联合索引(a,b,c)中,仅使用b作为查询条件时也可以触发索引。()5.触发器可以设置为在INSERT、UPDATE、DELETE操作执行前或执行后触发。()6.存储过程可以定义输入参数、输出参数,也可以有返回值。()7.MySQL8.0之前的版本支持原子DDL操作,DDL语句可以回滚。()8.外键约束会校验参照完整性,因此会降低数据增删改的执行效率。()9.所有场景下,走索引的查询性能都优于全表扫描。()10.使用DELETEFROMtable_name清空表数据时,操作可以回滚。()第四部分简答题(共4题,每题5分,共20分)1.简述InnoDB和MyISAM存储引擎的核心区别(至少列出5点)。2.分别解释脏读、不可重复读、幻读的含义,并说明各问题可以通过哪种事务隔离级别解决。3.什么是索引覆盖?使用索引覆盖有什么优势?4.简述MySQL主从复制的核心原理和主要作用。第五部分实操题(共3题,每题10分,共30分)现有3张表,表结构如下:学生表student:字段名类型约束说明s_idINT主键学生IDs_nameVARCHAR(50)非空学生姓名s_ageINT无学生年龄s_deptVARCHAR(30)无所属院系s_enroll_dateDATE无入学日期字段名类型约束说明c_idINT主键课程IDc_nameVARCHAR(50)非空课程名称c_creditINT无课程学分字段名类型约束说明s_idINT联合主键,外键参照student.s_id学生IDc_idINT联合主键,外键参照course.c_id课程IDscoreINT无考试成绩1.编写SQL语句完成以下3项查询需求:(1)查询计算机系年龄大于20岁的学生姓名和年龄;(2)查询所有学生的选课情况,包括未选课的学生,显示字段为学生姓名、课程名、成绩;(3)查询每门课程的平均成绩,按平均成绩降序排序,仅显示平均成绩≥60分的课程名和平均成绩。2.编写SQL语句完成以下3项操作:(1)为student表的s_name字段创建普通索引,索引名为idx_s_name;(2)创建视图v_student_score,要求仅显示计算机系学生的姓名、所选课程名、成绩,屏蔽其他院系学生的成绩数据;(3)创建存储过程proc_add_score,输入参数为p_s_id(学生ID)、p_c_id(课程ID)、p_score(成绩),实现功能:若该学生该课程已有成绩则更新成绩为p_score,若没有则新增成绩记录。3.现有一条查询SQL执行效率极低:SELECTs.s_name,sc.scoreFROMstudentsINNERJOINscONs.s_id=sc.s_idWHEREs.s_dept='计算机系'ANDsc.score>90;经EXPLAIN分析显示,type列为ALL,key列为NULL,扫描行数为120000。请分析该SQL执行慢的原因,并给出具体优化方案。参考答案第一部分单项选择题答案及解析1.答案:B。解析:MySQL5.5之后版本默认存储引擎为InnoDB,8.0延续该配置,InnoDB支持事务、行锁、外键等特性,适合大部分业务场景。2.答案:B。解析:CHAR为固定长度字符串,存储时不足指定长度会补空格;VARCHAR为可变长度字符串,按实际存储内容占用空间;INT为整数类型,DATE为日期类型。3.答案:C。解析:PRIMARYKEY主键约束等价于UNIQUE+NOTNULL,可保证字段值唯一且非空;UNIQUE仅保证唯一,允许NULL值;NOTNULL仅保证非空;CHECK用于自定义字段值校验规则。4.答案:D。解析:DDL(数据定义语言)用于定义数据库对象结构,包括CREATE、ALTER、DROP等;INSERT、UPDATE属于DML(数据操作语言);SELECT属于DQL(数据查询语言)。5.答案:A。解析:LIKE用于模糊查询,%匹配任意长度任意字符,_匹配单个任意字符;查询姓“李”的学生,姓名第一个字符为“李”,后续任意长度,因此用'李%'。6.答案:B。解析:COUNT(*)统计表中所有记录行数,包括NULL值记录;SUM()求和,AVG()求平均值,MAX()求最大值。7.答案:B。解析:WHERE用于过滤行级数据,执行顺序在GROUPBY之前;HAVING用于过滤GROUPBY分组后的聚合结果;DISTINCT用于去重;ORDERBY用于排序。8.答案:C。解析:外键约束用于关联两张表的字段,外键列设置在子表,参照父表的主键或唯一约束列,可保证参照完整性,因此外键是跨表设置的,不是单表内的约束。9.答案:C。解析:A是一致性的定义,B是持久性的定义,C是隔离性的定义,D是原子性的定义。10.答案:B。解析:InnoDB默认采用B+树作为索引底层结构,B+树的叶子节点为有序链表,适合范围查询、排序等操作,磁盘IO效率优于B树。11.答案:C。解析:MyISAM支持全文索引、表级锁、压缩存储,但不支持事务、行锁、外键,适合读多写少的场景。12.答案:C。解析:视图创建后可以通过ALTERVIEW语句修改结构;视图是虚拟表,数据来源于基表,本身不存储数据,可基于多张基表创建,可通过视图限制用户访问的字段和行范围,提高安全性。13.答案:D。解析:触发器的触发事件仅包括INSERT、UPDATE、DELETE三类,SELECT操作不会触发触发器。14.答案:C。解析:LEFTJOIN(左连接)以左表为基础,返回左表所有记录,右表匹配的字段显示,不匹配的字段显示为NULL;本题左表为user,因此返回所有user记录,order表匹配的显示,不匹配显示NULL。15.答案:B。解析:RANK()相同分数排名相同,后续排名产生空位;DENSE_RANK()相同分数排名相同,后续排名不产生空位;ROW_NUMBER()为每行生成唯一连续排名,相同分数排名不同;NTILE()将数据分成指定数量的桶,分配桶编号。16.答案:A。解析:MySQL8.0仅支持InnoDB存储引擎的原子DDL操作,DDL语句要么执行成功,要么失败回滚,不会出现之前版本DDL执行一半损坏数据的问题。17.答案:B。解析:mysqldump是逻辑备份工具,导出为SQL语句文本;xtrabackup是物理备份工具,cp命令、磁盘快照属于物理备份手段。18.答案:A。解析:MySQL创建用户的标准语法为CREATEUSER'用户名'@'访问主机'IDENTIFIEDBY'密码';用户名和主机名需要用引号包裹,使用IDENTIFIEDBY指定密码。19.答案:C。解析:InnoDB的行锁是通过锁住索引项实现的,如果查询没有用到索引,会升级为表锁。20.答案:D。解析:EXPLAIN的type列性能从优到劣排序为:const>eq_ref>ref>range>index>ALL,const表示通过索引一次就找到匹配记录,常用于主键或唯一索引的等值查询。第二部分多项选择题答案及解析1.答案:ABCD。解析:MySQL8.0.16及之后版本正式支持CHECK约束,之前版本语法支持但不校验,目前二级考试默认以8.0版本为准,因此4种约束都属于支持的类型。2.答案:ABCD。解析:DDL包括所有操作数据库、表、索引等对象结构的语句,CREATE、ALTER、DROP、TRUNCATE都属于DDL范畴。3.答案:ABCD。解析:InnoDB支持SQL标准定义的4种事务隔离级别,默认是REPEATABLEREAD(可重复读)。4.答案:AC。解析:B选项错误,唯一索引允许存在多个NULL值,主键约束才要求非空且唯一;D选项错误,过多的索引会增加增删改的开销,也会增加优化器的选择成本,并非越多越好。5.答案:ABC。解析:D选项错误,InnoDB在大部分场景下的查询性能优于MyISAM,尤其是并发读写场景,MyISAM的表锁会导致大量写阻塞。6.答案:ABC。解析:D选项错误,视图依赖于基表存在,基表删除后视图无法正常使用。7.答案:ABCD。解析:4项都是MySQL8.0的新增特性,窗口函数用于实现复杂的分析查询,原子DDL保证DDL操作的一致性,默认字符集改为utf8mb4支持全量Unicode字符,角色管理方便批量权限配置。8.答案:ABCD。解析:4项都是SQL注入的有效防护手段,参数化查询从根本上避免SQL注入,过滤特殊字符可降低注入风险,最小权限和关闭外网访问可减少注入后的危害范围。9.答案:ABD。解析:C选项错误,InnoDB的行锁会产生死锁,因此需要合理设计业务逻辑,避免死锁产生。10.答案:ABCD。解析:4项都是常用的MySQL优化手段,索引优化和SQL优化是基础优化手段,读写分离和分库分表是高并发大数据场景下的架构优化手段。第三部分判断题答案及解析1.答案:√。解析:CHAR类型固定占用定义的长度,VARCHAR按实际存储内容占用空间,额外占用1-2字节存储内容长度。2.答案:×。解析:COUNT(列名)统计时会忽略该列值为NULL的记录,仅统计非NULL的行数。3.答案:×。解析:InnoDB默认的事务隔离级别是REPEATABLEREAD(可重复读),不是读已提交。4.答案:×。解析:联合索引遵循最左匹配原则,必须从最左侧的列开始使用,仅使用b无法触发该联合索引。5.答案:√。解析:触发器支持BEFOREINSERT/UPDATE/DELETE和AFTERINSERT/UPDATE/DELETE共6种触发时机。6.答案:√。解析:存储过程支持IN(输入)、OUT(输出)、INOUT(输入输出)三类参数,也可以通过RETURN返回值。7.答案:×。解析:MySQL8.0之前的版本不支持原子DDL,DDL语句执行过程中出错无法回滚,可能导致数据损坏。8.答案:√。解析:外键约束每次增删改都需要校验参照表的关联数据,因此会降低操作性能,高并发场景下很多业务会选择在应用层实现参照完整性,避免使用外键。9.答案:×。解析:当表数据量极小,或者查询需要返回表中大部分数据时,全表扫描的性能优于走索引,因为索引需要额外的IO读取索引树,再回表查询数据。10.答案:√。解析:DELETE是DML操作,默认开启事务的情况下可以回滚;TRUNCATE是DDL操作,无法回滚。第四部分简答题参考答案1.答:InnoDB和MyISAM的核心区别如下:(1)事务支持:InnoDB支持事务,MyISAM不支持;(2)锁机制:InnoDB支持行级锁和表级锁,MyISAM仅支持表级锁;(3)外键支持:InnoDB支持外键约束,MyISAM不支持;(4)索引结构:InnoDB采用聚簇索引,主键索引和数据存储在一起,MyISAM采用非聚簇索引,索引和数据分开存储;(5)崩溃恢复:InnoDB支持崩溃安全恢复,通过redolog和undolog保证数据一致性,MyISAM崩溃后容易损坏数据,恢复难度大;(6)并发性能:InnoDB行锁粒度小,并发读写性能高,MyISAM表锁在写并发高的场景下性能极差。(答出任意5点即可得满分)2.答:(1)脏读:一个事务读取到了另一个事务未提交的修改数据,若另一个事务回滚,读取到的数据就是无效的脏数据。脏读可以通过READCOMMITTED(读已提交)及以上隔离级别解决。(2)不可重复读:一个事务内多次查询同一行数据,中间有其他事务修改了该行数据并提交,导致多次查询结果不一致。不可重复读可以通过REPEATABLEREAD(可重复读)及以上隔离级别解决。(3)幻读:一个事务内多次按相同条件查询范围数据,中间有其他事务插入了符合条件的新数据并提交,导致多次查询返回的记录行数不一致。幻读可以通过SERIALIZABLE(串行化)隔离级别解决,InnoDB在可重复读级别下通过MVCC和间隙锁也可以解决大部分幻读问题。3.答:索引覆盖指的是查询需要的所有字段都包含在索引中,不需要回表查询数据行即可得到结果。优势包括:(1)减少IO操作:不需要回表读取数据页,减少磁盘IO次数,提高查询性能;(2)避免随机IO:索引是有序的,覆盖索引的读取是顺序IO,比回表的随机IO效率高;(3)降低缓冲池占用:不需要将数据页加载到缓冲池,节省内存空间,提高缓冲池命中率。4.答:主从复制核心原理:主库将数据修改操作记录到二进制日志(binlog),从库的IO线程读取主库的binlog并传输到从库的中继日志(relaylog),从库的SQL线程重放中继日志中的操作,实现从库数据和主库数据一致。主要作用:(1)读写分离:主库处理写请求,从库处理读请求,分散数据库压力,提高并发能力;(2)数据备份:从库作为备份节点,避免主库故障导致数据丢失;(3)故障转移:主库故障时可以快速切换从库为新主库,提高可用性;(4)数据分析:从库用于执行复杂的数据分析查询,避免影响主库的业务性能。第五部分实操题参考答案1.答案:(1)`SELECTs_name,s_ageFROMstudentWHEREs_dept='计算机系'ANDs_age>20;`(2)`SELECTs.s_name,c.c_name,sc.scoreFROMstudentsLEFTJOINscONs.s_id=sc.s_idLEFTJOINcoursecONsc.c_id=c.c_id;`解析:需要显示未选课的学生,因此采用左连接,以student表为左表,依次关联sc表和course表,未匹配的课程名和成绩显示为NULL。(3)`SELECTc.c_name,AVG(sc.score)ASavg_scoreFROMcoursecJOINscONc.c_id=sc.c_idGROUPBYc.c_id,c.c_nameHAVINGAVG(sc.score)>=60ORDERBYavg_scoreDESC;`解析:按课程分组,聚合计算平均成绩,使用HAVING过滤平均成绩≥60的分组,最后按平均成绩降序排序。2.答案
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预应力箱梁封端防水规范
- 2026年宁夏回族自治区中考化学试卷试题真题(含答案详解)
- 北京理工大附中分校2027届化学九上期末经典模拟试题含解析
- 山东省德州市陵城区江山实验学校2027届化学九年级第一学期期末教学质量检测试题含解析
- 贵州遵义市正安县2027届九上化学期末调研模拟试题含解析
- 降本增效实战:中小企业如何用「小预算」做好项目管理?-8年顾问拆解3个关键策略+真实案例
- 2026年医院护理部年终工作总结及2026年工作计划
- 天津市塘沽区名校2027届九上物理期末联考模拟试题含解析
- 市医院2026年工作总结及2026年工作计划
- 2027届浙江省绍兴市诸暨市暨阳初级中学化学九年级第一学期期中联考模拟试题含解析
- 2026年典型事故案例通报
- 2026重庆市璧山区应急管理局公开招聘5人笔试参考题库及答案详解
- 2026年秋新教材北师大版初中数学八年级第一学期教学计划及进度表
- 2026年天津滨海警务辅助人员招聘考试试卷-含答案解析
- 2026年高考湖北卷化学高考真题(含答案解析)
- 2026年贵州省遵义市辅警人员招聘考试真题(含完整答案解析)
- 2025年北京市石景山区社区工作者招聘考试试题及答案详解
- (2026年版)中国老年2型糖尿病防治临床指南课件
- 2026-2030全球少儿思维能力培养行业融资创新模式与投资契机研究研究报告版
- 加装电梯工程监理实施细则
- 10.《公共财政概论》第十章 公债
评论
0/150
提交评论