SQL编程基础考核试题(含详细答案解析)_第1页
SQL编程基础考核试题(含详细答案解析)_第2页
SQL编程基础考核试题(含详细答案解析)_第3页
SQL编程基础考核试题(含详细答案解析)_第4页
SQL编程基础考核试题(含详细答案解析)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

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

文档简介

SQL编程基础考核试题(含详细答案解析)适用人群:初学者、在校生、SQL基础岗位入门考核考试说明:满分100分,答题时间90分钟,所有题目基于MySQL通用语法,无特殊函数,适配绝大多数数据库教学场景。试题涉及数据表均为通用业务模拟表,结构简单、贴合日常练习。前置数据表说明(所有题目通用)本次考试所有题目基于以下三张基础数据表,表结构及初始数据如下:1.学生表student(学生ID、姓名、性别、年龄、班级、入学成绩、入学时间)字段:stu_id(主键,int)、stu_name(varchar)、gender(varchar)、age(int)、class_name(varchar)、score(int)、create_time(date)2.课程表course(课程ID、课程名称、授课老师、学分)字段:course_id(主键,int)、course_name(varchar)、teacher(varchar)、credit(int)3.成绩表score_record(成绩ID、学生ID、课程ID、考试分数、考试时间)字段:record_id(主键,int)、stu_id(int)、course_id(int)、exam_score(int)、exam_time(date)一、基础选择题(每题3分,共10题,30分)1.以下哪个关键字可以实现SQL结果集去重?()A.TOPB.DISTINCTC.LIMITD.ORDERBY2.在SELECT查询语句中,筛选分组后数据的关键字是?()A.WHEREB.HAVINGC.GROUPBYD.FILTER3.以下关于NULL值查询说法正确的是?()A.可以用=NULL查询空值B.可以用ISNULL查询空值C.NULL等同于0D.NULL等同于空字符串4.排序关键字中,降序排列的缩写是?()A.ASCB.DESCC.DSCD.SORT5.下列哪个语句可以实现只查询前5条数据?()A.SELECT*FROMstudentTOP5B.SELECT*FROMstudentLIMIT5C.SELECT*FROMstudentORDERBY5D.SELECT*FROMstudentFETCH56.聚合函数COUNT(*)的作用是?()A.统计字段非空数据条数B.统计整张表所有数据行数C.统计唯一数据条数D.统计字段最大值7.多表查询中,INNERJOIN的作用是?()A.左表所有数据匹配右表关联数据B.右表所有数据匹配左表关联数据C.只查询两张表中相互匹配的数据D.拼接两张表所有数据8.以下哪个不属于SQL聚合函数?()A.SUMB.AVGC.IFD.MAX9.修改数据表字段值的关键字是?()A.ALTERB.UPDATEC.MODIFYD.CHANGE10.删除表中所有数据且不删除表结构的语句是?()A.DROPTABLEB.DELETEFROMC.TRUNCATED.REMOVE二、填空题(每题4分,共5题,20分)1.SQL中模糊查询的两个通配符分别是:______(匹配任意多个字符)和______(匹配单个字符)。2.分组查询必须用到的关键字是____________。3.左连接查询的完整关键字是____________。4.计算字段平均值的聚合函数是____________。5.给查询结果起别名的关键字是____________。三、简单编程题(每题6分,共5题,30分)基于上方三张数据表,编写对应SQL语句:1.查询所有学生的全部信息,结果按照年龄升序、入学成绩降序排列。2.查询所有“高一1班”的学生姓名、年龄、入学成绩,筛选出入学成绩大于500分的学生。3.统计student表中男生、女生的人数,展示性别和对应人数。4.查询课程表中,学分大于2分的所有课程名称和授课老师。5.去除重复班级,查询学生表中所有存在的班级名称。四、进阶编程题(每题10分,共2题,20分)1.联表查询:查询所有学生的姓名、所选课程名称、对应考试分数,关联student、course、score_record三张表。2.分组统计查询:统计每门课程的参考人数、最高分、最低分、平均分,过滤掉平均分低于60分的课程。完整答案及详细解析一、选择题答案及解析1.答案:B解析:DISTINCT用于查询结果去重;TOP是SQLServer取前N条数据关键字,LIMIT是MySQL取前N条数据,ORDERBY用于排序。2.答案:B解析:WHERE用于分组前筛选数据,HAVING用于分组后对分组结果筛选;GROUPBY是分组关键字,无FILTER筛选关键字。3.答案:B解析:数据库中NULL代表空值,不能使用=判断,必须用ISNULL/ISNOTNULL;NULL不等于0和空字符串。4.答案:B解析:ASC为升序,DESC为降序,是SQL标准排序关键字。5.答案:B解析:MySQL使用LIMIT限制查询条数,TOP是SQLServer语法,其余选项语法错误。6.答案:B解析:COUNT(*)统计整张表所有行数,包含NULL数据;COUNT(字段名)统计字段非空数据条数。7.答案:C解析:INNERJOIN为内连接,只返回两张表中关联字段匹配成功的数据;左连接、右连接会保留单侧表的全部数据。8.答案:C解析:IF是条件判断函数,不属于聚合函数;SUM求和、AVG求平均值、MAX求最大值,均为常用聚合函数。9.答案:B解析:UPDATE用于修改表中已有数据;ALTER、MODIFY、CHANGE用于修改数据表结构,不用于修改数据内容。10.答案:C解析:TRUNCATE清空表所有数据,保留表结构;DROPTABLE直接删除整张表结构和数据;DELETE逐条删除数据,可带条件。二、填空题答案及解析1.%、_解析:%匹配任意0个或多个字符,_匹配单个任意字符,是MySQL标准模糊查询通配符。2.GROUPBY解析:分组查询必须使用GROUPBY指定分组字段,搭配聚合函数使用。3.LEFTJOIN解析:LEFTJOIN(左连接)保留左表所有数据,匹配右表关联数据,无匹配则显示NULL。4.AVG()解析:AVG()为平均值聚合函数,仅支持数值类型字段计算。5.AS解析:AS关键字用于给字段、表、查询结果设置别名,也可省略直接空格起名。三、简单编程题答案及解析1.参考答案:sql

