SQL基础试题及详细答案解析_第1页
SQL基础试题及详细答案解析_第2页
SQL基础试题及详细答案解析_第3页
SQL基础试题及详细答案解析_第4页
SQL基础试题及详细答案解析_第5页
全文预览已结束

下载本文档

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

文档简介

SQL基础试题及详细答案解析本次试题适用于SQL入门及进阶学习考核,涵盖基础查询、条件筛选、聚合函数、分组、联表、子查询等核心知识点,题型包含选择题、填空题、实操问答题,所有答案附带详细解题思路与步骤,通俗易懂。配套测试数据表(所有题目基于以下三张表)1.学生表student(学生ID,姓名,性别,年龄,班级,入学时间)字段:stu_id(主键)、stu_name、gender、age、class_name、create_time2.课程表course(课程ID,课程名称,授课老师)字段:course_id(主键)、course_name、teacher_name3.成绩表score(成绩ID,学生ID,课程ID,分数)字段:score_id(主键)、stu_id、course_id、score一、单项选择题(共10题,每题3分,共30分)1.在SQL中,用于查询数据表所有字段的关键字是()A.ALLB.*C.ANYD.%答案:B解析:SQL查询语句中,*代表数据表全部字段;ALL和ANY是条件匹配关键字,%是模糊查询通配符,代表任意字符。2.以下哪个语句可以实现对查询结果去重()A.DISTINCTB.ORDERBYC.GROUPBYD.LIMIT答案:A解析:DISTINCT用于去除查询结果中的重复数据;ORDERBY是排序,GROUPBY是分组统计,LIMIT是限制查询条数。3.模糊查询中,匹配任意单个字符的通配符是()A.%B._C.#D.答案:B解析:_匹配单个任意字符,%匹配0个或多个任意字符,其余符号不属于SQL模糊查询通配符。4.排序语句ORDERBY默认的排序方式是()A.降序DESCB.升序ASCC.随机排序D.倒序答案:B解析:ORDERBY默认升序排序(ASC可省略),如需降序必须手动添加DESC关键字。5.以下不属于聚合函数的是()A.SUM()B.COUNT()C.IF()D.AVG()答案:C解析:SUM求和、COUNT统计条数、AVG求平均值,均为聚合函数;IF()是条件判断函数,不属于聚合函数。6.分组统计后,对分组结果进行条件筛选的关键字是()A.WHEREB.HAVINGC.IFD.CASE答案:B解析:WHERE用于分组、统计前的原始数据筛选;HAVING专门用于GROUPBY分组后的结果筛选。7.内连接查询的关键字是()A.LEFTJOINB.RIGHTJOINC.INNERJOIND.FULLJOIN答案:C解析:INNERJOIN为内连接,只查询两张表中匹配的数据;LEFTJOIN左连接、RIGHTJOIN右连接、FULLJOIN全连接。8.SQL中,用于更新数据表数据的语句是()A.INSERTB.UPDATEC.DELETED.SELECT答案:B解析:INSERT插入新数据,UPDATE修改更新原有数据,DELETE删除数据,SELECT查询数据。9.以下关于主键的描述正确的是()A.主键可以为空B.主键值可以重复C.主键唯一且非空D.一张表可以有多个主键答案:C解析:数据表主键规则:唯一、非空,且一张数据表只能设置一个主键。10.LIMIT2,5的含义是()A.查询前2条数据B.从第3条开始,查询5条数据C.查询第2-5条数据D.从第2条开始查5条答案:B解析:LIMIT偏移量,条数;偏移量从0开始,2代表跳过前2条(0、1),从第3条开始,读取5条数据。二、填空题(共5题,每题4分,共20分)1.SQL中,用于插入单条数据的语句是________。答案:INSERTINTO解析:标准插入语法:INSERTINTO表名(字段1,字段2)VALUES(值1,值2)。2.统计数据表总数据条数的函数是________。答案:COUNT()解析:COUNT(*)统计所有数据行数,COUNT(字段)统计该字段非空数据行数。3.实现多条件同时满足的逻辑关键字是________,任一条件满足的关键字是________。答案:AND、OR解析:AND为且逻辑,所有条件成立才生效;OR为或逻辑,任意一个条件成立即可。4.左连接查询会保留________表的所有数据,匹配右表对应数据。答案:左解析:LEFTJOIN左连接:左表数据全部展示,右表无匹配数据则显示为空值。5.给查询字段设置别名的关键字是________。答案:AS解析:AS可省略,用于字段、表别名设置,例如:SELECTstu_nameAS姓名FROMstudent。三、实操问答题(共5题,每题10分,共50分)说明:所有题目均基于开篇student、course、score三张数据表,写出标准SQL语句,并附带解题思路。1.查询所有学生的姓名、性别、年龄,年龄按从大到小排序。参考答案:sql

SELECTstu_name,gender,ageFROMstudentORDERBYageDESC;解题思路:首先确定查询字段为姓名、性别、年龄,数据源为学生表;需求为年龄降序排列,使用ORDERBY字段DESC实现,无需条件筛选,直接查询全量符合字段数据。2.查询班级为“高一1班”,且年龄大于16岁的所有学生信息。参考答案:sql

SELECT*FROMstudentWHEREclass_name='高一1班'ANDage>16;解题思路:筛选两个同时满足的条件:班级固定为高一1班、年龄大于16岁,用AND连接条件;查询学生全部信息,使用*,数据源为student表。3.统计每个班级的学生总人数,展示班级名称和对应人数。参考答案:sql

SELECTclass_name,COUNT(stu_id)AS学生人数FROMstudentGROUPBYclass_name;解题思路:需要按班级分组统计,核心关键字GROUPBY班级字段;使用COUNT统计每个分组下的学生ID数量(保证统计准确,避免空值影响),并给统计结果设置别名。4.查询平均分大于80分的课程名称和课程平均分。参考答案:sql

SELECTc.course_name,AVG(s.score)AS平均分

FROMcoursec

JOINscoresONc.course_id=s.course_id

GROUPBYc.course_name

HAVINGAVG(s.score)>80;解题思路:1.课程名称在课程表,分数在成绩表,需要联表查询,通过课程ID关联两张表;2.按课程名称分组,使用AVG函数计算平均分;3.分组后的平均分筛选需用HAVING关键字,不能使用WHERE。5.查询“数学”课程成绩最高的学生姓名和分数。参考答案:sql

SELECTst.stu_name,sc.score

FROMstudentst

JOINscorescONst.stu_id=sc.stu_id

JOINcoursecONsc.course_id=c.course_id

WHEREc.course_name='数学'

ORDERBYsc.scoreDESC

LIMIT1;解题思路:1.涉及学生姓名、课程名称、成绩三张表,通过学生ID、课程ID依次关联;2.先筛选出数学课程的所有成绩数据;3.对成绩做降序排序,最高分排在首位;4.通过LIMIT1只取第一条数据,即为最高分学生信息。四、附加知识点总结(答题易错点)1.执行顺序:WHERE筛选原

温馨提示

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

评论

0/150

提交评论