程序员高频SQL面试题(含详细干货答案).docxVIP

  • 0
  • 0
  • 约4.68千字
  • 约 7页
  • 2026-08-17 发布于河北
  • 举报

程序员高频SQL面试题(含详细干货答案).docx

程序员高频SQL面试题(含详细干货答案)

一、SQL基础查询(入门必问)

1、说说SQL中where和having的区别?

标准答案:

核心区别就是执行时机、筛选对象、使用限制三点:

1.执行顺序:where是分组之前筛选数据,having是分组之后筛选分组结果;

2.筛选对象:where针对行数据筛选,having针对聚合后的分组筛选;

3.使用限制:where后面不能用聚合函数(sum、count、max等),having可以使用聚合函数;

4.优先级:wheregroupbyhaving。

举例:统计班级人数大于5人的班级

sql

SELECTclass,count(*)ASnumFROMstudentGROUPBYclassHAVINGnum5;

2、union和unionall的区别?工作中用哪个多?

标准答案:

1.去重区别:union会自动去重、排序;unionall不做去重、不排序,直接拼接结果;

2.性能区别:unionall性能远高于union,因为省去了去重和排序的开销;

3.适用场景:工作中优先用unionall,只有业务明确需要去重的时候才用union。

额外注意:两个查询的字段数量、字段类型必须一致,否则报错。

3、select*为什么不推荐使用?

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档