MySQL期末考试试题及详细答案_第1页
MySQL期末考试试题及详细答案_第2页
MySQL期末考试试题及详细答案_第3页
MySQL期末考试试题及详细答案_第4页
MySQL期末考试试题及详细答案_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

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

文档简介

MySQL期末考试试题及详细答案考试说明:满分100分,考试时间90分钟,题型包含选择题、填空题、简答题、实操编程题,所有答案均写在答题区域内。一、单项选择题(每题2分,共20分)1.以下不属于MySQL数据库核心特点的是()A.开源免费B.跨平台C.非关系型数据库D.支持多线程2.MySQL中,用于创建数据库的关键字是()A.CREATETABLEB.CREATEDATABASEC.ADDDATABASED.MAKEDB3.以下哪种数据类型适合存储身份证号(18位)()A.INTB.VARCHAR(18)C.CHAR(18)D.FLOAT4.在SELECT查询语句中,用于去除重复数据的关键字是()A.UNIQUEB.DISTINCTC.LIMITD.ORDERBY5.下列关于主键(PRIMARYKEY)的说法正确的是()A.主键可以为空值B.一张表可以设置多个主键C.主键值必须唯一且非空D.主键字段必须是数值类型6.MySQL中,用于模糊查询匹配任意长度字符的通配符是()A._B.%C.*D.?7.以下语句中,能够实现更新表中数据的是()A.INSERTB.UPDATEC.ALTERD.SELECT8.分组查询必须使用的关键字是()A.WHEREB.GROUPBYC.HAVINGD.SORTBY9.用于删除表中所有数据且不删除表结构的语句是()A.DROPTABLEB.DELETEFROMC.TRUNCATED.REMOVE10.多表查询中,内连接的关键字是()A.LEFTJOINB.RIGHTJOINC.INNERJOIND.FULLJOIN二、填空题(每空2分,共20分)1.MySQL中,查看所有数据库的命令是__________。2.使用__________语句可以选择指定数据库,后续操作均针对该数据库生效。3.约束中,__________约束用于限制字段值不重复,允许为空。4.在查询语句中,__________关键字用于限制查询结果的条数。5.排序查询中,__________代表升序,__________代表降序。6.聚合函数中,__________用于统计记录条数,__________用于求字段平均值。7.MySQL中,事务的四大特性简称__________。8.子查询分为标量子查询、行子查询和__________子查询。三、简答题(每题6分,共30分)1.简述CHAR和VARCHAR数据类型的区别及适用场景。2.简述WHERE和HAVING子句的区别。3.简述主键、唯一索引、普通索引的区别。4.简述DELETE和TRUNCATE删除数据的区别。5.简述MySQL事务的四大特性(ACID)具体含义。四、实操编程题(共30分)已知需求:创建学生数据库stu_db,库中包含学生表student、成绩表score,表结构要求如下,完成对应SQL语句编写。student学生表结构:学号stu_id(主键、自增、int)、姓名stu_name(非空、varchar(20))、性别stu_gender(char(2))、年龄stu_age(int)、班级stu_class(varchar(30))score成绩表结构:成绩idsc_id(主键、自增、int)、学号stu_id(外键,关联学生表学号)、科目subject(varchar(20))、成绩score(float)1.编写SQL语句,创建数据库stu_db并选用该数据库。(5分)2.编写SQL语句,创建student学生表和score成绩表,完善主键、外键、非空等约束。(10分)3.向student表插入3条学生数据,向score表插入对应学生的科目成绩数据。(5分)4.查询所有学生的姓名、班级、对应科目及成绩,关联两张表展示数据。(5分)5.统计每个班级的学生平均年龄,按平均年龄降序排序。(5分)参考答案及详细解析一、单项选择题答案及解析1.C解析:MySQL是典型的关系型数据库(RDBMS),非关系型数据库代表为MongoDB、Redis等。2.B解析:CREATEDATABASE为创建数据库标准语句,CREATETABLE用于创建数据表。3.C解析:身份证号固定18位,CHAR固定长度类型存储效率更高;VARCHAR适用于长度不固定的字符串,INT无法存储带X的身份证号。4.B解析:DISTINCT用于去除查询结果重复行,UNIQUE是字段约束,LIMIT限制条数,ORDERBY用于排序。5.C解析:主键唯一、非空,一张表只能有一个主键,主键字段可以是字符、数值等多种类型。6.B解析:%匹配任意长度任意字符,_匹配单个任意字符。7.B解析:UPDATE用于更新表数据,INSERT插入数据,ALTER修改表结构,SELECT查询数据。8.B解析:GROUPBY为分组查询核心关键字,HAVING用于分组后条件筛选。9.C解析:TRUNCATE清空表所有数据,保留表结构;DROP删除整张表(结构+数据);DELETE可删除指定条件数据,也可清空全表。10.C解析:INNERJOIN为内连接,取两表交集数据;LEFTJOIN左连接,RIGHTJOIN右连接。二、填空题答案1.SHOWDATABASES;2.USE数据库名;3.UNIQUE(唯一)4.LIMIT5.ASC、DESC6.COUNT()、AVG()7.ACID8.表三、简答题详细答案1.CHAR和VARCHAR的区别及适用场景(1)存储方式:CHAR是固定长度字符类型,定义长度后,无论存储数据长短,都会占用固定字节空间;VARCHAR是可变长度类型,仅占用数据实际长度空间,额外占用1-2字节记录长度。(2)效率:CHAR查询、存储效率更高,无多余空间开销;VARCHAR会存在少量空间损耗和解析开销。(3)适用场景:CHAR适用于固定长度数据,如手机号、身份证号、性别、邮编;VARCHAR适用于长度不固定的字符串,如姓名、地址、备注、文章内容。2.WHERE和HAVING子句的区别(1)筛选时机:WHERE是分组之前筛选原始数据;HAVING是分组之后筛选分组后的结果数据。(2)适用范围:WHERE不能使用聚合函数(COUNT、AVG等);HAVING支持使用聚合函数。(3)执行顺序:WHERE筛选原始数据→GROUPBY分组→HAVING筛选分组结果。(4)优先级:WHERE优先级高于HAVING,能提前过滤的数据优先用WHERE,减少分组数据量,提升查询效率。3.主键、唯一索引、普通索引的区别(1)主键(PRIMARYKEY):一张表仅有一个主键,字段值唯一且非空,默认自带索引,是数据表的唯一标识,常用于关联外键。(2)唯一索引(UNIQUE):一张表可以创建多个唯一索引,字段值唯一但允许为空,主要用于保证字段数据不重复,提升查询速度。(3)普通索引(INDEX):最基础的索引类型,无唯一性、非空限制,仅用于优化查询效率,适用于高频查询、低频修改的字段。4.DELETE和TRUNCATE删除数据的区别(1)删除范围:DELETE可通过WHERE条件删除指定数据,不加WHERE时删除全表数据;TRUNCATE只能清空整张表所有数据,无法条件删除。(2)自增主键:DELETE删除数据后,自增主键值不会重置,后续新增数据延续原有序号;TRUNCATE清空数据后,自增主键重置从1开始。(3)事务支持:DELETE属于DML语句,支持事务回滚;TRUNCATE属于DDL语句,不支持事务,删除后数据不可恢复。(4)执行效率:TRUNCATE直接清空数据表,效率远高于DELETE逐行删除。5.事务ACID四大特性含义(1)原子性(Atomicity):事务是最小执行单元,要么全部执行成功,要么全部执行失败回滚,不存在部分执行的情况。(2)一致性(Consistency):事务执行前后,数据库数据完整性、约束规则保持一致,不会出现数据错乱、违规数据。(3)隔离性(Isolation):多个事务并发执行时,相互独立互不干扰,数据库通过隔离级别控制事务并发冲突。(4)持久性(Durability):事务提交成功后,数据会永久写入数据库,即使系统崩溃、重启,数据也不会丢失。四、实操编程题标准答案(可直接执行)1.创建并选用数据库sql

