• sql执行顺序


    执行顺序:

      sql的解析顺序是从左往右,从上往下的。(类比编译)

      官方给出的select查询sql结构说明如下:

    SELECT
        [ALL | DISTINCT | DISTINCTROW ]
          [HIGH_PRIORITY]
          [STRAIGHT_JOIN]
          [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
          SQL_NO_CACHE [SQL_CALC_FOUND_ROWS]
        select_expr [, select_expr ...]
        [FROM table_references
          [PARTITION partition_list]
        [WHERE where_condition]
        [GROUP BY {col_name | expr | position}, ... [WITH ROLLUP]]
        [HAVING where_condition]
        [WINDOW window_name AS (window_spec)
            [, window_name AS (window_spec)] ...]
        [ORDER BY {col_name | expr | position}
          [ASC | DESC], ... [WITH ROLLUP]]
        [LIMIT {[offset,] row_count | row_count OFFSET offset}]
        [INTO OUTFILE 'file_name'
            [CHARACTER SET charset_name]
            export_options
          | INTO DUMPFILE 'file_name'
          | INTO var_name [, var_name]]
        [FOR {UPDATE | SHARE} [OF tbl_name [, tbl_name] ...] [NOWAIT | SKIP LOCKED] 
          | LOCK IN SHARE MODE]]

      一、sql执行顺序 
        (1) from 
        (2) join 
        (3) on 
        (4) where 
        (5) group by(开始使用select中的别名,后面的语句中都可以使用)
        (6) avg,sum……(聚合函数)
        (7) having 
        (8) select 
        (9) distinct 
        (10) order by
        (11) limit

      SELECT语句执行顺序 
        开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果 
        每执行一步,就会在内存或者间接存储(临时文件)中,产生一个逻辑表(中间结果),供接下来的子句使用,如果不存在某个子句,就跳过 。

    更多文档

      https://www.cnblogs.com/clsn/p/8047028.html#auto_id_14

      https://www.cnblogs.com/yyjie/p/7788428.html

  • 相关阅读:
    成功连上数据库顿感世界美好许多
    MySQL数据库基本命令
    杭电1004 Let the Balloon Rise
    大数学习笔记
    安卓传感器开发之指南针
    java Class文件内部结构解析
    mysq数据库实战小型管理系统
    JSplitPane分隔线的用法
    swing 菜单+右键菜单+二级菜单实现
    input type=file 上传文件,同一个文件第二次上传无反应
  • 原文地址:https://www.cnblogs.com/chendeming/p/9437120.html
Copyright © 2020-2023  润新知