SELECT*FROMstudentORDERBYageASC,scoreDESC;解析:多字段排序规则为先执行前字段排序,再执行后字段排序;ASC可省略,默认即为升序,降序必须写DESC。2.参考答案:sql

SELECTstu_name,age,scoreFROMstudentWHEREclass_name='高一1班'ANDscore>500;解析:多条件筛选使用AND连接,字符串类型值必须用单引号包裹,数值类型无需引号。3.参考答案:sql

SELECTgender,COUNT(*)AStotalFROMstudentGROUPBYgender;解析:按性别分组,使用COUNT(*)统计每组人数,用AS给统计结果起别名,方便结果阅读。4.参考答案:sql

SELECTcourse_name,teacherFROMcourseWHEREcredit>2;解析:简单条件查询,精准筛选学分大于2的课程,只查询题目要求的两个字段。5.参考答案:sql

SELECTDISTINCTclass_nameFROMstudent;解析:DISTINCT对班级名称去重,快速查询表中所有不重复的班级。四、进阶编程题答案及解析1.参考答案:sql

SELECTs.stu_name,c.course_name,sr.exam_score

FROMstudents

JOINscore_recordsrONs.stu_id=sr.stu_id

JOINcoursecONsr.course_id=c.course_id;解析:三表联表查询,使用内连接匹配关联主键;为每张表设置简短别名,简化SQL语句,语法更简洁规范。内连接可省略INNER,默认即为内连接。2.参考答案:sql

SELECTc.course_name,COUNT(sr.record_id)ASstu_num,MAX(sr.exam_score)ASmax_score,MIN(sr.exam_score)ASmin_score,AVG(sr.exam_score)ASavg_score

FROMcoursec

LEFTJOINscore_recordsr

温馨提示

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

评论

0/150

提交评论