(2025年)mysql国开考试题及答案_第1页
(2025年)mysql国开考试题及答案_第2页
(2025年)mysql国开考试题及答案_第3页
(2025年)mysql国开考试题及答案_第4页
(2025年)mysql国开考试题及答案_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(2025年)mysql国开考试题及答案一、单项选择题(共20题,每题2分,共40分)1.2025年主流开源MySQL数据库所属的数据库管理系统类型是A.层次型B.网状型C.关系型D.键值对非关系型答案:C解析:MySQL是Oracle公司旗下完全开源的关系型数据库管理系统,采用二维表的形式存储结构化数据,完全符合关系模型的原子性、参照完整性等约束要求,是国内各级院校数据库课程的主流教学选型。2.MySQL服务默认监听的网络端口号是A.21B.3306C.8080D.5432答案:B解析:MySQL默认对外提供服务的TCP端口为3306,实际生产环境中为了规避恶意扫描攻击,管理员通常会将默认端口修改为非标准端口,同时配合防火墙规则限制访问来源。21是FTP默认端口,8080是常见Web服务代理端口,5432是PostgreSQL的默认端口。3.MySQL8.0版本中默认的存储引擎是A.MyISAMB.MEMORYC.InnoDBD.CSV答案:C解析:从MySQL5.5版本开始InnoDB就被设置为默认存储引擎,该引擎完整支持事务、行级锁、外键约束、崩溃自动恢复等特性,完全满足绝大多数业务场景的开发需求。MyISAM是早期版本的默认引擎,不支持事务和行级锁,仅适用于只读为主的低并发场景。4.数据库事务四大核心特性中的“A”即Atomic,指的是A.一致性B.原子性C.隔离性D.持久性答案:B解析:事务的ACID特性分别对应Atomic(原子性:事务操作要么全部成功要么全部失败回滚,不存在中间状态)、Consistency(一致性:事务执行前后数据库的完整性约束不被破坏)、Isolation(隔离性:多个并发事务之间操作互不干扰)、Durability(持久性:事务一旦提交,对数据的修改就永久保存到磁盘中不会丢失)。5.下列SQL语句中,属于数据定义语言(DDL)范畴的是A.SELECTB.INSERTC.ALTERD.COMMIT答案:C解析:数据定义语言DDL的核心作用是定义和修改数据库对象结构,核心命令包括CREATE、ALTER、DROP、TRUNCATE等;SELECT、INSERT属于数据操作语言DML,COMMIT属于事务控制语言TCL。6.在SELECT查询语句中,DISTINCT关键字的作用是A.对查询结果按指定字段排序B.去除查询结果集中的重复记录C.对查询结果进行分组聚合D.限制返回的记录行数答案:B解析:DISTINCT关键字需要放在查询字段的最前端,针对后续所有指定的字段组合进行去重操作,只有所有字段值完全相同的记录才会被判定为重复记录从结果集中剔除。7.在SQL模糊查询语法中,代表匹配任意长度任意字符的通配符是A._B.%C.*D.?答案:B解析:LIKE语法中%匹配0个或多个任意字符,_仅匹配1个任意字符,*和?不属于MySQLLIKE语句的合法通配符。8.下列关于外键约束的描述,错误的是A.外键字段的类型必须和关联的主键字段类型完全匹配B.外键约束可以实现两个表之间的参照完整性校验C.外键字段可以为空值D.建立外键约束之后,父表中被关联的记录可以直接被任意删除答案:D解析:建立外键关联之后,如果子表中存在关联的记录,父表对应的主键记录无法直接删除,必须先删除子表所有关联数据,或者预先设置外键的ONDELETE级联操作规则,否则会抛出参照完整性错误。9.要快速清空整个表的所有数据,且不会记录单行删除的日志,同时重置自增主键的计数,效率远高于逐行删除的命令是A.DELETEFROM表名B.DROPTABLE表名C.TRUNCATETABLE表名D.ALTERTABLE表名DROP字段答案:C解析:TRUNCATE属于DDL语句,直接删除表的原始数据文件并重新创建空表,清空速度极快,但无法针对单行数据设置删除条件,也无法通过ROLLBACK操作回滚已执行的清空操作;DELETE属于DML语句,逐行删除数据并写入事务日志,可回滚,适合带条件的精准删除场景;DROP语句会直接删除整个表的结构和数据,不符合清空数据保留表结构的需求。10.视图是数据库系统中常用的对象,其本质是A.物理存储在磁盘上的独立数据表B.预先存储的SELECT查询语句的映射结果集C.索引的另一种表现形式D.存储过程的简化版本答案:B解析:视图本身不存储任何实际数据,所有数据都来自视图定义中关联的底层基础表,每次查询视图时系统都会自动执行视图内部封装的SELECT语句生成对应的结果集,属于典型的虚表。11.针对MySQL索引的作用,下列描述中正确的是A.索引可以大幅降低数据查询的速度B.索引可以大幅提升数据增删改操作的速度C.索引可以大幅提升指定条件下的数据查询效率D.创建索引没有任何额外的存储空间开销答案:C解析:索引是优化MySQL查询性能的最核心手段,通过B+树等数据结构避免全表扫描,大幅降低等值查询、范围查询的IO消耗;但索引需要占用额外的磁盘存储空间,同时数据增删改时需要同步更新对应的索引结构,会降低写入操作的性能。12.执行事务操作时,要撤销上一步未提交的所有修改,回到事务开启前的状态,需要使用的命令是A.COMMITB.ROLLBACKC.SAVEPOINTD.STARTTRANSACTION答案:B解析:ROLLBACK是事务回滚命令,可以撤销所有未提交的修改;COMMIT是提交事务命令,将所有修改持久化到磁盘;SAVEPOINT用于设置事务内部的保存点,支持部分回滚到指定节点;STARTTRANSACTION是显式开启事务的命令。13.要给指定数据库用户授予所有表的查询权限,需要使用的核心SQL命令是A.GRANTB.REVOKEC.CREATEUSERD.SHOWGRANTS答案:A解析:GRANT命令用于给已有用户分配对应的数据库操作权限;REVOKE用于回收用户已经拥有的权限;CREATEUSER用于创建新的数据库用户;SHOWGRANTS用于查询指定用户当前拥有的权限清单。14.MySQL中用于返回当前系统日期+时间的函数是A.CURDATE()B.CURTIME()C.NOW()D.DATEDIFF()答案:C解析:CURDATE()仅返回当前系统的日期部分,格式为YYYY-MM-DD;CURTIME()仅返回当前系统的时间部分,格式为HH:MM:SS;NOW()同时返回日期和时间的完整组合;DATEDIFF()用于计算两个日期之间相差的天数。15.多表关联查询中,内连接(INNERJOIN)的默认匹配规则是A.只要左表存在的记录全部返回,右表没有匹配的字段自动填充NULLB.只要右表存在的记录全部返回,左表没有匹配的字段自动填充NULLC.仅返回两个关联表中完全满足关联条件的记录D.返回两个表的所有记录的笛卡尔积组合答案:C解析:内连接的核心逻辑是仅保留两个表中关联字段值完全相等的匹配记录,过滤掉所有不满足关联条件的记录;左外连接保留左表全部记录,右外连接保留右表全部记录,不加任何关联条件的多表查询才会返回笛卡尔积结果。16.要修改现有数据表的结构,比如新增字段、修改字段类型、删除约束,需要使用的SQL命令是A.MODIFYTABLEB.ALTERTABLEC.CHANGETABLED.UPDATETABLE答案:B解析:ALTERTABLE是MySQL提供的表结构修改专属命令,支持ADD新增字段、MODIFY修改字段属性、DROP删除字段/约束、CHANGE修改字段名等操作。17.MySQL官方提供的用于实现逻辑备份的命令行工具是A.mysqldumpB.mysqlimportC.mysqlbinlogD.mydumper答案:A解析:mysqldump是MySQL自带的官方逻辑备份工具,生成的备份文件是纯SQL格式的文本文件,跨平台兼容性极强,可以在任意版本的MySQL服务上直接导入恢复数据;mysqlimport是用于批量导入文本数据的工具,mysqlbinlog是用于解析二进制日志的工具,mydumper是第三方开源的高性能备份工具。18.MySQL8.0新增的窗口函数ROW_NUMBER()的核心作用是A.对分组内的记录生成连续不重复的排名序号B.对分组内的相同值生成相同的排名,后续序号跳号C.对分组内的相同值生成相同的排名,后续序号连续不跳号D.计算分组内的记录总数答案:A解析:ROW_NUMBER()会给分组内的每一条记录生成唯一的连续整数序号,即使排序字段的值完全相同也不会出现并列排名的情况;RANK()函数会出现并列排名跳号,DENSE_RANK()函数会出现并列排名但后续序号不跳号。19.下列关于MySQL字符集的描述,正确的是A.utf8和utf8mb4是完全等价的字符集,可以随意混用B.utf8mb4是MySQL的增强型UTF-8字符集,完整支持4字节的Unicode字符,包括emoji表情和生僻汉字C.字符集一旦设置完成就无法修改D.字符集排序规则对查询结果没有任何影响答案:B解析:MySQL原生的utf8字符集最多支持3字节的Unicode字符,无法存储emoji等4字节特殊字符,实际开发中推荐直接使用utf8mb4字符集规避乱码问题;字符集可以后期通过ALTER命令修改数据库、表、字段的对应配置,排序规则直接影响字符串的大小比较、排序顺序,比如大小写敏感和大小写不敏感的排序规则会返回完全不同的排序结果。20.在SELECT查询中,HAVING子句的作用是A.对查询结果的单行记录设置过滤条件B.对GROUPBY分组聚合之后的结果集设置过滤条件C.对查询结果进行排序D.限制查询返回的记录行数答案:B解析:HAVING子句专门用于过滤分组聚合之后的结果,支持直接对聚合函数的计算结果设置过滤条件,而WHERE子句是在分组聚合之前对原始表的单行记录做过滤,无法直接引用聚合函数。二、多项选择题(共10题,每题3分,共30分,多选、少选、错选均不得分)1.下列属于MySQL官方原生支持的存储引擎的有A.InnoDBB.MyISAMC.MEMORYD.MongoDB答案:ABC解析:MongoDB是独立的非关系型数据库产品,不属于MySQL内置的存储引擎,其余三个都是MySQL原生支持的存储引擎。2.下列属于数据操作语言(DML)的SQL命令有A.INSERTB.UPDATEC.DELETED.DROP答案:ABC解析:DROP属于DDL数据定义语言,用于删除数据库对象,不属于DML范畴。3.下列属于MySQL支持的完整性约束类型的有A.主键约束PRIMARYKEYB.唯一约束UNIQUEC.非空约束NOTNULLD.外键约束FOREIGNKEY答案:ABCD解析:以上四个选项都是MySQL最常用的四类完整性约束,分别实现实体完整性、字段唯一性、非空校验、参照完整性的校验规则。4.下列属于MySQL索引常见分类的有A.普通索引B.唯一索引C.主键索引D.全文索引答案:ABCD解析:MySQL支持的索引类型覆盖普通索引、唯一索引、主键索引、联合索引、全文索引、空间索引等多个品类,可根据不同的业务查询场景选择对应索引类型。5.MySQL事务的标准隔离级别包含以下哪几种A.读未提交(READUNCOMMITTED)B.读已提交(READCOMMITTED)C.可重复读(REPEATABLEREAD)D.串行化(SERIALIZABLE)答案:ABCD解析:SQL标准定义的四个隔离级别全部被MySQL支持,其中MySQLInnoDB引擎的默认隔离级别是可重复读(REPEATABLEREAD),可以规避幻读问题。6.下列属于MySQL视图的合法使用场景的有A.封装复杂多表关联查询,简化开发人员的SQL编写难度B.实现行级、列级的数据权限控制,屏蔽底层表的敏感字段C.实现数据的逻辑隔离,底层表结构调整之后仅需要修改视图定义,上层应用无需改动D.完全替代底层物理表,存储所有业务数据答案:ABC解析:视图是虚表不存储任何实际数据,无法替代物理表存储数据。7.下列属于MySQL常用聚合函数的有A.SUM()B.COUNT()C.AVG()D.MAX()答案:ABCD解析:以上四个都是最常用的聚合函数,分别实现求和、统计行数、求平均值、求最大值的功能。8.下列属于MySQL标准日志类型的有A.错误日志B.二进制日志(binlog)C.慢查询日志D.查询日志答案:ABCD解析:以上四类都是MySQL官方原生支持的日志类型,错误日志记录服务启动运行的报错信息,二进制日志记录所有数据修改操作,用于主从同步和数据恢复,慢查询日志记录执行时长超过指定阈值的SQL语句用于性能优化。9.下列关于SQL注入攻击的防范手段,有效的有A.全部使用预编译语句(PreparedStatement)执行SQL,禁止直接拼接用户输入的参数B.对所有用户输入的特殊字符做转义处理C.严格控制数据库用户的权限,禁止使用拥有最高权限root的账号运行业务代码D.关闭MySQL服务的对外端口,不设置任何防护规则答案:ABC解析:直接关闭对外端口虽然能物理阻断访问,但不属于常规业务场景下的合法防范手段,正常业务系统需要开放端口给业务服务器访问,通过权限控制和预编译实现防注入。10.下列关于InnoDB引擎行级锁的描述正确的有A.InnoDB的行级锁是加在索引对应的索引记录上,如果查询没有用到索引,行级锁会自动升级为表级锁B.InnoDB支持共享锁(S锁)和排他锁(X锁)两种行锁类型C.InnoDB的行级锁可以大幅降低多并发场景下的锁冲突概率,提升高并发写入性能D.InnoDB默认情况下所有DML操作都会自动给涉及的行加排他锁答案:ABCD解析:以上描述全部符合InnoDB行锁的官方特性,也是实际生产运维中非常重要的核心知识点。三、判断题(共15题,每题1分,共15分)1.在MySQL中,使用DELETE语句删除整个表的所有数据之后,该表的自增主键计数不会被重置。(正确)解析:DELETE逐行删除数据不会修改表的元数据信息,自增ID会在之前的最大值基础上继续累加,只有TRUNCATE操作会重置自增主键计数为初始值。2.MyISAM存储引擎支持事务和行级锁,可以用于支付类高并发场景。(错误)解析:MyISAM不支持事务,且仅支持表级锁,并发写入性能极低,完全无法适用于支付等对事务一致性要求极高的场景。3.主键约束不允许为空,也不允许出现重复值,一个数据表最多只能有一个主键。(正确)解析:主键的核心特性就是非空且唯一,一张表仅能定义一个主键,可以是单字段主键,也可以是多字段组成的联合主键。4.只要给数据表的所有字段都创建索引,就能100%提升所有SQL的查询性能。(错误)解析:过多的索引会大幅降低数据写入的性能,同时占用大量磁盘存储空间,不合理的索引甚至会导致优化器选择错误的执行计划,反而降低查询效率。5.视图在满足特定更新规则的前提下,支持直接通过UPDATE语句修改底层基础表的数据。(正确)解析:如果视图的定义中没有包含聚合、DISTINCT、GROUPBY、多表关联等逻辑,是可以直接对视图执行UPDATE/INSERT/DELETE操作,修改底层对应基础表的数据。6.事务的持久性特性,要求一旦事务提交成功,即使MySQL服务突然崩溃,已经提交的数据也不能丢失。(正确)解析:InnoDB引擎通过预写日志(redolog)机制实现崩溃自动恢复,服务重启之后会自动重做所有已经提交的事务操作,保证数据不会丢失。7.SELECT语句中可以不写FROM子句,直接调用系统函数比如SELECTNOW()查看当前时间。(正确)解析:MySQL支持无FROM子句的SELECT语法,专门用于计算常量、调用系统内置函数。8.外键约束使用之后完全没有任何副作用,所有生产环境的表必须全部建立外键。(错误)解析:外键约束会降低写入性能,高并发分布式业务场景下为了性能考虑,通常会在业务代码层面实现参照完整性,不在数据库层面建立外键约束。9.慢查询日志用于记录执行时间超过指定阈值的SQL语句,是MySQL性能优化的核心排查工具。(正确)解析:通过分析慢查询日志可以快速定位所有执行效率极低的SQL语句,针对性做索引优化,是DBA日常性能调优的必备工具。10.同一个MySQL服务下不同数据库之间的表完全无法跨库关联查询。(错误)解析:MySQL支持直接在SELECT语句中通过库名.表名的形式引用其他数据库的表,实现跨库关联查询操作。四、简答题(共3题,每题5分,共15分)1.简述InnoDB和MyISAM两个存储引擎的核心差异答:第一是事务支持差异,InnoDB完整支持ACID事务特性,MyISAM完全不支持事务;第二是锁粒度差异,InnoDB支持行级锁和表级锁,MyISAM仅支持表级锁,InnoDB并发写入性能远高于MyISAM;第三是外键支持差异,InnoDB原生支持外键约束,MyISAM不支持外键;第四是崩溃恢复能力差异,InnoDB支持崩溃自动恢复,数据安全性远高于MyISAM,MyISAM发生异常宕机之后很容易出现数据损坏;第五是查询统计差异,MyISAM内部单独存储了表的总行数,执行COUNT(*)统计全表行数不需要扫描全表,速度极快,InnoDB统计全表行数需要扫描索引,没有单独存储总行数。2.简述WHERE子句和HAVING子句的核心区别答:第一是执行时机不同,WHERE子句是在分组聚合之前对原始的单行数据做过滤,HAVING子句是在GROUPBY分组聚合完成之后,对聚合生成的结果集做过滤;第二是支持的过滤条件不同,WHERE子句不能直接引用聚合函数的计算结果,HAVING子句专门支持直接使用聚合函数作为过滤条件;第三是可使用的位置不同,WHERE子句必须写在GROUPBY子句之前,HAVING子句必须写在GROUPBY子句之后。3.简述日常MySQL运维中数据备份的核心操作规范答:第一是定期执行全量备份,使用mysqldump或者物理备份工具每天凌晨业务低峰期执行全量数据备份,备份文件要同步上传到独立的异地存储服务器,不能和数据库服务存放在同一个磁盘;第二是开启binlog二进制日志,设置合理的binlog保留时长,至少保留7天以上,保证出现误删数据的问题时可以通过全量备份+增量binlog恢复到任意时间点的数据;第三是定期做备份恢复演练,至少每个月执行一次备份文件的导入恢复测试,保证备份文件是可用的,避免出现备份文件损坏无法恢复的灾难性问题。五、综合实操题(场景背景:某高校学生成绩管理系统数据库stu_score,包含3张核心表:学生表student(sid学生学号,sname学生姓名,ssex性别,sbirth出生日期,sdept所属院系,sphone联系电话),课程表course(cid课程编号,cname课程名称,credit学分,teacher授课教师),成绩表sc(sid学生学号,cid课程编号,score考试成绩),请根据需求编写对应标准SQL代码)1.创建stu_score数据库,设置默认字符集为utf8mb4,排序规则为utf8mb4_general_ci,代码如下:CREATEDATABASEstu_scoreDEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_general_ci;2.创建sc成绩表,将sid和cid联合设置为主键,分别设置两个外键关联student表的sid主键和course表的cid主键,score字段设置0到100之间的校验约束,代码如下:CREATETABLEsc(sidVARCHAR(20)NOTNULLCOMMENT'学生学号',cidVARCHAR(20)NOTNULLCOMMENT'课程编号',scoreDECIMAL(5,2)NULLCOMMENT'考试成绩',PRIMARYKEY(sid,cid),FOREIGNKEY(sid)REFERENCESstudent(sid),FOREIGNKEY(cid)REFERENCEScourse(cid),CHECK(scoreBETWEEN0AND100))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;3.查询所有不及格(成绩小于60分)的学生姓名、课程名称、考试成绩,代码如下:SELECTs.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论