版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SQL常见笔试题及详细答案(企业高频真题版)本套试题为互联网、传统软件、数据岗位高频SQL笔试真题,涵盖基础语法、查询优化、联表、子查询、聚合函数、数据库基础等核心考点,适配零基础至进阶求职人群,答案附带详细解析、解题思路和执行逻辑,贴合真实笔试答题规范。前置说明:试题统一使用两张核心测试表(所有题目通用)1.学生表student字段名字段类型字段说明stu_idint学生编号(主键)stu_namevarchar(20)学生姓名genderchar(2)性别ageint年龄class_idint班级编号2.成绩表score字段名字段类型字段说明stu_idint学生编号subjectvarchar(20)科目名称scoreint考试分数一、基础查询类(入门必考)题目1:查询所有学生的全部信息参考答案:PlainText
SELECT*FROMstudent;详细解析:*代表查询表中所有字段,FROM指定查询的数据表,是SQL最基础的全表查询语法。笔试中若无特殊要求,简单全表查询直接使用该语句即可。题目2:查询所有学生的姓名、年龄,去除重复数据参考答案:PlainText
SELECTDISTINCTstu_name,ageFROMstudent;详细解析:DISTINCT关键字用于去除查询结果中的重复行,仅对后面紧跟的所有字段组合去重。本题要求指定字段查询+去重,必须添加该关键字,否则会返回全部重复数据。题目3:查询年龄在18-22岁之间的所有学生信息(包含18、22岁)参考答案:PlainText
--写法1:BETWEENAND简洁写法(推荐)
SELECT*FROMstudentWHEREageBETWEEN18AND22;
--写法2:基础条件判断写法
SELECT*FROMstudentWHEREage>=18ANDage<=22;详细解析:BETWEEN最小值AND最大值适用于数值区间闭区间查询,等价于>=和<=组合条件,两种写法笔试中均得分,第一种更简洁,是企业常用写法。题目4:查询姓名包含“张”的所有学生信息参考答案:PlainText
SELECT*FROMstudentWHEREstu_nameLIKE'%张%';详细解析:LIKE为模糊查询关键字,%是通配符,代表匹配任意字符(包含空字符)。%张%表示姓名中任意位置包含“张”字;张%代表以张开头,%张代表以张结尾,需根据题目需求区分。二、聚合函数与分组查询(高频考点)常用聚合函数:COUNT(统计数量)、SUM(求和)、AVG(平均值)、MAX(最大值)、MIN(最小值)题目5:统计学生总人数参考答案:PlainText
SELECTCOUNT(stu_id)AStotal_stuFROMstudent;详细解析:COUNT(主键)统计有效数据行数,不会统计NULL值;COUNT(*)也可实现统计总人数。使用AS可以给结果字段起别名,让查询结果更直观,笔试建议统一加别名。题目6:查询每门科目的平均分、最高分、最低分参考答案:PlainText
SELECT
subject,
AVG(score)ASavg_score,
MAX(score)ASmax_score,
MIN(score)ASmin_score
FROMscore
GROUPBYsubject;详细解析:GROUPBY用于分组统计,规则为:SELECT后的非聚合字段,必须全部出现在GROUPBY后。本题按科目分组,对每组数据做聚合计算,是分组查询核心题型。题目7:查询平均分大于80分的科目参考答案:PlainText
SELECT
subject,
AVG(score)ASavg_score
FROMscore
GROUPBYsubject
HAVINGAVG(score)>80;详细解析:核心易错点:分组后的条件筛选必须用HAVING,不能用WHERE。WHERE是分组前筛选原始数据,HAVING是分组后筛选聚合结果,这是笔试高频错题点。题目8:统计每个班级的男生、女生人数参考答案:PlainText
SELECT
class_id,
COUNT(CASEWHENgender='男'THENstu_idEND)ASboy_num,
COUNT(CASEWHENgender='女'THENstu_idEND)ASgirl_num
FROMstudent
GROUPBYclass_id;详细解析:利用CASEWHEN做条件统计,是笔试、面试高频场景。CASE匹配对应性别后返回学生编号,COUNT统计非空数据,未匹配则为NULL,不会被统计,完美实现分组分类统计。三、联表查询(核心重点,必考)常用联表:INNERJOIN(内连接,取交集)、LEFTJOIN(左连接,左表全量+右表匹配数据)题目9:查询所有学生的姓名、科目、对应成绩(只查询有成绩的学生)参考答案:PlainText
SELECT
s.stu_name,
sc.subject,
sc.score
FROMstudents
INNERJOINscorescONs.stu_id=sc.stu_id;详细解析:INNERJOIN只返回两张表中匹配成功的数据,无成绩的学生不会展示。笔试中建议给表起简短别名(s、sc),简化代码,提升可读性。题目10:查询所有学生的姓名、科目、成绩,包含没有成绩的学生(成绩显示为NULL)参考答案:PlainText
SELECT
s.stu_name,
sc.subject,
sc.score
FROMstudents
LEFTJOINscorescONs.stu_id=sc.stu_id;详细解析:LEFTJOIN左连接,以LEFT左侧的student表为基准,展示所有学生数据,右表score无匹配数据时,字段自动填充NULL。是求职最高频的联表题型。题目11:查询不及格学生的姓名、科目、成绩(分数<60)参考答案:PlainText
SELECT
s.stu_name,
sc.subject,
sc.score
FROMstudents
INNERJOINscorescONs.stu_id=sc.stu_id
WHEREsc.score<60;详细解析:先联表获取学生和成绩关联数据,再通过WHERE筛选不及格数据。注意条件筛选在联表之后执行,逻辑顺序:联表→筛选。四、子查询与复杂查询(进阶笔试考点)题目12:查询数学成绩最高分的学生姓名和分数参考答案:PlainText
SELECT
s.stu_name,
sc.score
FROMstudents
INNERJOINscorescONs.stu_id=sc.stu_id
WHEREsc.subject='数学'
ANDsc.score=(SELECTMAX(score)FROMscoreWHEREsubject='数学');详细解析:括号内为子查询,先查出数学科目最高分,再通过外层查询匹配对应学生数据。子查询可将复杂查询拆分,逻辑清晰,适配多数极值查询场景。题目13:查询所有科目成绩都大于80分的学生姓名参考答案:PlainText
SELECTstu_name
FROMstudent
WHEREstu_idNOTIN(
SELECTstu_idFROMscoreWHEREscore<=80
);详细解析:反向查询思路(笔试秒杀技巧):先查出有任意一科成绩≤80的学生编号,再查询不在该范围内的学生,即为所有科目均大于80分的学生,比正向查询更简单高效。题目14:查询学生的总成绩,并按总成绩降序排序参考答案:PlainText
SELECT
stu_id,
stu_name,
SUM(score)AStotal_score
FROMstudents
LEFTJOINscorescONs.stu_id=sc.stu_id
GROUPBYstu_id,stu_name
ORDERBYtotal_scoreDESC;详细解析:SUM聚合个人总成绩,ORDERBY字段DESC实现降序排序(分数从高到低),ASC为升序(默认可省略)。GROUPBY必须包含所有非聚合字段,避免语法报错。五、数据库基础与语法简答(笔试填空题/简答题)题目15:简述WHERE和HAVING的区别详细答案:1.执行顺序不同:WHERE是分组前筛选原始数据表数据;HAVING是分组后筛选聚合统计后的结果。2.适用范围不同:WHERE不能使用聚合函数(SUM、AVG、MAX等);HAVING专门用于筛选聚合函数结果,必须配合GROUPBY使用。3.数据效率不同:WHERE先过滤数据,减少分组统计的数据量,效率更高;HAVING是统计完成后再过滤,效率相对较低。题目16:简述LEFTJOIN、RIGHTJOIN、INNERJOIN的区别详细答案:1.INNERJOIN(内连接):只返回两张表中匹配成功的数据,取两表数据交集。2.LEFTJOIN(左连接):以左表为基准,展示左表所有数据,右表匹配不到的数据填充NULL。3.RIGHTJOIN(右连接):以右表为基准,展示右表所有数据,左表匹配不到的数据填充NULL。题目17:SQL中GROUPBY分组的使用规则是什么?详细答案:1.SELECT查询的字段中,非聚合函数字段必须全部出现在GROUPBY子句中,否则语法报错。2.GROUPBY可以按单个字段或多个字段组合分组。3.分组后筛选条件只能使用HAVING,不可使用WHERE。题目18:DISTINCT的作用是什么?使用时有什么注意事项?详细答案:作用:去除查询结果中的重复数据,返回唯一不重复的行数据。注意事项:DISTINCT是对后续所有字段组合去重,而非单个字段;关键字必须紧跟在SELECT之后,不能单独对某个字段生效。六、进阶实操题型(面试笔试压轴题)题目19:查询每个班级分数最高的学生信息参考答案:PlainText
SELECT*FROM(
SELECT
s.*,
sc.subject,
sc.score,
RANK()OVER(PARTITIONBYs.class_idORDERBYsc.scoreDESC)ASrk
FROMstudents
INNERJOINscorescONs.stu_id=sc.stu_id
)tWHEREt.rk=1;详细解析:使用窗口函数RANK()实现分组排名,PARTITIONBY按班级分组,ORDERBY按分数降序排名,最后筛选排名为1的学生即为班级最高分学生。窗口函数是中高级岗位笔试必考知识点。题目20
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026及未来5年中国万能台式抛砂磨机市场现状数据分析及前景预测报告
- 2026及未来5年中国PVC编织压力管市场现状数据分析及前景预测报告
- 2026及未来5年中国63-71机座号电动机市场现状数据分析及前景预测报告
- 2026年湖南二级造价试题及答案
- 2025年合法性审查岗位复习题及答案
- 2026年特种设备故障应急考试题库及答案
- 首都医科大学模板(经典)
- 供应室品管圈:降低职业暴露发生率
- 2026年母婴实验室测模拟题及答案详解
- 2026年六源考试模拟题及答案详解
- T/CSEA 49-2025微弧氧化陶瓷层
- 2026秋学期小学科普版英语四年级上册(新教材)教学计划含教学进度表
- 2026年高考化学试题(湖南卷)+答案
- 综合与实践 周长与面积的变化 课件(共21张) 苏教版数学四年级上册
- 腰部运动康复课件
- 火力发电厂作业指导书
- 心电图机操作考核评分标准
- T∕CEA 0065-2025 电梯轿厢用空调
- 2026年精麻药品培训考试题题库及答案(完整版)
- 高效液相色谱质谱联用技术在药物分析中的应用
- 汽轮机热平衡图功率的核算方法
评论
0/150
提交评论