版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
mysql数据库二级考试试题及答案单项选择题(共20题,每题1分,共20分)1.MySQL数据库属于以下哪种数据模型?A.层次模型B.网状模型C.关系模型D.面向对象模型答案:C解析:关系模型采用二维表结构存储数据,通过表与表之间的关联实现数据映射,MySQL是当前应用最广泛的开源关系型数据库,完全符合关系模型的设计规范。2.MySQL8.0版本默认的存储引擎是?A.MyISAMB.InnoDBC.MemoryD.CSV答案:B解析:MyISAM是MySQL5.1及更早版本的默认存储引擎,不支持事务、外键和行级锁;InnoDB从MySQL5.5版本开始成为默认存储引擎,支持ACID事务、外键约束、行级锁、MVCC等特性,适合绝大多数生产场景。3.以下哪个关键字用于在SELECT语句中过滤分组后的聚合结果?A.WHEREB.HAVINGC.DISTINCTD.ORDERBY答案:B解析:WHERE关键字用于过滤行级数据,执行优先级高于分组操作,无法过滤聚合函数的计算结果;HAVING关键字必须与GROUPBY配合使用,用于对分组后的聚合结果进行过滤。4.若要查询学生表(student)中姓“李”且名字总长度为2个字符的学生信息,以下SQL语句正确的是?A.SELECT*FROMstudentWHEREsnameLIKE'李_'B.SELECT*FROMstudentWHEREsnameLIKE'李%'C.SELECT*FROMstudentWHEREsname='李_'D.SELECT*FROMstudentWHEREsname='李%'答案:A解析:模糊匹配必须使用LIKE关键字,通配符“_”匹配单个任意字符,“%”匹配0个或多个任意字符,“李_”表示第一个字符为“李”,第二个字符为任意值,正好符合名字长度为2的需求。5.现有订单表orders(oid,uid,amount,create_time),要统计每个用户的订单总金额,且仅保留总金额大于1000的用户,以下SQL语句正确的是?A.SELECTuid,SUM(amount)totalFROMordersWHEREtotal>1000GROUPBYuidB.SELECTuid,SUM(amount)totalFROMordersGROUPBYuidHAVINGtotal>1000C.SELECTuid,COUNT(amount)totalFROMordersWHEREtotal>1000GROUPBYuidD.SELECTuid,COUNT(amount)totalFROMordersGROUPBYuidHAVINGtotal>1000答案:B解析:SUM()函数用于对数值列求和,COUNT()函数用于统计记录行数,统计总金额需使用SUM();聚合函数的结果过滤必须使用HAVING关键字,不能放在WHERE子句中。6.以下哪种约束可以保证表中某列的值唯一且不允许为空?A.UNIQUEB.PRIMARYKEYC.FOREIGNKEYD.CHECK答案:B解析:UNIQUE约束要求列值唯一,但允许存在NULL值;PRIMARYKEY(主键)约束是唯一约束和非空约束的组合,一张表只能有一个主键,主键列的值既唯一又不允许为空。7.若要给员工表emp的salary列添加默认值3000,以下SQL语句正确的是?A.ALTERTABLEempMODIFYsalaryDEFAULT3000B.ALTERTABLEempALTERCOLUMNsalarySETDEFAULT3000C.ALTERTABLEempADDCONSTRAINTsalaryDEFAULT3000D.ALTERTABLEempUPDATEsalarySETDEFAULT3000答案:B解析:MySQL中修改列默认值的标准语法为ALTERTABLE表名ALTERCOLUMN列名SETDEFAULT默认值;MODIFY关键字用于修改列的类型、长度、非空约束等属性,不能单独用于设置默认值。8.MySQL中事务的四个隔离级别中,SQL标准定义下哪个级别可以避免脏读、不可重复读,但不能避免幻读?A.READUNCOMMITTEDB.READCOMMITTEDC.REPEATABLEREADD.SERIALIZABLE答案:C解析:SQL标准定义的四个事务隔离级别中,READUNCOMMITTED(读未提交)会出现脏读、不可重复读、幻读;READCOMMITTED(读已提交)可避免脏读,无法避免不可重复读、幻读;REPEATABLEREAD(可重复读)是MySQLInnoDB的默认隔离级别,SQL标准下该级别可避免脏读、不可重复读,无法避免幻读,但InnoDB引擎通过MVCC(多版本并发控制)+间隙锁的机制,实现了RR级别下的幻读防护,符合SQL标准的同时提升了并发性能;SERIALIZABLE(串行化)可以避免所有事务并发问题,但性能极低。9.以下关于索引的描述错误的是?A.索引可以加快查询速度B.索引会降低INSERT、UPDATE、DELETE的性能C.一张表的索引越多越好D.主键列默认会创建主键索引答案:C解析:索引是通过额外的存储空间存储排序后的索引列值,实现查询加速;但每次写操作(增删改)都需要同步更新索引,过多的索引会占用大量存储空间,大幅提升写操作的开销,因此索引并非越多越好,需要结合查询场景合理创建。10.现有学生表student(sid,sname,age,dept_id),部门表dept(dept_id,dept_name),要查询所有学生的姓名及对应的部门名称,没有部门的学生也要显示在结果中,以下连接方式正确的是?A.内连接B.左外连接C.右外连接D.交叉连接答案:B解析:左外连接会保留左表的所有记录,匹配右表中符合关联条件的记录,未匹配到的右表列显示为NULL;本题以student表为左表、dept表为右表做左外连接,即可保留所有学生的记录,没有部门的学生部门名称显示为NULL。11.以下哪个函数可以获取当前系统的完整日期和时间?A.CURDATE()B.CURTIME()C.NOW()D.YEAR()答案:C解析:CURDATE()仅返回当前日期(格式为YYYY-MM-DD),CURTIME()仅返回当前时间(格式为HH:MM:SS),NOW()返回当前完整的日期和时间(格式为YYYY-MM-DDHH:MM:SS),YEAR()用于提取日期参数的年份。12.若要删除表中所有数据且无法回滚,执行效率最高的语句是?A.DELETEFROMtable_nameB.DROPTABLEtable_nameC.TRUNCATETABLEtable_nameD.REMOVEFROMtable_name答案:C解析:DELETE是DML语句,逐行删除数据,支持事务回滚,删除全表数据效率极低;TRUNCATE是DDL语句,直接清空表的数据页,不记录逐行删除日志,无法回滚,执行效率极高;DROPTABLE会删除整个表的结构和数据,不符合仅删除数据的需求;MySQL中无REMOVE关键字。13.以下关于存储过程和存储函数的区别,描述错误的是?A.存储函数必须有返回值,存储过程可以没有返回值B.存储过程可以通过OUT/INOUT参数返回多个值,存储函数不支持C.存储函数可以在SELECT语句中直接调用,存储过程不行D.存储过程和存储函数都可以使用RETURN语句返回结果答案:D解析:RETURN语句仅能用于存储函数中,用于返回函数的计算结果;存储过程不需要通过RETURN返回结果,若需要返回值可以通过OUT/INOUT参数实现。14.以下哪个日志可以用于数据的增量备份和故障恢复,同时支持主从复制?A.错误日志B.慢查询日志C.二进制日志(binlog)D.通用查询日志答案:C解析:二进制日志(binlog)记录所有执行过的DDL和DML操作,是MySQL实现增量备份、故障点恢复、主从数据同步的核心组件;错误日志记录MySQL运行过程中的报错信息,慢查询日志用于记录执行超时的SQL语句,通用查询日志记录所有执行过的SQL语句,多用于调试。15.现有成绩表score(sid,cid,score),要查询每门课程的最高分对应的学生编号,以下SQL语句正确的是?A.SELECTsid,cid,MAX(score)FROMscoreGROUPBYcidB.SELECTsid,cid,scoreFROMscoresWHEREscore=(SELECTMAX(score)FROMscoreWHEREcid=s.cid)C.SELECTsid,cid,scoreFROMscoreGROUPBYcidHAVINGscore=MAX(score)D.SELECTsid,cid,MAX(score)FROMscoreORDERBYcid答案:B解析:MySQL开启ONLY_FULL_GROUP_BY模式(默认开启)时,GROUPBY子句中的非聚合列必须出现在GROUPBY之后,A、C、D选项中的sid是非聚合列且未在GROUPBY中声明,会触发语法错误;正确写法为使用相关子查询,逐行匹配每门课程的最高分记录。16.若要给用户test授予对stu数据库下所有表的查询权限,且允许该用户将自身权限授予其他用户,以下SQL语句正确的是?A.GRANTSELECTONstu.*TO'test'@'%'B.GRANTSELECTONstu.*TO'test'@'%'WITHGRANTOPTIONC.GRANTALLPRIVILEGESONstu.*TO'test'@'%'D.GRANTSELECTON*.*TO'test'@'%'WITHGRANTOPTION答案:B解析:WITHGRANTOPTION参数用于指定授权用户可以将自身拥有的权限授予其他用户;stu.*表示stu数据库下的所有表,*.*表示所有数据库下的所有表;本题仅授予查询权限,因此C、D选项不符合需求,A选项没有授予权限传递的能力。17.以下关于触发器的描述错误的是?A.触发器是与表关联的数据库对象,当表上发生特定事件时自动执行B.触发器可以分为INSERT、UPDATE、DELETE三种触发时机C.触发器可以直接接收传入参数D.触发器可以用于实现数据完整性约束、操作审计、数据同步等功能答案:C解析:触发器是事件驱动的数据库对象,触发时机为指定表上的INSERT/UPDATE/DELETE操作执行前或执行后,触发时自动执行预设逻辑,不需要也不支持接收传入参数。18.现有商品表goods(gid,gname,price,stock),要将价格大于100的商品库存减1,以下SQL语句正确的是?A.UPDATEgoodsSETstock=stock-1WHEREprice>100B.UPDATEgoodsSETstock-1WHEREprice>100C.UPDATEstock=stock-1FROMgoodsWHEREprice>100D.ALTERTABLEgoodsSETstock=stock-1WHEREprice>100答案:A解析:UPDATE语句的标准语法为UPDATE表名SET列名=新值WHERE过滤条件,列值修改需要通过赋值操作实现,B选项无赋值逻辑,C、D选项语法错误。19.若要在goods表的gname列创建一个名称为idx_gname的唯一索引,以下SQL语句正确的是?A.CREATEINDEXidx_gnameONgoods(gname)UNIQUEB.CREATEUNIQUEINDEXidx_gnameONgoods(gname)C.ADDUNIQUEINDEXidx_gnameONgoods(gname)D.ALTERTABLEgoodsADDINDEXidx_gnameUNIQUE(gname)答案:B解析:创建唯一索引的标准语法为CREATEUNIQUEINDEX索引名ON表名(列名);也可以通过ALTERTABLE表名ADDUNIQUE索引名(列名)创建,C、D选项语法错误,A选项的UNIQUE关键字位置错误。20.MySQL中用于拼接多个字符串的函数是?A.CONCAT()B.JOIN()C.LINK()D.MERGE()答案:A解析:CONCAT()函数用于拼接多个字符串参数,参数可以是常量、列值或其他函数的返回值;MySQL中无JOIN()、LINK()、MERGE()字符串拼接函数。多项选择题(共10题,每题2分,共20分,多选、少选、错选均不得分)1.以下属于MySQL支持的常用数据类型的有?A.INTB.VARCHARC.DATED.BOOLEAN答案:ABCD解析:MySQL支持数值类型、字符串类型、日期时间类型等多种数据类型,INT是整数类型,VARCHAR是可变长度字符串类型,DATE是日期类型,BOOLEAN是布尔类型,实际为TINYINT(1)的别名,存储0表示假、1表示真。2.以下哪些操作属于DDL(数据定义语言)语句?A.CREATETABLEB.ALTERTABLEC.INSERTD.DROPDATABASE答案:ABD解析:DDL语句用于操作数据库对象的结构,包括创建、修改、删除库、表、索引、视图等对象,CREATE、ALTER、DROP均属于DDL;INSERT是DML(数据操作语言)语句,用于操作表中的数据。3.事务的ACID核心特性包括?A.原子性B.一致性C.隔离性D.持久性答案:ABCD解析:ACID是事务必须满足的四个特性,原子性(Atomicity)指事务的所有操作要么全部成功要么全部失败回滚;一致性(Consistency)指事务执行前后数据的完整性约束不被破坏;隔离性(Isolation)指多个事务并发执行时互不干扰;持久性(Durability)指事务提交后对数据的修改永久生效,即使系统故障也不会丢失。4.以下关于InnoDB和MyISAM存储引擎的描述正确的有?A.InnoDB支持事务,MyISAM不支持B.InnoDB支持行级锁,MyISAM仅支持表级锁C.MyISAM的查询性能普遍高于InnoDBD.InnoDB支持外键约束,MyISAM不支持答案:ABD解析:InnoDB是MySQL当前的默认存储引擎,支持事务、外键、行级锁、MVCC等特性,适合高并发的事务处理场景;MyISAM是MySQL早期的默认存储引擎,不支持事务、外键、行级锁,仅支持表级锁,并发写入性能差,查询性能仅在无事务、纯只读场景下略高于InnoDB,绝大多数生产环境下InnoDB的综合性能更优,因此C选项表述错误。5.以下哪些关键字可以用于ORDERBY子句指定排序规则?A.ASCB.DESCC.HAVINGD.GROUPBY答案:AB解析:ORDERBY子句用于对查询结果排序,ASC表示升序(默认规则),DESC表示降序,支持多字段组合排序;HAVING用于过滤分组结果,GROUPBY用于分组,均与排序无关。6.子查询可以出现在SQL语句的以下哪些位置?A.SELECT子句B.FROM子句C.WHERE子句D.HAVING子句答案:ABCD解析:子查询可以作为标量值出现在SELECT子句中,作为临时表出现在FROM子句中,作为过滤条件出现在WHERE或HAVING子句中,还可以出现在INSERT、UPDATE、DELETE等语句的条件中。7.以下哪些约束可以作用于列级或表级?A.PRIMARYKEYB.UNIQUEC.FOREIGNKEYD.NOTNULL答案:ABC解析:NOTNULL约束仅能作用于单个列,属于列级约束;PRIMARYKEY、UNIQUE、FOREIGNKEY既可以作用于单个列(列级约束),也可以作用于多个列的组合(表级约束)。8.MySQL中常用的备份方式有?A.物理备份B.逻辑备份C.增量备份D.全量备份答案:ABCD解析:物理备份指直接拷贝MySQL的数据文件实现备份,速度快,适合大库备份;逻辑备份指将数据导出为SQL语句实现备份,灵活性高,适合小库或数据迁移场景;全量备份指备份整个数据库的所有数据,增量备份指仅备份上次备份后发生变化的数据,二者通常配合使用提升备份效率。9.以下关于视图的描述正确的有?A.视图是虚拟表,本身不存储实际数据B.视图可以简化复杂的查询操作,复用查询逻辑C.视图可以提高数据的安全性,限制用户仅能访问特定列或行的数据D.对视图的修改一定会同步到基表答案:ABC解析:视图是基于查询结果创建的虚拟表,数据来自基表,本身不存储数据;可以将复杂的多表关联查询封装为视图,简化上层调用,也可以通过视图限制用户的访问范围,提升数据安全性;只有符合可更新视图条件的修改才会同步到基表,包含聚合函数、GROUPBY、DISTINCT、UNION等逻辑的视图无法更新,因此D选项表述错误。10.以下哪些场景会导致索引失效?A.对索引列使用函数或表达式运算B.模糊查询的通配符出现在字符串开头C.索引列参与隐式类型转换D.使用OR连接的多个条件中存在无索引的列答案:ABCD解析:上述四个场景均为常见的索引失效场景,会导致MySQL优化器放弃使用索引,执行全表扫描,大幅降低查询性能,实际开发中需要尽量避免。判断题(共10题,每题1分,共10分,正确打√,错误打×)1.MySQL中NULL值和空字符串''是等价的。答案:×解析:NULL表示未知的、未定义的值,空字符串是长度为0的有效字符串,二者不等价,判断NULL必须使用ISNULL/ISNOTNULL,判断空字符串使用=''。2.DELETE语句可以带WHERE条件删除指定行,TRUNCATE语句不能带WHERE条件。答案:√解析:DELETE是逐行删除数据,支持通过WHERE条件过滤要删除的行;TRUNCATE是直接清空整表的数据页,不支持WHERE条件。3.联合查询中UNION会自动对结果集去重,UNIONALL不会去重,UNIONALL的执行效率更高。答案:√解析:UNION需要对结果集做排序、去重操作,性能开销大;UNIONALL直接返回所有结果,无额外开销,无去重需求时优先使用UNIONALL。4.存储过程是预编译的SQL语句集合,执行效率比普通动态SQL更高。答案:√解析:存储过程在创建时完成语法解析和编译,后续调用无需再次编译,减少了解析开销,执行效率高于每次执行都需要编译的动态SQL。5.主键索引和唯一索引都要求列值唯一,二者没有区别。答案:×解析:主键索引不允许存储NULL值,一张表只能有一个主键索引;唯一索引允许存储NULL值,一张表可以创建多个唯一索引。6.MySQL中LIMIT子句的参数LIMITm,n表示从第m条记录开始,返回n条记录。答案:×解析:LIMITm,n中m为偏移量,从0开始计数,表示跳过前m条记录,返回后续的n条记录,对应实际的第m+1条记录开始的n条数据。7.外键约束可以保证两张表的参照完整性。答案:√解析:外键用于关联从表的外键列和主表的主键列,要求从表的外键列值必须存在于主表的主键列中,避免出现无效的关联数据,保证参照完整性。8.慢查询日志可以记录执行时间超过指定阈值的SQL语句,是SQL性能优化的重要工具。答案:√解析:慢查询日志默认关闭,开启后可以记录执行时间超过long_query_time参数设定值的SQL语句,用于定位性能较差的SQL进行优化。9.在SELECT语句中,GROUPBY子句必须放在WHERE子句之后,ORDERBY子句之前。答案:√解析:SELECT语句的逻辑执行顺序为FROM->WHERE->GROUPBY->HAVING->SELECT->ORDERBY->LIMIT,因此GROUPBY的位置必须在WHERE之后、ORDERBY之前。10.InnoDB的自增主键可以保证值完全连续不中断。答案:×解析:自增主键在事务回滚、插入失败、批量插入预分配自增值等场景下都会出现断号,无法保证值完全连续。操作题(共5题,每题10分,共50分)现有学生管理系统的三张基础表,建表语句如下:```sql-学生表CREATETABLEstudent(sidINTPRIMARYKEYAUTO_INCREMENTCOMMENT'学生编号',snameVARCHAR(20)NOTNULLCOMMENT'学生姓名',ageTINYINTCOMMENT'年龄',genderCHAR(1)COMMENT'性别,取值:男/女',dept_idINTCOMMENT'所属部门编号')ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;-部门表CREATETABLEdept(dept_idINTPRIMARYKEYAUTO_INCREMENTCOMMENT'部门编号',dept_nameVARCHAR(50)NOTNULLUNIQUECOMMENT'部门名称')ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;-成绩表CREATETABLEscore(sidINTCOMMENT'学生编号',cidINTCOMMENT'课程编号',scoreDECIMAL(5,2)COMMENT'考试分数,取值范围0-100',PRIMARYKEY(sid,cid))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;```题干1查询年龄大于20岁的女学生的姓名、年龄、所属部门名称,按年龄降序排序,年龄相同的按姓名升序排序。解答```sqlSELECTs.sname,s.age,d.dept_nameFROMstudentsLEFTJOINdeptdONs.dept_id=d.dept_idWHEREs.age>20ANDs.gender='女'ORDERBYs.ageDESC,s.snameASC;```解析使用左外连接关联学生表和部门表,保证没有分配部门的学生也能显示在结果中;WHERE子句过滤符合年龄和性别要求的学生;ORDERBY指定多字段排序规则,优先按年龄降序,年龄相同则按姓名拼音升序。题干2统计每个部门的学生人数,显示部门名称、学生人数,没有学生的部门人数显示为0。解答```sqlSELECTd.dept_name,COUNT(s.sid)ASstu_countFROMdeptdLEFTJOINstudentsONd.dept_id=s.dept_idGROUPBYd.dept_id,d.dept_name;```解析以部门表为左表做左外连接,保留所有部门的记录;COUNT(s.sid)统计非空的学生编号,没有学生的部门该列值为NULL,COUNT统计结果为0,避免使用COUNT(*)统计到NULL行返回1的错误。题干3查询所有考试平均分大于80分的学生的姓名、平均分,按平均分降序排序。解答```sqlSELECTs.sname,AVG(sc.score)ASavg_scoreFROMstudentsINNERJOINscorescONs.sid=sc.sidGRO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年事业单位审计岗财会审计重点难点专项卷
- 2026年公务员考试《申论》科目冲刺押题卷
- 2026天津市公务员考试(统计专业科目)复习题及答案
- 2026年一级造价工程师职业资格考试(建设工程计价)考前冲刺试题及答案二
- 2026年护士执业资格考试全真试题及答案
- 2025年执业医师考试临床类别真题及答案解析
- 《抗阿尔茨海默病和治疗》课件
- 2026计价考试试题及参考答案解析
- 2025~2026学年广西壮族自自治区柳州市第三十九中学八年级下学期期中历史试卷
- 2025届许昌市鄢陵县数学三年级第二学期期末学业质量监测试题(含答案解析)
- 2025年北京市石景山区社区工作者招聘考试试题及答案详解
- (2026年版)中国老年2型糖尿病防治临床指南课件
- 2026-2030全球少儿思维能力培养行业融资创新模式与投资契机研究研究报告版
- 加装电梯工程监理实施细则
- 10.《公共财政概论》第十章 公债
- 2025年北京市公务员录用考试《行测》真题附答案
- 太阳能转化原理与技术课件-第四章光伏理化基础及光伏发电原理
- 电控配电用电缆桥架(JBT 10216-2025)
- 山东青岛国信智慧城市运营有限公司招聘笔试题库2026
- 2026年仓储图书员考试题及答案
- 泰康集团入职测评题库及答案
评论
0/150
提交评论