2026年计算机二级(MySQL数据库程序设计)自测试题及答案_第1页
2026年计算机二级(MySQL数据库程序设计)自测试题及答案_第2页
2026年计算机二级(MySQL数据库程序设计)自测试题及答案_第3页
2026年计算机二级(MySQL数据库程序设计)自测试题及答案_第4页
2026年计算机二级(MySQL数据库程序设计)自测试题及答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

2026年计算机二级(MySQL数据库程序设计)自测试题及答案一、单项选择题(每题1分,共20分)1.下列关于MySQL数据库系统的特点,说法错误的是()A.MySQL是开源软件,可免费用于商业与非商业场景B.MySQL支持多线程模型,能够充分利用CPU计算资源C.MySQL仅支持小型数据处理,无法承载千万级以上的大数据量业务D.MySQL支持多种存储引擎,可根据业务场景选择适配的存储引擎2.MySQL中,下列哪种数据类型最适合存储电商平台的商品价格()A.INTB.FLOATC.DECIMAL(10,2)D.DOUBLE3.下列选项中,不属于MySQL数据完整性约束类型的是()A.主键约束B.外键约束C.唯一约束D.索引约束4.要在MySQL中删除已存在的商品表goods,正确的SQL语句是()A.DROPTABLEgoodsB.DELETETABLEgoodsC.REMOVETABLEgoodsD.ALTERTABLEgoodsDROP5.已知学生表student结构为:student(student_idINTPRIMARYKEY,nameVARCHAR(20),ageINT),要查询所有年龄大于全体学生平均年龄的学生姓名,正确的SQL语句是()A.SELECTnameFROMstudentWHEREage>AVG(age);B.SELECTnameFROMstudentWHEREage>(SELECTAVG(age)FROMstudent);C.SELECTname,AVG(age)FROMstudentGROUPBYageHAVINGage>AVG(age);D.SELECTnameFROMstudentHAVINGage>AVG(age);6.MySQL中,InnoDB存储引擎默认的锁粒度是()A.行级锁B.表级锁C.页级锁D.共享锁7.下列关于事务ACID特性的对应解释,错误的是()A.原子性(Atomicity):事务中所有操作要么全部成功提交,要么全部失败回滚,不会出现部分执行的情况B.一致性(Consistency):事务执行前后,数据库的完整性约束不会被破坏,数据始终符合规则C.隔离性(Isolation):多个并发事务必须串行执行,不允许同时处理不同的事务请求D.持久性(Durability):事务提交后,对数据的修改会永久写入数据库,系统故障也不会导致数据丢失8.要为student表的age字段创建名称为idx_age的普通索引,正确的SQL语句是()A.ADDINDEXONstudent(age);B.CREATEINDEXidx_ageONstudent(age);C.CREATEINDEXidx_ageALTERTABLEstudent;D.ALTERTABLEstudentADDINDEXidx_ageONstudent(age);9.下列关于MySQL视图的描述,错误的是()A.视图是虚拟表,本身不存储实际数据,数据来源于基表B.视图可以简化复杂查询操作,同时可以隐藏敏感数据,提升数据安全性C.所有视图都可以进行插入、更新、删除操作,和普通基表使用方法完全一致D.视图的定义既可以基于单个或多个基表,也可以基于其他已定义的视图10.MySQL中,删除名称为tri_stock_check的触发器,正确的语句是()A.DROPTRIGGERtri_stock_check;B.DELETETRIGGERtri_stock_check;C.REMOVETRIGGERtri_stock_check;D.ALTERTRIGGERtri_stock_checkDROP;11.已知订单表orders结构为orders(order_idINT,user_idINT,amountDECIMAL(10,2)),要统计每个用户的订单总金额,并且只显示总金额大于1000元的用户,正确的SQL语句是()A.SELECTuser_id,SUM(amount)FROMorderWHERESUM(amount)>1000GROUPBYuser_id;B.SELECTuser_id,SUM(amount)FROMordersGROUPBYuser_idHAVINGSUM(amount)>1000;C.SELECTuser_id,SUM(amount)FROMordersGROUPBYuser_idWHERESUM(amount)>1000;D.SELECTuser_id,SUM(amount)FROMordersHAVINGSUM(amount)>1000GROUPBYuser_id;12.MySQL中,下列哪个权限允许用户将自身拥有的权限分配给其他用户()A.ALLPRIVILEGESB.GRANTOPTIONC.SUPERD.CREATEUSER13.事务的四个隔离级别中,能够完全解决脏读、不可重复读、幻读三类并发问题的是()A.READUNCOMMITTEDB.READCOMMITTEDC.REPEATABLEREADD.SERIALIZABLE14.下列哪个命令可以查看当前MySQL实例中所有的数据库()A.SHOWDATABASES;B.SHOWTABLES;C.DESCDATABASES;D.LISTDATABASES;15.要将student表中name字段的数据类型从VARCHAR(20)修改为VARCHAR(50),不改变字段名,正确的语句是()A.ALTERTABLEstudentMODIFYnameVARCHAR(50);B.ALTERTABLEstudentCHANGEnameVARCHAR(50);C.MODIFYTABLEstudentnameVARCHAR(50);D.CHANGETABLEstudentnameVARCHAR(50);16.已知成绩表score结构为score(s_idINT,c_idINT,scoreINT),要查询选修课程编号为101,分数在80到90之间(包含端点)的所有学生编号,正确的条件写法是()A.c_id=101ANDscoreBETWEEN80AND90B.c_id=101ANDscoreIN(80,90)C.c_id=101ORscoreBETWEEN80AND90D.c_id=101ANDscoreBETWEEN80AND90,不包含9017.下列关于MySQL存储过程和存储函数的描述,正确的是()A.存储过程必须有返回值,存储函数可以没有返回值B.存储过程可以通过OUT参数返回多个值,存储函数必须有且只有一个返回值C.存储过程可以调用存储函数,存储函数不能调用存储过程D.调用存储过程使用SELECT语句,调用存储函数使用CALL语句18.要将MySQL中名称为testdb的数据库备份为testdb.sql文件,正确的命令行命令是()A.mysql-uroot-ptestdb>testdb.sqlB.mysqldump-uroot-ptestdb>testdb.sqlC.mysql-uroot-ptestdb<testdb.sqlD.mysqldump-uroot-ptestdb<testdb.sql19.下列哪个聚合函数用于统计数据表中符合条件的记录总行数()A.SUM()B.COUNT()C.MAX()D.AVG()20.下列能够删除数据表table_name中column_name字段的正确语法是()A.ALTERTABLEtable_nameDELETEcolumn_name;B.ALTERTABLEtable_nameDROPCOLUMNcolumn_name;C.DELETEcolumn_nameFROMtable_name;D.DROPcolumncolumn_nameFROMtable_name;单项选择题答案及解析1.答案:C解析:MySQL作为主流的关系型数据库,支持千万级甚至PB级别的大数据量存储与查询,大量头部互联网企业的核心业务都使用MySQL承载,因此C选项表述错误,其余选项均为MySQL的正确特点。2.答案:C解析:商品价格属于对精度要求较高的数据,DECIMAL为定点数类型,不会出现浮点型的精度丢失问题,非常适合存储货币类数据;FLOAT和DOUBLE属于浮点型,存储时会存在精度误差,不适合价格存储;INT只能存储整数,无法存储小数价格,因此正确选项为C。3.答案:D解析:MySQL的数据完整性约束包括主键约束、外键约束、唯一约束、非空约束、默认约束,索引是用于优化查询速度的数据库对象,不属于数据完整性约束,因此D选项符合题意。4.答案:A解析:删除表的标准SQL语法为`DROPTABLE表名`;DELETE语句用于删除表中的数据行,不能删除表本身;其余选项语法不存在,因此正确选项为A。5.答案:B解析:聚合函数不能直接出现在WHERE子句中,需要先通过子查询得到平均年龄的结果,再作为过滤条件使用,因此A选项语法错误,B选项正确;C、D选项的逻辑不符合题目要求,无法得到正确结果。6.答案:A解析:InnoDB存储引擎默认支持行级锁,仅对操作的行加锁,大幅提升了并发处理能力;MyISAM存储引擎默认使用表级锁,因此正确选项为A。7.答案:C解析:隔离性的定义是多个并发事务执行时,一个事务的执行不会对其他事务产生干扰,通过锁机制和多版本并发控制实现,并不要求事务必须串行执行,因此C选项表述错误,其余选项对ACID特性的解释均正确。8.答案:B解析:创建普通索引的标准语法为`CREATEINDEX索引名ON表名(字段名)`;D选项语法错误,正确的ALTER写法为`ALTERTABLEstudentADDINDEXidx_age(age)`,不需要加`ONstudent`,因此正确选项为B。9.答案:C解析:只有基于单个基表、不包含聚合函数、分组、去重、连接等操作的简单视图才支持插入、更新、删除操作,包含复杂逻辑的视图是不可更新的,因此C选项表述错误,其余选项对视图的描述均正确。10.答案:A解析:删除触发器的标准语法为`DROPTRIGGER触发器名`,其余选项语法错误,因此正确选项为A。11.答案:B解析:分组后对聚合结果的过滤需要使用HAVING子句,WHERE子句用于分组前对原始数据的过滤,不能直接使用聚合函数,因此正确语法为GROUPBY分组后HAVING过滤,B选项符合要求。12.答案:B解析:GRANTOPTION权限就是授予权限的权限,拥有该权限的用户可以将自身获得的权限再分配给其他用户,因此正确选项为B。13.答案:D解析:四个隔离级别中,READUNCOMMITTED会出现脏读、不可重复读、幻读;READCOMMITTED解决了脏读,仍存在不可重复读和幻读;REPEATABLEREAD解决了脏读和不可重复读,在InnoDB中通过间隙锁避免了大部分幻读问题,但严格来说只有SERIALIZABLE串行化隔离级别能够完全解决所有三类并发问题,因此正确选项为D。14.答案:A解析:查看所有数据库的标准语法为`SHOWDATABASES;`,`SHOWTABLES;`用于查看当前数据库中的所有表,其余选项语法不存在,因此正确选项为A。15.答案:A解析:MODIFY关键字用于修改字段属性,不改变字段名,语法符合要求;CHANGE关键字需要同时指定原字段名和新字段名,正确写法为`ALTERTABLEstudentCHANGEnamenameVARCHAR(50);`,因此B选项错误,正确选项为A。16.答案:A解析:BETWEEN...AND...包含两端的边界值,IN语法表示等于列表中的任意一个值,因此A选项符合题意,其余选项均错误。17.答案:B解析:A选项表述相反,存储过程可以没有返回值,通过输出参数返回结果,存储函数必须有返回值;C选项错误,存储函数也可以调用存储过程;D选项错误,调用存储过程使用CALL,调用存储函数可以使用SELECT,因此B选项表述正确。18.答案:B解析:mysqldump是MySQL提供的官方备份工具,备份导出使用>重定向符,导入使用<,因此正确的备份命令为B选项。19.答案:B解析:COUNT()函数用于统计行数,SUM()用于求和,MAX()用于求最大值,AVG()用于求平均值,因此正确选项为B。20.答案:B解析:删除字段的标准语法为`ALTERTABLE表名DROPCOLUMN字段名`,其余选项语法错误,因此正确选项为B。二、基本操作题(共30分)题目:已知数据库sales已经存在,请完成以下操作:1.在sales数据库中创建商品表goods,表结构要求如下:goods_id:INT类型,主键,非空,自动增量goods_name:VARCHAR(50)类型,非空price:DECIMAL(10,2)类型,非空category:VARCHAR(20)类型,允许为空stock:INT类型,默认值为1002.为goods表的category字段创建普通索引,索引名称为idx_category。3.向goods表插入以下三条测试数据:(1,"华为Mate60",4999.00,"手机",200)(2,"小米14",3999.00,"手机",150)(3,"美的电饭煲",599.00,"家电",80)4.将goods表中所有分类为“手机”的商品价格打9折,更新对应价格字段。基本操作题参考解答```sql-切换数据库,创建goods表USEsales;CREATETABLEgoods(goods_idINTPRIMARYKEYAUTO_INCREMENT,goods_nameVARCHAR(50)NOTNULL,priceDECIMAL(10,2)NOTNULL,categoryVARCHAR(20),stockINTDEFAULT100);-创建索引CREATEINDEXidx_categoryONgoods(category);-插入测试数据INSERTINTOgoods(goods_id,goods_name,price,category,stock)VALUES(1,"华为Mate60",4999.00,"手机",200),(2,"小米14",3999.00,"手机",150),(3,"美的电饭煲",599.00,"家电",80);-更新手机分类商品价格UPDATEgoodsSETprice=price*0.9WHEREcategory='手机';```三、简单应用题(共30分)题目:sales数据库中还存在用户表user和订单表orders,结构如下:user(user_idINTPRIMARYKEY,usernameVARCHAR(20)NOTNULL,phoneVARCHAR(11),create_timeDATETIME);orders(order_idINTPRIMARYKEYAUTO_INCREMENT,user_idINT,goods_idINT,order_amountDECIMAL(10,2),order_timeDATETIME,FOREIGNKEY(user_id)REFERENCESuser(user_id),FOREIGNKEY(goods_id)REFERENCESgoods(goods_id));三个表中已经存入测试数据,请完成以下查询操作:1.查询所有“家电”分类的商品信息,结果仅显示商品名称、价格、库存,按照价格从高到低排序。2.统计每个商品分类的商品数量和总库存,结果显示分类名称、商品数量、总库存,仅显示商品数量大于1的分类。3.查询每个下单用户的用户名、订单总数、订单总金额,结果按照订单总金额降序排序。简单应用题参考解答```sql-1.查询家电分类商品SELECTgoods_nameAS商品名称,priceAS价格,stockAS库存FROMgoodsWHEREcategory='家电'ORDERBYpriceDESC;-2.统计分类商品信息SELECTcategoryAS分类名称,COUNT(goods_id)AS商品数量,SUM(stock)AS总库存FROMgoodsGROUPBYcategoryHAVINGCOUNT(goods_id)>1;-3.统计用户订单信息SELECTu.usernameAS用户名,COUNT(o.order_id)AS订单总数,SUM(o.order_amount)AS订单总金额FROMuseruLEFTJOINordersoONu.user_id=o.user_idGROUPBYu.user_id,u.usernameORDERBY订单总金额DESC;```说明:使用左连接可以保留没有订单的用户信息,符合实际业务需求,若使用内连接会过滤掉无订单用户,结果不符合完整性要求。四、综合应用题(共20分)题目:请在sales数据库中完成以下开发操作:1.创建存储过程pro_count_stock,输入参数为分类名称in_category,输出参数为该分类的总库存out_total_stock,实现功能:统计指定分类商品的总库存,并将结果赋值给输出参数。2.创建库存日志表stock_log,结构为:log_idINT主键自增,goods_idINT,old_stockINT,new_stockINT,change_timeDATETIME;再创建触发器trig_after_update_stock,当goods表的库存发生更新后,自动将修改信息插入stock_log表,自动记录修改时间。3.创建视图view_goods_order,查询每个商品的商品名称、分类、累计订单数量,仅

温馨提示

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

评论

0/150

提交评论