SQL期末考试试卷(含详细答案解析)_第1页
SQL期末考试试卷(含详细答案解析)_第2页
SQL期末考试试卷(含详细答案解析)_第3页
SQL期末考试试卷(含详细答案解析)_第4页
SQL期末考试试卷(含详细答案解析)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

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

文档简介

SQL期末考试试卷(含详细答案解析)考试时长:90分钟满分:100分适用专业:计算机、大数据、信息管理等相关专业考试说明:本试卷分为选择题、填空题、简答题、SQL实操题四个部分,所有题目基于标准MySQL语法,无特殊拓展语法,适合期末统考使用。一、单项选择题(共15题,每题2分,共30分)每题只有一个正确答案,请选择最优选项1.在SQL中,用于查询数据表数据的核心语句是()A.INSERTB.SELECTC.UPDATED.DELETE2.以下哪个关键字可以去除查询结果中的重复数据()A.UNIQUEB.DISTINCTC.LIMITD.ORDERBY3.SQL中,用于条件筛选的关键字是()A.GROUPBYB.HAVINGC.WHERED.SORTBY4.想要对查询结果进行升序排序,使用的关键字是()A.DESCB.ASCC.INCREASED.UP5.以下不属于SQL聚合函数的是()A.SUM()B.COUNT()C.IF()D.AVG()6.用于统计表中数据总行数的函数是()A.COUNT(*)B.SUM()C.MAX()D.MIN()7.在模糊查询中,匹配任意长度任意字符的通配符是()A._B.%C.*D.?8.以下语句中,可以实现向数据表插入新数据的是()A.ADDB.INSERTINTOC.CREATED.ALTER9.修改数据表中已有数据的SQL关键字是()A.MODIFYB.UPDATEC.CHANGED.EDIT10.删除数据表中所有数据,但保留表结构的语句是()A.DROPTABLEB.DELETEC.TRUNCATED.REMOVE11.分组查询中,用于筛选分组后数据的关键字是()A.WHEREB.HAVINGC.IFD.CASE12.以下哪个约束可以保证字段值唯一且非空()A.PRIMARYKEYB.UNIQUEC.NOTNULLD.DEFAULT13.限制查询结果返回指定条数数据的关键字是()A.TOPB.LIMITC.MAXD.SIZE14.内连接查询的关键字是()A.LEFTJOINB.RIGHTJOINC.INNERJOIND.FULLJOIN15.创建数据表的SQL语句是()A.CREATEDATABASEB.CREATETABLEC.ALTERTABLED.MAKETABLE二、填空题(共10空,每空2分,共20分)1.SQL语句中,__________关键字用于对查询结果进行分组。2.模糊查询中,下划线「_」的作用是匹配__________。3.求字段最大值的聚合函数是__________,求平均值的聚合函数是__________。4.左连接查询会保留__________表的所有数据,匹配右表对应数据。5.修改数据表结构使用__________语句,删除数据表使用__________语句。6.为字段设置默认值的约束关键字是__________。7.SQL中,__________语句用于撤销事务,__________语句用于提交事务。三、简答题(共3题,每题5分,共15分)1.简述WHERE和HAVING关键字的区别。2.简述DELETE和TRUNCATE语句的区别。3.简述主键约束(PRIMARYKEY)和唯一约束(UNIQUE)的区别。四、SQL实操题(共3题,第1题10分,第2题15分,第3题10分,共35分)基础数据表说明学生表(student):学生编号sid、学生姓名sname、性别gender、年龄age、班级class、入学分数score成绩表(score):编号id、学生编号sid、科目subject、成绩grade所有字段类型均为常规类型,无特殊约束,可直接编写语句1.基础查询:根据学生表student,编写SQL语句实现以下需求(1)查询所有班级为「计算机1班」的学生信息(5分)(2)查询年龄大于18岁、入学分数大于500分的学生姓名和分数(5分)2.进阶查询:结合学生表和成绩表,编写SQL语句实现以下需求(1)查询所有学生的姓名、科目、对应成绩(左连接查询)(5分)(2)统计每个学生的总成绩,显示学生姓名和总成绩(5分)(3)查询平均分大于80分的学生姓名(5分)3.数据操作与排序分组:编写SQL语句实现以下需求(1)向学生表插入一条数据:sid=1001,sname=张三,gender=男,age=19,class=计算机2班,score=520(5分)(2)将所有计算机1班学生的入学分数统一增加10分(5分)参考答案及详细解析一、单项选择题答案及解析1.B解析:SELECT为数据查询语句,INSERT为插入、UPDATE为修改、DELETE为删除。2.B解析:DISTINCT用于去除查询结果重复值,LIMIT限制条数,ORDERBY用于排序。3.C解析:WHERE用于普通条件筛选,GROUPBY用于分组,HAVING用于分组后条件筛选。4.B解析:ASC为升序(默认),DESC为降序,无INCREASE、UP排序关键字。5.C解析:IF()为条件判断函数,不属于聚合函数;SUM求和、COUNT统计数量、AVG求平均均为聚合函数。6.A解析:COUNT(*)统计表总行数,COUNT(字段)统计字段非空数据行数。7.B解析:%匹配任意长度字符,_匹配单个任意字符。8.B解析:INSERTINTO用于插入数据,CREATE创建表/数据库,ALTER修改表结构。9.B解析:UPDATE语句用于更新数据表已有数据。10.C解析:TRUNCATE清空表数据、保留表结构;DROP删除整张表(含结构),DELETE可条件删除数据。11.B解析:WHERE筛选分组前数据,HAVING筛选分组后的聚合结果数据。12.A解析:主键约束默认唯一且非空;UNIQUE仅保证唯一,允许为空;NOTNULL仅保证非空。13.B解析:MySQL使用LIMIT限制查询条数,SQLServer使用TOP。14.C解析:INNERJOIN为内连接,LEFTJOIN左连接,RIGHTJOIN右连接。15.B解析:CREATETABLE创建数据表,CREATEDATABASE创建数据库。二、填空题答案及解析1.GROUPBY解析:分组查询专用关键字,配合聚合函数使用。2.单个任意字符解析:_匹配单个字符,%匹配任意多个字符。3.MAX()、AVG()解析:MAX取最大值,MIN取最小值,AVG计算平均值。4.左(主)解析:左连接以左表为基准,保留左表所有数据,右表无匹配数据显示NULL。5.ALTERTABLE、DROPTABLE解析:ALTER修改表结构,DROP删除数据表。6.DEFAULT解析:DEFAULT约束用于为字段设置默认值。7.ROLLBACK、COMMIT解析:事务回滚用ROLLBACK,事务提交用COMMIT。三、简答题详细答案1.WHERE和HAVING的区别(1)执行顺序不同:WHERE是在数据分组、聚合计算之前进行条件筛选;HAVING是在数据分组、聚合计算完成后进行筛选。(2)使用范围不同:WHERE不能使用聚合函数(SUM、COUNT、AVG等);HAVING可以使用聚合函数。(3)作用对象不同:WHERE针对表中的原始数据行筛选;HAVING针对分组后的结果集筛选。2.DELETE和TRUNCATE的区别(1)删除范围不同:DELETE可以带WHERE条件,删除指定数据;TRUNCATE直接清空整张表所有数据,无法条件删除。(2)效率不同:TRUNCATE删除速度更快,不会记录单行数据日志;DELETE会逐行记录日志,效率较低。(3)事务支持不同:DELETE支持事务回滚;TRUNCATE不支持事务回滚。(4)自增列不同:TRUNCATE会重置表的自增主键;DELETE删除数据后,自增主键不会重置。3.主键约束和唯一约束的区别(1)空值限制不同:主键字段不允许为空;唯一约束字段允许为空(仅一个空值)。(2)数量限制不同:一张数据表只能有一个主键;一张表可以设置多个唯一约束。(3)索引特性不同:主键默认创建聚集索引;唯一约束默认创建非聚集索引。四、SQL实操题详细答案及解析1.基础查询题(1)查询所有计算机1班学生信息sql

