zoukankan      html  css  js  c++  java
  • Atitit.mysql oracle with as模式临时表模式 CTE 语句的使用,减少子查询的结构性 mssql sql server..

    Atitit.mysql  oracle with as模式临时表模式 CTE 语句的使用,减少子查询的结构性 mssql sql server..

    1. with ... as (...) mysql中应该如何表示 1

    2. 子查询和查询嵌套主要是便于可读性提升上, 2

    3. MYSQL中的解决之道::临时表。 2

    4. Seo黑头关键字替换链接的统计样品 2

    4.1. //---------查询com网站的数量 2

    4.2. //----------------------查询net网站的数量 2

    4.3. ---------------联合统计 3

    5. with as + materialize是一种强制进行子查询先执行的好办法。 3

    1. with ... as (...) 在mysql中应该如何表示

    SQL语句是关系型数据库最直接也是最普遍的数据访问、操作方式。应该说,RDBMS的成功因素之中,SQL语言标准的推广有不可磨灭的功劳。Oracle、SQL Server和DB2等主流数据库都是在标准SQL的基础上,加以个性化拓展,实现高效的数据库应用。 

    with as是Oracle SQL语系里面经常使用到的一种语句结构。特别是在一些数据仓库挖掘系统中,SQL语句结构和嵌套结构是很复杂的。with as可以帮助我们简化语句结构,提高语句可读性,另外还可以提升语句执行计划控制性。

    Oracle 9i 新增WITH语法,可以将查询中的子查询命名,放到SELECT语句的最前面。

    作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

    Db2,mssql,oracle 都支持with ... as 的使用..

    2. 子查询和查询嵌套主要是便于可读性提升上,

    绝大多数的子查询和嵌套,都可以通过一系列的连接来完成。而数据库系统是擅长连接操作的

    3. MYSQL中的解决之道::临时表。


    可以在MYSQL官方手册中查阅一下MYSQL临时表的创建使用。

    4. Seo黑头关键字替换链接的统计样品

    4.1. //---------查询com网站的数量

    DROP TEMPORARY TABLE

    IF EXISTS tmp_table;

    CREATE TEMPORARY TABLE tmp_table SELECT

    SUBSTR(url, 1, LOCATE('.com', url) + 3) AS domain

    FROM

    link_big

    WHERE

    LOCATE('.com', url) > 0;

    4.2. //----------------------查询net网站的数量

    DROP TEMPORARY TABLE

    IF EXISTS tmp_table2;

    CREATE TEMPORARY TABLE tmp_table2  

    SELECT

    SUBSTR(url, 1, LOCATE('.net', url) + 3) AS domain

    FROM

    link_big

    WHERE

    LOCATE('.net', url) > 0;

    4.3. ---------------联合统计

    SELECT

    count(*),

    domain

    FROM

    tmp_table

    GROUP BY

    domain

    UNION

    SELECT

    count(*),

    domain

    FROM

    tmp_table2

    GROUP BY

    domain

    5. with as + materialize是一种强制进行子查询先执行的好办法。 

    综合上面的讨论,我们可以得到with as应用的条件和好处。总体上看,with as可以带来两方面的好处。第一是语句清晰度上,将原有的复杂子查询内容拆解为若干语句块,提高了可读性。第二是对于自动临时表,可以将子查询数据先检索出来,在内存中进行组织连接。 

    最后我们想讨论一下对于subquery unnested特性。大多数情况下,我们认为Oracle这个特性是可以生成更好地执行计划的。但是,在实践中我们也的确发现过很多这样的场景:子查询速度很快、数据量也不大,但是连接之后速度变慢,结果是发现执行计划中子查询被打开。 

    默认情况下,Oracle在估算多条件语句结果集数量的时候,是有“计算偏小”的特性的。也就是估算的结果集数量要小于实际数量,这个是由于默认统计量没有考虑列相关性的原因。所以,大部分查询展开都是被通过的。 

    如果出现这样的情况,with as + materialize是一种强制进行子查询先执行的好办法。 

    参考

    mysql 创建与删除临时表sql语句-mysql教程-数据库-壹聚教程网.htm

    从五个SQLwith as使用-realkid4-ITPUB博客.htm

  • 相关阅读:
    Brackets_区间DP
    石子合并_区间Dp
    You Are the One_区间DP
    Palindrome subsequence_区间DP
    Infix to postfix 用stack模板,表达式没有括号
    Java 4
    Java 3
    规范化的递归转换成非递归
    recursion 递归以及递归的缺点
    Infix to postfix conversion 中缀表达式转换为后缀表达式
  • 原文地址:https://www.cnblogs.com/attilax/p/5963772.html
Copyright © 2011-2022 走看看