Oracle 集操作和exists、in的运用场景

1 集操作 定义:把个sql的结果集,通过逻辑上的整合运算,拼在一起显示。 集操作缺省下都是按第一个查询的第一列升序排序,当然除了union all: minus:取差集,可用于对两个结果集进行测试 union:取并集,除重 union all:取并集,不剔重 intersect:取交

1 集操作

定义:把多个sql的结果集,通过逻辑上的整合运算,拼在一起显示。

集操作缺省下都是按第一个查询的第一列升序排序,当然除了union all:

minus:取差集,可用于对两个结果集进行测试

union:取并集,除重

union all:取并集,不剔重

intersect:取交集

注释:

① union all不排序、不剔重,在效率上比union高。在业务允许下,用union all,则不用union

② 两表作集操作时,字段类型、个数要相同,列的名字可以不必相同;若不一样可补齐,补齐时应注意字段类型,进行显示转换:to_char、to_number、to_date等

③ 多个集操作可通过括号改变sql引擎的执行顺序(缺省sql引擎是自顶向下)

④ union、minus和intersect的共同点:

剔重、排序、不忽略null

⑤ order by只能出现在语句的最后,是对整个集操作结果的排序,列名、别名或者按位置指定,但不能使用第一个select没有出现的列

⑥ 第一个select语句接收列名、别名,或位置记号,查询结果的列名和第一个select语句保持一致

⑦ 可以用于子查询

2 exists、in的运用场景

能不写子查询,尽量不写子查询,而是直接编写多表连接操作。理由如下:

① Oracle CBO在parse阶段,会尽可能把子查询转化为多表连接

② 子查询可读性较低

③ 复杂的逻辑,子查询可能导致Oracle CBO选择错误的执行路径

但如果必须写子查询,到底是in还是exists?exists/not exists专门用于关联子查询。10g之后,Oracle对in的改进,这两者无甚区别。

in和select的技术原理:

㈠ in:先进行子查询,再进行主查询

㈡ exists:先进行主查询,再到子查询中过滤

in和exists的使用建议:

Ⅰ 如果限制性强的条件在子查询,则使用in

Ⅱ 如果限制性强的条件在主查询,则使用exists

可用查询结果集来理解上面这段话,采用最优化匹配原则:拿最小记录匹配大记录。限制性强,则结果集小;反之,则大。

注释:

① 使用exists可以将子查询结果定位常量,不影响查询结果,而且,效率高。

比如:

1.select e.* 
2.  from emp e  3. where exists   4. (select 1 from dept d  5.   where e.deptno=d.deptno and  6.         d.dname=’SALES’)  ② not in可能会因为null而改变其行为导致和not exists结果集有出入。然而,在相关子查询下,not in和not exists的结果集是一样的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/463618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月8日 04:31:20
下一篇 2025年11月8日 04:36:29

