2025年计算机二级mysql考试题及答案_第1页
2025年计算机二级mysql考试题及答案_第2页
2025年计算机二级mysql考试题及答案_第3页
2025年计算机二级mysql考试题及答案_第4页
2025年计算机二级mysql考试题及答案_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

2025年计算机二级mysql考试题及答案1.下列MySQL存储引擎中,支持事务和外键约束的是?A.MyISAMB.InnoDBC.MEMORYD.CSV【答案】B【解析】InnoDB是MySQL5.5版本之后的默认存储引擎,支持事务、外键约束、行级锁、MVCC等特性,适用于对数据一致性要求高的业务场景;MyISAM不支持事务和外键,查询性能较高;MEMORY将数据存储在内存中,断电丢失,适用于临时缓存场景;CSV存储逗号分隔的文本数据,不支持索引。2.下列SQL语句分类中,属于数据操纵语言(DML)的是?A.CREATEB.GRANTC.INSERTD.DROP【答案】C【解析】SQL分为四类:DDL(数据定义语言)包括CREATE、DROP、ALTER等,用于定义数据库对象结构;DML(数据操纵语言)包括INSERT、UPDATE、DELETE、SELECT等,用于操作表中数据;DCL(数据控制语言)包括GRANT、REVOKE等,用于管理用户权限;TCL(事务控制语言)包括COMMIT、ROLLBACK等,用于管理事务。3.若要存储用户年龄数据,从存储空间最优的角度选择,最合适的数据类型是?A.INTB.TINYINTUNSIGNEDC.SMALLINTD.CHAR(3)【答案】B【解析】TINYINTUNSIGNED为无符号微整型,占用1字节存储空间,取值范围0-255,完全覆盖年龄的合理取值范围,是最优选择;INT占用4字节、SMALLINT占用2字节,存储空间浪费;CHAR(3)为字符串类型,运算性能远低于数值类型,不适用。4.下列关于主键约束的说法,错误的是?A.主键列不允许存储NULL值B.一张表只能定义一个主键C.主键可以由多个字段联合组成D.主键列允许存储重复值【答案】D【解析】主键约束具备两个核心特性:非空性、唯一性,主键列不允许存储重复值和NULL值;一张表仅能定义一个主键,主键可由单个字段或多个字段联合组成,联合主键的唯一性由多个字段的组合值判断。5.下列关于WHERE和HAVING子句的说法,正确的是?A.WHERE用于过滤分组后的数据,HAVING用于过滤分组前的行数据B.HAVING必须和GROUPBY绑定使用,不能单独使用C.WHERE子句中不能使用聚合函数作为过滤条件,HAVING可以D.以上说法均错误【答案】C【解析】WHERE是分组前过滤,仅能对原始行数据做条件筛选,不支持聚合函数作为条件;HAVING是分组后过滤,针对分组聚合后的结果做筛选,支持聚合函数作为条件,也可以脱离GROUPBY单独使用(极少场景)。6.要查询所有学生的选课情况,包含未选择任何课程的学生的信息,已知学生表为student、选课表为sc,下列连接方式正确的是?A.studentINNERJOINscB.studentLEFTJOINscC.studentRIGHTJOINscD.studentCROSSJOINsc【答案】B【解析】左连接(LEFTJOIN)会保留左表的所有记录,即便右表没有匹配的记录,右表字段返回NULL,符合保留所有学生信息的需求;内连接仅返回两表匹配的记录,会丢失未选课学生数据;右连接会保留右表所有记录,丢失无学生匹配的选课记录;交叉连接返回两表的笛卡尔积,无业务意义。7.下列索引类型中,可以保证索引列的值唯一的是?A.普通索引B.唯一索引C.全文索引D.空间索引【答案】B【解析】唯一索引要求索引列的所有值唯一,仅允许存在一个NULL值;普通索引仅用于提升查询速度,无值约束;全文索引用于文本字段的模糊检索;空间索引用于地理空间数据类型的检索。8.事务的四大特性简称ACID,其中隔离性指的是?A.事务一旦提交,对数据的修改是永久的,不会因为系统故障丢失B.事务包含的所有操作要么全部执行成功,要么全部失败回滚C.多个事务并发执行时,事务内部的操作和数据互相隔离,不会被其他事务干扰D.事务执行前后,数据的完整性约束不会被破坏【答案】C【解析】ACID四个特性中,A(原子性)对应选项B,C(一致性)对应选项D,I(隔离性)对应选项C,D(持久性)对应选项A。9.要获取当前系统的日期时间,精确到秒,下列MySQL函数正确的是?A.CURDATE()B.NOW()C.YEAR()D.TIME()【答案】B【解析】NOW()返回当前系统的日期时间,格式为'YYYY-MM-DDHH:MM:SS',精确到秒;CURDATE()仅返回当前日期;YEAR()返回指定日期的年份;TIME()仅返回指定时间的时分秒部分。10.下列关于视图的说法,错误的是?A.视图是虚拟表,本身不存储实际数据,数据来自基表B.视图可以限制用户访问的数据范围,提升数据安全性C.对可更新视图的修改,最终会作用于对应的基表D.视图不能和普通表进行关联查询【答案】D【解析】视图可以和普通表、其他视图进行任意关联查询,使用逻辑和普通表完全一致;其余选项描述均为视图的核心特性。11.要查询姓“李”且名字为两个字的学生信息,下列WHERE子句正确的是?A.s_nameLIKE'李%'B.s_nameLIKE'李_'C.s_nameLIKE'%李%'D.s_nameLIKE'_李'【答案】B【解析】模糊查询通配符中,_匹配单个任意字符,%匹配0个或多个任意字符;'李_'匹配第一个字为李、总长度为2的字符串,符合需求;'李%'匹配所有姓李的学生,不限名字长度;'%李%'匹配名字包含李的学生;'_李'匹配第二个字为李、总长度为2的学生。12.下列聚合函数中,会自动忽略NULL值的是?A.COUNT(*)B.SUM(score)C.COUNT(1)D.以上都不会忽略NULL值【答案】B【解析】SUM()、AVG()、MAX()、MIN()聚合函数计算时会自动忽略NULL值;COUNT(*)和COUNT(常量)会统计所有行,不会忽略NULL值,只有COUNT(字段名)会忽略该字段为NULL的行。13.外键约束的核心作用是?A.保证两张关联表之间的参照完整性B.提升关联查询的速度C.对字段值进行非空限制D.保证字段值的唯一性【答案】A【解析】外键约束用于关联两张表,保证从表外键字段的取值必须来自主表关联字段的取值,避免无效关联数据的产生,保障参照完整性;外键不会提升查询速度,非空约束、唯一约束分别对应选项C、D的功能。14.下列关于存储过程的说法,正确的是?A.存储过程不能携带输入输出参数B.存储过程是预编译的SQL语句集合,执行效率高于普通SQL语句C.存储过程不能返回查询结果集D.存储过程每次执行都需要重新编译【答案】B【解析】存储过程是预先编写并编译存储在数据库中的SQL语句集合,支持输入、输出、输入输出三类参数,执行时直接调用编译后的代码,无需重复编译,执行效率更高,可以返回多个查询结果集。15.下列操作事件中,不能作为触发器触发事件的是?A.INSERTB.UPDATEC.DELETED.SELECT【答案】D【解析】触发器仅支持INSERT、UPDATE、DELETE三类数据修改事件作为触发条件,SELECT查询不会触发任何触发器。16.下列MySQL日志类型中,用于记录所有修改数据的SQL语句,可用于数据恢复和主从复制的是?A.错误日志B.二进制日志(binlog)C.慢查询日志D.通用查询日志【答案】B【解析】二进制日志记录所有DDL和DML语句,不记录查询类语句,是MySQL主从复制、数据增量恢复的核心依赖;错误日志记录MySQL运行过程中的错误信息;慢查询日志记录执行时间超过阈值的SQL语句,用于性能优化;通用查询日志记录所有执行的SQL语句,性能损耗大,默认关闭。17.要查询学生表中第11到20条记录,假设每页10条,下列LIMIT子句正确的是?A.LIMIT10,10B.LIMIT11,10C.LIMIT10,20D.LIMIT11,20【答案】A【解析】LIMIT子句的语法为LIMIT[偏移量,]行数,偏移量从0开始计数,第11条记录的偏移量为10,取10条记录对应的写法为LIMIT10,10,也可以写作LIMIT10OFFSET10。18.要限制成绩表的score字段取值范围为0到100,最合适的约束类型是?A.主键约束B.唯一约束C.CHECK约束D.外键约束【答案】C【解析】CHECK约束用于自定义字段的取值规则,MySQL8.0及以上版本完全支持CHECK约束的生效,符合二级考试考查范围;主键、唯一、外键约束分别对应非空唯一、值唯一、参照完整性的约束需求。19.要给本地用户test授予student表的查询权限,下列SQL语句正确的是?A.GRANTSELECTONstudentTO'test'@'localhost';B.GRANTSELECTTO'test'@'localhost'ONstudent;C.AWARDSELECTONstudentTO'test'@'localhost';D.GRANTstudentSELECTTO'test'@'localhost';【答案】A【解析】权限授予的语法为GRANT权限列表ON库名.表名TO'用户名'@'主机地址';授予所有权限可以用ALLPRIVILEGES,所有库表可以用*.*。20.下列关于死锁的说法,错误的是?A.死锁是两个或多个事务互相持有对方需要的锁,永久等待无法执行的状态B.InnoDB存储引擎可以自动检测死锁,回滚代价最小的事务解除死锁C.只要合理设计事务的执行顺序,就可以完全避免死锁的产生D.死锁会占用系统资源,影响数据库运行性能【答案】C【解析】死锁只能通过优化事务逻辑、缩短事务执行时间、合理设计索引等方式降低发生概率,无法完全避免。填空题(共10题,每题2分,共20分)1.MySQL中,用于删除表中所有数据但保留表结构的DDL语句是______。【答案】TRUNCATE【解析】TRUNCATE是DDL语句,删除表中所有数据的速度远高于DELETE语句,不可回滚;DELETE是DML语句,可以回滚,支持带WHERE条件删除部分数据。2.SQL语句中,用于对查询结果进行排序的关键字是______。【答案】ORDERBY【解析】ORDERBY默认按照升序(ASC)排序,降序排序需要指定DESC,支持多个字段组合排序。3.创建唯一索引时,需要在CREATEINDEX前添加的关键字是______。【答案】UNIQUE【解析】创建唯一索引的语法为CREATEUNIQUEINDEX索引名ON表名(字段名)。4.事务的四大特性ACID中,字母I代表的特性是______。【答案】隔离性【解析】ACID分别对应原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。5.MySQL中,用于切换到指定数据库的命令是______数据库名。【答案】USE【解析】语法为USE数据库名;执行后后续操作默认针对该数据库。6.要查询学生表中不同班级的数量,对应的SQL语句为SELECT______(DISTINCTclass_id)FROMstudent;。【答案】COUNT【解析】DISTINCT用于对class_id去重,COUNT统计去重后的班级数量。7.存储过程内部声明局部变量时,使用的关键字是______。【答案】DECLARE【解析】局部变量声明必须放在存储过程的最开头,语法为DECLARE变量名数据类型[DEFAULT默认值];。8.MySQL8.0版本默认的存储引擎是______。【答案】InnoDB【解析】MySQL5.5版本之后默认存储引擎为InnoDB,支持事务、外键、行级锁等特性。9.要给student表的age字段设置默认值18,对应的SQL语句为ALTERTABLEstudentALTERCOLUMNage______DEFAULT18;。【答案】SET【解析】修改字段默认值的语法为ALTERTABLE表名ALTERCOLUMN字段名SETDEFAULT默认值;删除默认值用DROPDEFAULT。10.用于收回用户权限的SQL关键字是______。【答案】REVOKE【解析】语法为REVOKE权限列表ON库名.表名FROM'用户名'@'主机地址';。操作题(共60分)前置背景现有学生管理系统三张表,结构如下,考试环境为MySQL8.0版本:1.班级表class:class_idINT主键,class_nameVARCHAR(50)非空,majorVARCHAR(50)2.学生表student:s_idINT主键,s_nameVARCHAR(20)非空,s_genderCHAR(1)CHECK(s_genderIN('男','女')),s_birthDATE,class_idINT外键关联class表的class_id,级联更新、删除时设为NULL3.成绩表score:score_idINT主键自增,s_idINT外键关联student表的s_id,course_nameVARCHAR(50),scoreDECIMAL(5,2)CHECK(scoreBETWEEN0AND100)一、基础操作题(共2题,每题15分,共30分)1.请根据上述表结构,编写SQL语句创建student表,要求包含所有约束,字符集为utf8mb4,存储引擎为InnoDB。【参考答案】```sqlCREATETABLEstudent(s_idINTPRIMARYKEYCOMMENT'学号',s_nameVARCHAR(20)NOTNULLCOMMENT'姓名',s_genderCHAR(1)CHECK(s_genderIN('男','女'))COMMENT'性别',s_birthDATECOMMENT'出生日期',class_idINTCOMMENT'班级号',FOREIGNKEY(class_id)REFERENCESclass(class_id)ONDELETESETNULLONUPDATECASCADE)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COMMENT='学生表';```【解析】需注意约束的完整定义:主键、非空、CHECK、外键的级联操作,以及表属性的设置,遗漏任何约束每项扣3分,语法错误扣5-10分。2.请编写SQL语句完成以下操作:①向student表插入一条数据:学号2025001,姓名张三,性别男,出生日期2002-10-05,班级号101;②将该学生的班级号修改为102。【参考答案】```sql-插入数据INSERTINTOstudent(s_id,s_name,s_gender,s_birth,class_id)VALUES(2025001,'张三','男','2002-10-05',101);-修改数据UPDATEstudentSETclass_id=102WHEREs_id=2025001;```【解析】INSERT语句字段和值必须一一对应,UPDATE必须加WHERE条件,否则会修改全表数据,未加WHERE条件本题不得分。二、查询操作题(共2题,每题10分,共20分)1.查询所有“计算机科学与技术”专业的学生姓名、性别、班级名,结果按姓名升序排序。【参考答案】```sqlSELECTs.s_name,s.s_gender,c.class_nameFROMstudentsINNERJOINclasscONs.class_id=c.class_idWHEREc.major='计算机科学与技术'ORDERBYs.s_nameASC;```【解析】通过内连接关联学生表和班级表,WHERE条件过滤专业,ORDERBY排序,关联错误扣5分,过滤条件错误扣4分,排序错误扣3分,语法错误不得分。2.查询平均成绩高于80分的学生的学号、姓名、平均成绩,平均成绩保留2位小数,结果按平均成绩降序排序。【参考答案】```sqlSELECTs.s_id,s.s_name,ROUND(AVG(sc.score),2)ASavg_scoreFROMstudentsINNERJOINscorescONs.s_id=sc.s_idGROUPBYs.s_id,s.s_nameHAVINGavg_score>80ORDER

温馨提示

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

评论

0/150

提交评论