Oracle中级面试题(含详细实战答案).docxVIP

  • 2
  • 0
  • 约4.51千字
  • 约 7页
  • 2026-06-08 发布于河北
  • 举报

Oracle中级面试题(含详细实战答案).docx

Oracle中级面试题(含详细实战答案)

一、SQL基础与实操高频题

1、union和unionall的区别?工作中怎么选?

详细答案:

1、核心区别:union会自动去重、排序;unionall直接拼接结果集,不去重、不排序。

2、性能差异:union需要额外的排序去重操作,大数据量下性能差很多;unionall性能远高于union。

3、使用场景:工作中优先用unionall。如果业务明确需要剔除重复数据,再用union;绝大多数统计、报表、数据同步场景,数据本身无重复,直接用unionall提升效率。

2、in和exists的区别?什么时候用哪个?

详细答案:

核心原理:in是先查子表,把结果集缓存,再和主表匹配;exists是遍历主表,逐行判断子表是否存在匹配数据。

1、子查询结果集小、主表数据量大:用in

2、子查询结果集大、主表数据量小:用exists

3、关键坑:in对子查询的null值不匹配,如果子查询有null,in查询会查不到任何数据;exists不受null影响。

补充:Oracle新版本对in和exists做了优化,效率差距缩小,但大数据量场景下的选择逻辑依然适用。

3、leftjoin、rightjoin、innerjoin的使用场景,以及null数据处理问题

详细答案

文档评论(0)

1亿VIP精品文档

相关文档