SELECT*FROMstudentWHEREclass='计算机1班';解析:*代表查询所有字段,WHERE精准匹配班级条件。(2)查询年龄大于18岁、入学分数大于500分的学生姓名和分数sql

SELECTsname,scoreFROMstudentWHEREage>18ANDscore>500;解析:多条件同时满足使用AND关键字,仅查询指定字段提升查询效率。2.进阶联表查询题(1)左连接查询学生姓名、科目、成绩sql

SELECTs.sname,sc.subject,sc.grade

FROMstudents

LEFTJOINscorescONs.sid=sc.sid;解析:以学生表为左表,保留所有学生数据,无成绩的学生科目、成绩显示NULL,使用表别名简化语句。(2)统计每个学生总成绩,显示姓名和总成绩sql

SELECTs.sname,SUM(sc.grade)AStotal_score

FROMstudents

LEFTJOINscorescONs.sid=sc.sid

GROUPBYs.sid,s.sname;解析:通过学生编号分组,使用SUM聚合函数求和,AS为结果字段起别名。(3)查询平均分大于80分的学生姓名sql

SELECTs.sname

FROMstudents

JOINscorescONs.sid=sc.sid

GROUPBYs.sid,s.sname

HAVINGAVG(sc.grade)>80;解析:分组后通过HAVING筛选聚合结果,平均分使用AVG函数,不可用WHERE筛选聚合结果。3.数据操作题(1)插入学生数据sql

INSERTINTOstudent(sid,sname,gender,age,class,score)

VALUES(1001,'张三','男',19,'计算机2班',520);解析:指定字段插入数据,字段与值一一对应,字符串类型数据需加单

温馨提示

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

评论

0/150

提交评论