相关推荐

  • 基本数据类型操作的完全指南:了解包括哪些操作

    基本数据类型操作的完全指南:了解包括哪些操作,需要具体代码示例 概述:在编程中,处理基本数据类型是一项基本且必不可少的任务。了解基本数据类型的操作和使用方法,可以帮助开发者更好地解决问题并优化代码。 本文将介绍常见的基本数据类型操作,包括整型、浮点型、字符型和布尔型的操作,以及相关的代码示例。 一、…

    2025年12月24日
    000
  • 深入研究基本数据类型的操作:操作细节总览

    深入探究基本数据类型操作:一览操作内容,需要具体代码示例 引言:在编程语言中,基本数据类型是经常使用到的一种数据类型。它们包括整数、浮点数、字符、布尔值等,是构建复杂程序的基础。本文将深入探讨基本数据类型的操作,包括初始化、赋值、运算等,并提供具体的代码示例。 一、整数类型操作:整数是最基本的数据类…

    2025年12月24日
    000
  • 绝对定位能在哪些场景下最大化效果发挥?

    绝对定位在哪些场景下能够发挥最大的效果? 绝对定位(Position: absolute)是CSS中一种非常有用的布局方式,通过设置元素的位置属性来精确地控制元素在页面上的位置。在某些特定的场景下,绝对定位可以发挥最大的效果,为我们创建出更加复杂和丰富的页面布局。本文将介绍几个使用绝对定位的常见场景…

    2025年12月24日
    000
  • 探索Web标准的概念和原则

    探索Web标准的定义和原则,需要具体代码示例 随着互联网的迅猛发展,Web标准成为了网页制作的基石。作为网页设计师或开发者,了解和遵守Web标准能够帮助我们创建出有效、稳定、高效的网页。本文将探索Web标准的定义、原则,并结合具体的代码示例进行讲解。 一、Web标准的定义 Web标准,指的是由W3C…

    2025年12月24日 好文分享
    000
  • CSS网页滚动监听:监听网页滚动事件并执行相应的操作

    CSS网页滚动监听:监听网页滚动事件并执行相应的操作 随着前端技术的不断发展,网页的效果和交互也越来越丰富多样。其中,滚动监听是一种常见的技术,可以实现在用户滚动网页时,根据滚动位置执行一些特效或者操作。 一般来说,滚动监听可以通过JavaScript来实现。但是,在某些情况下,我们也可以通过纯CS…

    好文分享 2025年12月24日
    000
  • html要怎么运行_html运行基本条件与步骤【教程】

    HTML文件需以.html为后缀,用浏览器直接打开或通过本地服务器运行,检查控制台错误确保代码正确解析。 如果您编写了 HTML 代码,但页面无法正常显示,则可能是由于缺少基础运行环境或执行方式不正确。以下是让 HTML 文件在本地或浏览器中正确运行的基本条件与具体操作步骤: 一、确保文件保存为 .…

    2025年12月23日
    000
  • html5如何显示汉语_HTML5显示中文字体与编码设置技巧【详解】

    HTML5正确显示中文需五步:一、在head首行用声明编码;二、CSS中font-family按优先级列中文字体并以sans-serif兜底;三、编辑器保存为UTF-8编码;四、确保外部资源响应头含charset=utf-8;五、统一用UTF-8原生中文,仅转义 如果您在HTML5页面中无法正常显示…

    2025年12月23日
    000
  • java怎么编译运行.html_java编译运行.html方法【教程】

    Java程序的编译运行与HTML无关,需使用JDK。1. 编写HelloWorld.java文件;2. 命令行执行javac HelloWorld.java生成.class文件;3. 执行java HelloWorld运行程序。注意:HTML是网页标记语言,不能直接运行Java代码,勿将二者混淆。确…

    2025年12月23日
    000
  • html文档中含有java怎么运行_html含java运行方法【教程】

    现代浏览器不支持Java Applet,推荐通过JavaScript调用Java后端服务或使用WebAssembly运行Java代码。 如果您在HTML文档中嵌入了Java代码,但发现无法正常运行,这通常是因为现代浏览器不再支持Java小程序(Applet)或相关插件。以下是几种实现HTML中Jav…

    2025年12月23日
    000
  • 怎么运行html的applet小程序_运行html applet小程序步骤【指南】

    现代浏览器已不再默认支持Java Applet,需通过安装JRE、启用插件、使用支持NPAPI的旧版浏览器(如Firefox 52.9 ESR)、调整Java安全级别至中,并将网站添加到例外站点列表方可运行。 如果您在尝试运行HTML中的Applet小程序时遇到问题,可能是因为现代浏览器已不再默认支…

    2025年12月23日
    000
  • html写好怎么运行_写好html后运行步骤【指南】

    首先保存HTML文件为.html格式,再通过浏览器双击打开即可查看效果;也可用VS Code配合Live Server插件实现自动刷新预览;若涉及脚本功能,则需搭建本地服务器运行。 如果您已经编写好一个HTML文件,想要在浏览器中查看其效果,需要正确保存并使用合适的工具打开。以下是将HTML文件成功…

    2025年12月23日
    000
  • 在线HTML转换器手机入口 HTML转换器手机版工具试用

    在线HTML转换器手机入口为https://www.freeformatter.com/html-validator.html,用户可通过手机浏览器直接访问,无需下载应用;页面适配移动端,支持触控操作,可上传本地文件或粘贴代码进行HTML校验、格式化、编码转换与压缩;同时集成CSS、JS、JSON、…

    2025年12月23日
    000
  • 无法样式化HTML Option元素?OSX浏览器中的限制与替代方案

    本文探讨了在OSX系统中,浏览器对HTML “ 元素样式化的限制问题。由于历史原因和平台UI组件的依赖,直接使用CSS样式化“元素在OSX上的Chrome、Firefox和Safari浏览器中通常无效。文章分析了这一现象背后的原因,并提供了使用JavaScript库实现自定义…

    2025年12月23日
    000
  • Web开发中图片路径问题解析与实践

    本文旨在解决PHP环境中图片无法正常显示的问题。核心原因在于HTML中图片路径的错误定义,尤其是在使用绝对文件系统路径而非相对Web路径时。教程将详细解释Web路径的正确使用方式,并通过示例代码演示如何通过相对路径确保图片在浏览器中正确加载,并简要提及PHP与前端框架的兼容性。 理解Web路径与文件…

    2025年12月23日 好文分享
    000
  • 使用BeautifulSoup和JSON有效抓取动态加载的网页表格数据

    本教程旨在解决使用BeautifulSoup抓取网页表格时,因数据动态加载导致部分内容缺失的问题。通过分析网页背后的API请求,直接获取并解析JSON数据源,再结合BeautifulSoup提取的HTML结构信息,最终实现完整且准确的数据抓取。文章将提供详细的代码示例和实现步骤。 理解网页动态内容与…

    2025年12月23日
    400
  • 解决BeautifulSoup爬取网页表格中动态内容缺失问题

    本文旨在解决使用BeautifulSoup爬取网页表格时,因部分数据通过JavaScript动态加载导致内容缺失的问题。通过详细分析Oracle云定价页面的案例,教程将指导读者如何识别并获取隐藏在JSON API中的动态数据,并将其与BeautifulSoup解析的静态HTML内容有效整合,最终构建…

    2025年12月23日
    000
  • HTML代码怎么实现多语言切换_HTML代码多语言功能实现与国际化方案

    答案:通过JavaScript动态加载JSON资源文件实现多语言切换,利用data-i18n属性标记文本元素,结合模块化资源管理、弹性布局适配文本长度差异,并使用Intl对象处理日期、货币等本地化内容。 HTML实现多语言切换,核心在于利用JavaScript动态修改页面内容,配合存储不同语言文本的…

    2025年12月22日
    000
  • 如何实现网页多语言切换的持久化:基于 localStorage 的前端解决方案

    本文旨在解决网页多语言切换后,页面跳转或刷新时语言设置无法自动保留的问题。我们将深入探讨如何利用浏览器 localStorage 机制,在用户选择语言时保存其偏好,并在每次页面加载时自动读取并应用该设置,从而确保用户在网站内导航时,语言选择能够持续生效,显著提升用户体验。 引言:理解多语言切换的挑战…

    2025年12月22日
    100
  • Java GUI在Web部署中的挑战与现代解决方案

    本文旨在澄清Java Web Start(JWS)在Web页面内运行GUI的常见误解,指出JWS用于本地应用启动而非嵌入式Web GUI。文章将探讨JWS的局限性及其被Oracle弃用的原因,介绍OpenWebStart作为其开源替代方案,并重点推荐Vaadin Flow作为使用纯Java构建真正W…

    2025年12月22日
    000
  • Java GUI Web部署策略与现代替代方案

    本文旨在澄清Java GUI应用在Web页面中直接运行的常见误区,特别是关于Java Web Start (JWS) 的作用与局限性。我们将探讨JWS的实际工作机制、其被Oracle废弃的原因,并介绍OpenWebStart作为现有JWS应用的替代方案。此外,文章将重点推荐Vaadin Flow等现…

    2025年12月22日
    300

发表回复

登录后才能评论
关注微信