ORACLE WITH AS 用法

技术ORACLE WITH AS 用法 ORACLE WITH AS 用法With查询语句不是以select开始的,而是以“WITH”关键字开头 可认为在真正进行查询之前预先构造了一个临时表,之后便可多

带AS用法的ORACLE

查询语句WITH不是以select开头,而是以关键字“With”开头

可以认为是在实际查询之前预先构造了一个临时表,然后可以多次用于进一步的分析处理。

WITH子句方法的优点

增加了SQL的可读性,如果构造多个子查询,结构会更清晰;更重要的是“分析一次,使用多次”,这也是它提供性能,达到“少读”目标的原因。

第一种使用子查询的方法扫描表两次,而使用WITH子句的方法只扫描表一次。这可以大大提高数据分析和查询的效率。

此外,观察WITH子句方法的执行计划,其中“SYS_TEMP_XXXX”是运行过程中构建的中间统计结果的临时表。

语法:

以tempName为(选择.)

挑选.

-化名

tmp为(从tb_name中选择*

-对于多个别名

随着

tmp as(从tb_name中选择*),

tmp2 as(从tb_name2中选择*),

tmp3 as(从tb_name3中选择*),

-相当于建了一个E临时表。

带有e as(从scott.emp e中选择*其中e.empno=7499)

从e中选择*;

-相当于搭建临时表E和d。

随着

e as(从scott.emp中选择*),

d as(从scott.dept中选择*

从e、d中选择*其中e . dept no=d . dept no;

其实就是把很多重复使用的sql语句用as放进去,取一个别名,以后查询可以用它,这样优化了大量的sql语句,就清楚了。

作为向表中插入数据的用法:

插入表2

随着

s1 as(通过rownum=10从双连接中选择rownum c1),

s2 as(通过rownum=10从双连接中选择rownum c2)

从s1 a、s2 b中选择a.c1、b.c2,其中.

等同于虚拟视图。

With短语,也称为子查询因式分解,允许您做许多事情并定义一个sql片段,该片段将被整个sql语句使用。

有时,这是为了使sql语句更易读,或者它可能位于union的不同部分,都是提供数据的一部分。

对工会特别有用。

因为union的每个部分都可能是一样的,但是如果每个部分执行一次,成本太高,所以用as这个短语就可以了,所以只需要执行一次。

如果with as短语定义的表名被调用两次以上,优化器将自动将with as短语获得的数据放入临时表中,但如果只调用一次,则不会。

Prompt物化是将短语as中的数据强制放入全局临时表中。

这种方法可以加快许多查询的速度。

随着

sql1 as(从test_tempa中选择to_char(a) s_name),

sql2 as(从test_tempb中选择to_char(b) s_name,其中不存在(从sql1中选择s_name,其中rownum=1))

从sql1中选择*

联合所有

从sql2中选择*

联合所有

从dual中选择“无记录”

不存在的地方(从sql1中选择s_name,其中rownum=1)

并且不存在(从sql2中选择s_name,其中row num=1);

with as优点

增加了sql的可读性,如果构造多个子查询,结构会更清晰;

更重要的是“分析一次,使用多次”,这也是它提供性能,达到“少读”目标的原因。

转载:https://www.cnblogs.com/mingforyou/p/8295239.html

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/117965.html

(0)

相关推荐

  • many比较级,many可以修饰比较级吗

    技术many比较级,many可以修饰比较级吗many可以修饰比较级。much可用于形容词、副词比较级之前many比较级,而many不能。如果many后修饰more,more代替或修饰可数名词复数时,前面只能用many,而

    生活 2021年10月24日
  • 1元涨1000粉丝软件,抖音如何刷粉丝?

    技术1元涨1000粉丝软件,抖音如何刷粉丝?1元涨1000粉丝软件,抖音如何刷粉丝?身边玩抖音的朋友是越来越多,也就意味着抖音用户大军正在日渐壮大。抖音用户多,自然来网站咨询购买抖音粉丝的朋友就多。抖音粉丝少当然得想点办

    测评 2021年11月11日
  • VB.NET转换形态的方法有哪些

    技术VB.NET转换形态的方法有哪些这篇文章将为大家详细讲解有关VB.NET转换形态的方法有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。VB.NET经过长时间的发展,很多用户都很

    攻略 2021年12月1日
  • leetcode-211. 添加与搜索单词

    技术leetcode-211. 添加与搜索单词 leetcode-211. 添加与搜索单词 - 数据结构设计leetcode-211. 添加与搜索单词 - 数据结构设计
    题目:
    请你设计一个数据结构,支

    礼包 2021年10月20日
  • 如何监听Oracle

    技术如何监听Oracle这篇文章将为大家详细讲解有关如何监听Oracle,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Oracle 监听一:没有listener.ora监听文件监听文件

    攻略 2021年12月1日
  • postgresql中PLProxy如何配置

    技术postgresql中PLProxy如何配置小编给大家分享一下postgresql中PLProxy如何配置,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.下载plproxy-2.6.tar.gz网

    攻略 2021年11月18日