- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
SQL面试题目汇总
一、基础语法类(入门级,适用于实习生/初级数据岗)
题目1:请简述SQL的四大核心操作(CRUD)及其对应的关键字,并分别写出示例语句。
核心考点:SQL基础概念、数据操作语句的掌握程度。
答题思路:明确CRUD分别对应创建(Create)、读取(Read)、更新(Update)、删除(Delete),结合常见表结构(如用户表user)给出简洁示例,注意语法规范性。
参考回答:“SQL的CRUD是数据操作的核心,分别对应以下操作及关键字:
1.创建(Create):通过INSERT关键字实现,用于向表中插入数据。示例:
INSERTINTOuser(id,name,age,register_time)VALUES(1,张三,25,2025-01-0110:00:00);
2.读取(Read):通过SELECT关键字实现,用于查询表中数据。示例:
SELECTid,name,ageFROMuserWHEREage20;
3.更新(Update):通过UPDATE关键字实现,用于修改表中已有数据,需配合WHERE条件避免全表更新。示例:
UPDATEuserSETage=26WHEREid=1;
4.删除(Delete):通过DELETE关键字实现,用于删除表中数据,同样需加WHERE条件。示例:
DELETEFROMuserWHEREid=1;
注意:Update和Delete语句若省略WHERE条件,会对表中所有数据生效,实际工作中需格外谨慎。”
题目2:请解释SQL中WHERE子句与HAVING子句的区别,并说明各自的使用场景。
核心考点:条件筛选逻辑的理解,聚合函数相关筛选的应用。
答题思路:从作用对象、使用时机、是否支持聚合函数三个维度区分,结合GROUPBY子句的使用场景举例说明,突出HAVING针对聚合结果筛选的核心特性。
参考回答:“WHERE与HAVING均用于数据筛选,但核心区别体现在三个方面:
1.作用对象不同:WHERE作用于单条数据记录,筛选的是原始数据行;HAVING作用于聚合后的分组结果,筛选的是分组数据。
2.使用时机不同:WHERE在数据分组(GROUPBY)和聚合函数计算之前执行,先过滤数据再聚合;HAVING在分组和聚合之后执行,基于聚合结果过滤。
3.支持的表达式不同:WHERE不支持使用聚合函数(如SUM、COUNT)作为筛选条件;HAVING专门用于聚合函数的结果筛选。
使用场景示例:若需查询‘订单金额大于1000的用户及其总消费额’,需先用WHERE筛选单条订单记录,再用GROUPBY分组并聚合,最后用HAVING过滤总消费额:
SELECTuser_id,SUM(order_amount)AStotal_amount
FROMorders
WHEREorder_amount1000--先筛选单条大额订单
GROUPBYuser_id
HAVINGtotal_amount5000;--再筛选总消费超5000的用户”
题目3:请写出SQL语句,实现从“学生表(student)”中查询“班级(class_id)为101,且语文成绩(chinese_score)排名前10的学生姓名、语文成绩”,要求成绩相同者并列排名,且按成绩降序排列。
核心考点:排序、排名函数的使用,条件筛选的组合应用。
答题思路:明确“并列排名”需使用RANK()窗口函数,而非ROW_NUMBER(),先通过WHERE筛选班级条件,再用窗口函数按成绩排序,最后取排名前10的结果。
参考回答:“需使用RANK()窗口函数实现并列排名,步骤为筛选班级、计算排名、过滤结果,SQL语句如下:
WITHstudent_rankAS(
SELECT
name,
chinese_score,
RANK()OVER(ORDERBYchinese_scoreDESC)ASrank_num--按语文成绩降序排名,成绩相同排名一致
FROMstudent
WHEREclass_id=101--筛选101班学生
)
SELECTname,chinese_score
FROMstudent_rank
WHERErank_num=10
ORDERBYrank_num;
若使用DENSE_RANK()函数,会使排名连续(如1、1、2而非1、1、3),需根据面试要求调整;若用ROW_NUMBER(),则成绩相同会生成不同排名,不符合‘并列’需求。”
二、查询逻辑类(进阶
您可能关注的文档
最近下载
- JTT 1081-2016 船舶污染清除单位应急清污能力要求.pdf VIP
- 水电站工程防洪度汛方案(3篇).docx VIP
- 上海石化公司ESG信息披露问题及对策研究.docx VIP
- 庞红宇--农药悬浮剂研发中的难点及润湿、分散剂的应用解析.pdf VIP
- 2025年国开电大机考网考-数据库运维-真题(1).docx
- 框架结构施工组织设计框架结构施工组织设计(毕业设计).doc VIP
- 结构化学:第10章 次级键及超分子结构化学.ppt VIP
- 一种共混填充改性PET发泡材料及其成型方法.pdf VIP
- 桑晓梅--山东赛尔化工科技发展有限公司.pdf VIP
- 高考历史选择题解题技巧与思路——解题三要素和基本原则+课件---2025届高考历史统编版二轮复习.pptx VIP
原创力文档


文档评论(0)