SQL期末考试试题及详细参考答案_第1页
SQL期末考试试题及详细参考答案_第2页
SQL期末考试试题及详细参考答案_第3页
SQL期末考试试题及详细参考答案_第4页
SQL期末考试试题及详细参考答案_第5页
全文预览已结束

下载本文档

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

文档简介

SQL期末考试试题及详细参考答案考试说明:满分100分,考试时长90分钟,题型包含选择题、填空题、简答题、SQL实操题,所有题目基于标准MySQL语法,无特殊拓展语法,适配基础SQL学习考核。一、单项选择题(每题2分,共20分)1.在SQL中,用于查询数据表数据的核心关键字是()A.INSERTB.SELECTC.UPDATED.DELETE2.以下语句中,能够实现对查询结果去重的关键字是()A.UNIQUEB.DISTINCTC.LIMITD.ORDERBY3.WHERE子句的作用是()A.分组统计数据B.排序查询结果C.筛选查询条件D.限制查询条数4.若需要模糊查询字段中包含“张”的所有数据,正确的匹配符是()A.=B.LIKEC.IND.BETWEEN5.排序关键字ORDERBY默认的排序方式是()A.升序ASCB.降序DESCC.随机排序D.自定义排序6.以下不属于SQL数据操纵语言(DML)的是()A.SELECTB.CREATEC.INSERTD.UPDATE7.用于统计数据表中数据总行数的聚合函数是()A.SUM()B.AVG()C.COUNT()D.MAX()8.分组查询必须使用的关键字是()A.GROUPBYB.HAVINGC.WHERED.DISTINCT9.能够实现两张数据表关联查询的关键字是()A.JOINB.UNIONC.CONCATD.CASE10.删除数据表中所有数据且不删除表结构的语句是()A.DROPTABLEB.DELETEC.TRUNCATED.REMOVE二、填空题(每空2分,共20分)1.SQL语句中,用于插入新数据的关键字是________。2.修改数据表已有数据的关键字是________。3.约束中,________约束用于保证字段值唯一且非空,作为数据表的唯一标识。4.查询结果排序时,降序需要使用________关键字。5.HAVING子句用于对________后的分组数据进行条件筛选。6.多条件查询中,表示“并且”的逻辑运算符是________,表示“或者”的是________。7.模糊查询中,________通配符代表任意多个字符,________代表单个任意字符。8.用于获取查询结果前N条数据的关键字是________。三、简答题(每题5分,共20分)1.简述WHERE子句和HAVING子句的核心区别。2.简述INNERJOIN和LEFTJOIN的查询区别。3.说明DELETE和TRUNCATE删除数据的主要差异。4.简述聚合函数使用时,GROUPBY的使用规范。四、SQL实操题(每题10分,共40分)基础数据表说明:学生表student(s_id学生主键,s_name学生姓名,s_age年龄,s_gender性别,s_class班级)成绩表score(sc_id主键,s_id学生编号,subject科目,score分数)所有字段均为常规字符、数值类型,无特殊约束,根据需求编写标准SQL语句。1.查询所有班级为“高一1班”的学生信息,按年龄升序排序。2.查询所有学生的姓名、科目、分数,关联学生表和成绩表,保留所有学生信息(无成绩则显示为空)。3.统计每个学生的总成绩、平均成绩,显示学生姓名、总成绩、平均成绩,保留小数点1位。4.将分数低于60分的成绩数据统一修改为60分,并查询修改后的所有不及格临界成绩数据。参考答案及详细解析一、单项选择题答案及解析1.B解析:SELECT为SQL查询核心关键字,INSERT用于插入数据,UPDATE用于修改数据,DELETE用于删除数据。2.B解析:DISTINCT关键字用于去除查询结果中的重复数据;UNIQUE为字段约束,不用于查询去重。3.C解析:WHERE用于单行数据条件筛选,GROUPBY用于分组,ORDERBY用于排序,LIMIT用于限制条数。4.B解析:LIKE搭配通配符实现模糊查询,=为精准查询,IN用于枚举范围查询,BETWEEN用于区间查询。5.A解析:ORDERBY默认升序(ASC),手动指定DESC为降序排序。6.B解析:CREATE属于数据定义语言(DDL),用于创建表、数据库;SELECT、INSERT、UPDATE均为数据操纵语言(DML)。7.C解析:COUNT()统计行数,SUM()求和,AVG()求平均值,MAX()求最大值。8.A解析:GROUPBY是分组查询的必备关键字,HAVING是分组后的条件筛选关键字,不能单独使用。9.A解析:JOIN用于多表关联查询,UNION用于合并多个查询结果,CONCAT用于字符串拼接。10.C解析:TRUNCATE清空表所有数据,保留表结构;DELETE可删除指定或全部数据,DROP直接删除整张表。二、填空题答案1.INSERT2.UPDATE3.主键(PRIMARYKEY)4.DESC5.分组(GROUPBY)6.AND、OR7.%、_8.LIMIT三、简答题详细答案1.WHERE与HAVING的核心区别(1)筛选时机不同:WHERE是分组前对原始单行数据进行筛选,先过滤数据,再分组统计;HAVING是分组后对分组统计结果进行筛选,先分组,再过滤分组数据。(2)适用范围不同:WHERE不能使用聚合函数(SUM、COUNT等);HAVING专门用于筛选聚合函数统计后的结果,支持聚合函数。(3)执行顺序不同:WHERE优先执行,GROUPBY次之,HAVING最后执行。2.INNERJOIN和LEFTJOIN的查询区别(1)INNERJOIN(内连接):只查询两张表中匹配成功的数据,两张表无对应匹配的数据会被过滤,不展示。(2)LEFTJOIN(左连接):以左表为基准,展示左表所有数据,右表匹配不到的数据显示为空值,保证左表数据完整。3.DELETE和TRUNCATE的主要差异(1)删除范围:DELETE可通过WHERE条件删除指定数据,无条件时删除全表数据;TRUNCATE只能清空整张表所有数据,无法指定条件。(2)日志记录:DELETE删除数据会记录日志,支持事务回滚;TRUNCATE不记录详细日志,无法回滚。(3)自增主键:DELETE删除数据后,自增主键数值会延续原有数值;TRUNCATE清空表后,自增主键会重置为初始值。(4)执行效率:TRUNCATE清空数据效率远高于DELETE。4.GROUPBY的使用规范(1)查询字段中,非聚合函数字段必须出现在GROUPBY分组字段中,否则语句报错。(2)GROUPBY执行顺序在WHERE之后、HAVING、ORDERBY之前。(3)支持多字段分组,分组优先级从左到右依次执行。(4)仅对分组后的数据集生效,单独使用无意义,常与聚合函数搭配使用。四、SQL实操题标准答案及解析1.查询高一1班学生信息,按年龄升序排序sql

SELECT*FROMstudentWHEREs_class='高一1班'ORDERBYs_ageASC;解析:WHERE筛选班级条件,ORDERBYs_ageASC按年龄升序,ASC可省略,默认升序。2.关联查询学生姓名、科目、分数,保留所有学生信息sql

SELECTs.s_name,sc.subject,sc.score

FROMstudents

LEFTJOINscorescONs.s_id=sc.s_id;解析:以学生表为左表,左连接成绩表,保证所有学生数据展示,无成绩字段自动显示NULL。3.统计学生总成绩、平均成绩(保留1位小数)sql

SELECTs.s_name,

ROUND(SUM(sc.score),1)AStotal_score,

ROUND(AVG(sc.score),1)ASavg_score

FROMstudents

LEFTJOINscorescONs.s_id=sc.s_id

GROUPBYs.s_id,s.s_name;解析:SUM求和、AVG求平均,ROUND保留1位小数;按学生编号、姓名分组,保证每个学生单独统计。4.不及格分数统一改为60分,并查询修改后临界数据sql

--修改数据

UPDATEscoreSETscore=60WHEREscore<60;

--查询修改后的临界成绩数据

SELE

温馨提示

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

评论

0/150

提交评论