2025年《MySQL数据库应用》期末考试复习题库资料及答案_第1页
2025年《MySQL数据库应用》期末考试复习题库资料及答案_第2页
2025年《MySQL数据库应用》期末考试复习题库资料及答案_第3页
2025年《MySQL数据库应用》期末考试复习题库资料及答案_第4页
2025年《MySQL数据库应用》期末考试复习题库资料及答案_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

2025年《MySQL数据库应用》期末考试复习题库资料及答案一、单项选择题1.以下关于MySQL存储引擎的描述,错误的是()A.InnoDB支持事务和行级锁B.MyISAM不支持外键约束C.InnoDB默认的索引类型是哈希索引D.Memory引擎数据存储在内存中,重启后数据丢失答案:C2.若要限制用户表中“手机号”字段只能为11位数字,应使用的约束是()A.PRIMARYKEYB.UNIQUEC.CHECK(LENGTH(手机号)=11AND手机号REGEXP'^[0-9]+$')D.FOREIGNKEY答案:C3.事务的“原子性”指的是()A.事务一旦提交,其结果不可撤销B.事务执行过程中不受其他事务干扰C.事务中的操作要么全部完成,要么全部不完成D.事务处理的数据满足数据库完整性约束答案:C4.执行“EXPLAINSELECTFROMordersWHEREuser_id=1001”后,输出结果中“type”列的值为“ref”,说明()A.全表扫描B.使用索引查找单个行C.使用索引范围扫描D.通过索引匹配到多个行答案:D5.以下关于视图的描述,正确的是()A.视图可以直接存储数据B.删除基表时,视图会自动删除C.对视图的更新操作一定能同步到基表D.视图可以简化复杂查询答案:D6.若要为“product”表的“price”字段创建降序索引,正确的SQL语句是()A.CREATEINDEXidx_priceONproduct(priceDESC)B.CREATEINDEXidx_priceONproduct(price)DESCC.CREATEINDEXidx_priceDESCONproduct(price)D.CREATEINDEXidx_priceONproduct(DESCprice)答案:A7.以下关于存储过程的描述,错误的是()A.存储过程可以包含逻辑控制语句(如IF、WHILE)B.存储过程执行效率通常高于单独的SQL语句C.存储过程不能接收参数D.存储过程可以减少网络传输量答案:C8.若“student”表包含“id(主键)”“name”“age”字段,执行“DELETEFROMstudent”与“TRUNCATETABLEstudent”的主要区别是()A.DELETE会记录日志,TRUNCATE不记录B.DELETE可以回滚,TRUNCATE不能C.DELETE删除全部数据,TRUNCATE删除表结构D.DELETE释放表空间,TRUNCATE不释放答案:B9.数据库发生崩溃后,InnoDB通过()机制恢复未提交的事务。A.二进制日志(binlog)B.重做日志(redolog)C.慢查询日志(slowquerylog)D.错误日志(errorlog)答案:B10.以下哪种场景最适合使用分区表?()A.表数据量小,但查询频繁B.表数据按时间范围(如年月)定期归档C.表需要支持高并发写入D.表字段较多,需要减少I/O答案:B二、填空题1.MySQL中,使用______语句修改表结构(如添加字段)。答案:ALTERTABLE2.事务的隔离级别中,“可重复读”是InnoDB的默认级别,其通过______机制避免不可重复读问题。答案:MVCC(多版本并发控制)3.若要查询“order”表中2023年1月1日以后下单的记录,WHERE子句应写为______。答案:order_time>='2023-01-0100:00:00'4.索引的类型中,______索引允许键值重复,而______索引不允许。答案:普通;唯一5.存储引擎InnoDB的默认事务隔离级别是______。答案:可重复读(REPEATABLEREAD)6.若要统计“employee”表中各部门的平均工资,应使用______子句。答案:GROUPBYdepartment_id7.MySQL中,用于备份数据库的命令是______(写出工具名)。答案:mysqldump8.视图是一个虚拟表,其数据来源于______。答案:基表(或真实表)9.执行“SELECTCOUNT()FROMtable”时,若表无索引,COUNT()会扫描______。答案:全表10.事务的四个特性(ACID)是原子性、一致性、隔离性和______。答案:持久性三、简答题1.简述索引的作用及可能的缺点。答案:索引的作用:加速数据查询,减少全表扫描的I/O消耗;支持唯一性约束(如主键索引);优化连接查询性能。缺点:增加存储开销(索引需要额外空间);写入、更新操作变慢(需同步更新索引);过多索引可能导致查询优化器选择错误索引,反而降低性能。2.说明事务的四种隔离级别及其区别。答案:①读未提交(READUNCOMMITTED):允许读取其他事务未提交的数据(脏读)。②读已提交(READCOMMITTED):只能读取已提交的数据,避免脏读,但可能出现不可重复读。③可重复读(REPEATABLEREAD):同一事务内多次读取结果一致,避免不可重复读(InnoDB默认),但可能出现幻读。④串行化(SERIALIZABLE):事务串行执行,避免所有并发问题(脏读、不可重复读、幻读),但性能最低。3.视图与表的主要区别有哪些?答案:①存储方式:表实际存储数据,视图不存储数据(依赖基表);②更新限制:对视图的更新可能受限于定义逻辑(如多表连接视图可能无法直接更新);③结构依赖:删除基表时视图会失效,表删除不影响其他表;④用途:视图用于简化查询、控制数据访问,表用于存储核心数据。4.简述慢查询的常见原因及优化方法。答案:常见原因:缺少索引或索引失效(如对函数列、表达式查询);查询条件不合理(如全表扫描);锁竞争(其他事务阻塞);服务器硬件性能不足。优化方法:为高频查询字段添加索引(避免冗余索引);重写查询语句(如避免SELECT,使用JOIN代替子查询);分析执行计划(EXPLAIN)定位慢查询点;调整数据库配置(如增大缓冲池大小);分表或分区处理大表。5.说明InnoDB与MyISAM引擎的主要差异(至少4点)。答案:①事务支持:InnoDB支持事务,MyISAM不支持;②锁机制:InnoDB支持行级锁,MyISAM仅支持表级锁;③外键约束:InnoDB支持,MyISAM不支持;④崩溃恢复:InnoDB通过redolog自动恢复,MyISAM需手动修复;⑤统计COUNT():MyISAM直接读取元数据(快),InnoDB需扫描(可通过近似值优化);⑥存储结构:InnoDB数据和索引存储在ibdata文件或独立表空间,MyISAM存储为.MYD(数据)、.MYI(索引)文件。四、操作题(根据以下场景编写SQL语句)场景:某电商公司数据库包含以下表:-用户表(user):user_id(主键,INT)、username(VARCHAR(50))、reg_time(DATETIME,注册时间)-订单表(order):order_id(主键,INT)、user_id(INT,外键关联user.user_id)、order_amount(DECIMAL(10,2),订单金额)、order_time(DATETIME,下单时间)-订单详情表(order_item):item_id(主键,INT)、order_id(INT,外键关联order.order_id)、product_id(INT,商品ID)、quantity(INT,购买数量)1.创建订单表,要求:-user_id字段设置为外键,级联删除(当用户删除时,订单自动删除);-order_amount字段非空;-为order_time字段添加普通索引。答案:CREATETABLEorder(order_idINTPRIMARYKEYAUTO_INCREMENT,user_idINTNOTNULL,order_amountDECIMAL(10,2)NOTNULL,order_timeDATETIME,FOREIGNKEY(user_id)REFERENCESuser(user_id)ONDELETECASCADE,INDEXidx_order_time(order_time));2.查询2023年注册的用户中,下单金额超过5000元的用户ID、用户名及总金额(总金额按user_id分组)。答案:SELECTu.user_id,u.username,SUM(o.order_amount)AStotal_amountFROMuseruJOINorderoONu.user_id=o.user_idWHEREu.reg_timeBETWEEN'2023-01-0100:00:00'AND'2023-12-3123:59:59'GROUPBYu.user_id,u.usernameHAVINGSUM(o.order_amount)>5000;3.在订单详情表中,查询购买数量最多的前10个商品(按quantity总和排序)。答案:SELECTproduct_id,SUM(quantity)AStotal_quantityFROMorder_itemGROUPBYproduct_idORDERBYtotal_quantityDESCLIMIT10;4.为user表添加“last_login_time”字段(DATETIME类型,允许NULL)。答案:ALTERTABLEuserADDCOLUMNlast_login_timeDATETIME;5.开启一个事务,将用户ID为1001的用户的注册时间修改为“2023-01-1508:00:00”,并提交事务。答案:STARTTRANSACTION;UPDATEuserSETreg_time='2023-01-1508:00:00'WHEREuser_id=1001;COMMIT;五、综合题需求:设计一个小型“图书管理系统”数据库,包含以下功能:-记录图书信息(书名、作者、ISBN、出版时间、库存数量);-记录读者信息(姓名、手机号、注册时间);-记录图书借阅信息(读者、图书、借出时间、应还时间、实际归还时间)。1.画出E-R图(文字描述即可)。答案:实体包括“图书”“读者”“借阅记录”。图书属性:图书ID(主键)、书名、作者、ISBN、出版时间、库存数量;读者属性:读者ID(主键)、姓名、手机号、注册时间;借阅记录属性:记录ID(主键)、图书ID(外键)、读者ID(外键)、借出时间、应还时间、实际归还时间。关系:图书与借阅记录是一对多(一本图书可被多次借阅),读者与借阅记录是一对多(一个读者可借阅多本图书)。2.写出各表的CREATETABLE语句(包含必要约束)。答案:--图书表CREATETABLEbook(book_idINTPRIMARYKEYAUTO_INCREMENT,titleVARCHAR(200)NOTNULL,authorVARCHAR(100)NOTNULL,isbnVARCHAR(13)UNIQUENOTNULL,--ISBN唯一publish_timeDATE,stockINTNOTNULLDEFAULT0CHECK(stock>=0));--读者表CREATETABLEreader(reader_idINTPRIMARYKEYAUTO_INCREMENT,nameVARCHAR(50)NOTNULL,phoneVARCHAR(11)UNIQUENOTNULL,--手机号唯一reg_timeDATETIMENOTNULL);--借阅记录表CREATETABLEborrow_record(record_idINTPRIMARYKEYAUTO_INCREMENT,book_idINTNOTNULL,reader_idINTNOTNULL,borrow_timeDATETIMENOTNULL,due_timeDATETIMENOTNULL,--应还时间return_timeDATETIME,--实际归还时间(未归还时为NULL)FOREIGNKEY(book_id)REFERENCESbook(book_id)ONDELETECASCADE,FOREIGN

温馨提示

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

评论

0/150

提交评论