--创建数据库

CREATEDATABASEIFNOTEXISTSstu_dbDEFAULTCHARACTERSETutf8mb4;

--选用数据库

USEstu_db;2.创建学生表、成绩表(含约束、外键)sql

--创建学生表

CREATETABLEstudent(

stu_idINTPRIMARYKEYAUTO_INCREMENTCOMMENT'学号',

stu_nameVARCHAR(20)NOTNULLCOMMENT'姓名',

stu_genderCHAR(2)COMMENT'性别',

stu_ageINTCOMMENT'年龄',

stu_classVARCHAR(30)COMMENT'班级'

)ENGINE=INNODBDEFAULTCHARSET=utf8mb4COMMENT='学生信息表';

--创建成绩表

CREATETABLEscore(

sc_idINTPRIMARYKEYAUTO_INCREMENTCOMMENT'成绩ID',

stu_idINTCOMMENT'学号',

subjectVARCHAR(20)COMMENT'科目',

scoreFLOATCOMMENT'成绩',

--设置外键,关联学生表学号

FOREIGNKEY(stu_id)REFERENCESstudent(stu_id)

)ENGINE=INNODBDEFAULTCHARSET=utf8mb4COMMENT='学生成绩表';3.插入测试数据sql

--插入学生数据

INSERTINTOstudent(stu_name,stu_gender,stu_age,stu_class)

VALUES

('张三','男',18,'高一1班'),

('李四','女',17,'高一1班'),

('王五','男',18,'高一2班');

--插入成绩数据

INSERTINTOscore(stu_id,subject,score)

VALUES

(1,'语文',92.5),

(1,'数学',88),

(2,'语文',95),

(2,'数学',90),

(3,'语文',85),

(3,'数学',96);4.联表查询学生及成绩信息sql

SELECTs.stu_name,s.stu_class,sc.subject,sc.score

FROMstudents

INNERJOINscorescONs.stu_id=sc.stu_id

ORDERBYs.stu_i

温馨提示

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

评论

0/150

提交评论