zoukankan      html  css  js  c++  java
  • sql查询语句执行顺序

    1.查询语句的语法:

    select   --查询动作

    [distinct|all]     --描述列中的数据是否去除重复记录

     select_list       --需要查询的列,也可以说是占位符。可以使一个字段,也可以是多个字段。

    from table_list  --from:关键词,表示数据的来源;table_list:数据来源列表,允许有一个活多个列表;可以使表名,也可以是视图,还可以是别名

    [where_clause]   --查询条件部分

    [group_by_clause]  --group by 子句部分

    [having condition]    --having 子句部分

    [order_by_clause]    --排序部分

    2.查询语句执行顺

    step1:首先执行from子句,组装来自不同数据源的数据,即根据from子句中的一个或多个表创建工作表。

    如果在from子句中的有两个或多个表,数据库管理系统将执行cross join运算对表进行交叉连接,作为工作表。

    step2:如果有where子句,实现基于指定的条件对记录进行筛选,即数据库管理系统将where子句列列出搜索

    条件作用于step1步中生成的工作表。数据库管理系统将保留哪些满足搜索条件的行,删除哪些不满足搜索条件的行。

    step3:如果有group by子句,它将数据划分为多个分组。数据库管理系统将step2步生成的结果表中的行分成多个组,

    每个组所有行的group_by_expression字段具有相同的值。接着,数据库管理系统将每组减少到单行,而后将其添加到

    新的结果表中,用以替换step1步生成的工作表。

    step4:如果有having子句,它将筛选分组。数据库管理系统将having子句列出的搜索条件作用有step3步生成的“组合“表

    中的每一行。数据库管理系统将保留那些满足搜索条件的行,删除那些不满足搜索条件的行。

    step5:将select子句作用于结果表,删除那些结果表中不包含在select_list中的列。如果select子句包含distinct关键词,数据库

    管理系统将从结果中删除重复的行。

    step6:如果有order by子句,则按指定的排序顺序规则对结果进行排序。

    step7:对于交互式sql语句,在屏幕上显示结果;对于嵌入式sql语句,使用游标将结果传递给宿主程序。

    注意:DBMSl值看做是相等,而且所有的null值都放入自己的组中。

  • 相关阅读:
    .Net解析html文档类库HtmlAgilityPack完整使用说明
    C# 中使用JSON
    Property 'submit' of object #<HTMLFormElement> is not a function
    bin/...的访问被拒绝被拒绝的问题
    vs2012 ultimate 密钥
    ASP.NET-自定义HttpModule与HttpHandler
    jQuery同步Ajax带来的UI线程阻塞问题及解决办法
    Windows API
    服务器不安装Excel,实现导出Excel功能
    内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。 [问题点数:20分,结帖人wenyang2004]
  • 原文地址:https://www.cnblogs.com/xiaowei-blog/p/4062282.html
Copyright © 2011-2022 走看看