首页 > 数据库 >SQL语句的执行顺序怎么理解?

SQL语句的执行顺序怎么理解?

时间:2023-02-03 09:44:15浏览次数:61  
标签:语句 顺序 group 指定 LIMIT SQL JOIN ORDER


书写顺序

SELECT -> DISTINCT -> FROM -> JOIN -> ON -> WHERE -> GROUP BY -> HAVING -> ORDER BY -> LIMIT

执行顺序

FROM -> JOIN -> ON -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT

执行顺序解释

1.from 要做数据分析,得先有个表

2.join 一个表可能还不够,两个表甚至多个表都可以,关联条件啥也先不用,可以都来个笛卡儿积先

3.on 在诸多表左右连接后,设定两个表之间的关联键,把不符合条件的全部筛掉

4.where 上三步整合各表,形成一个统一大表;在此大表上,设置筛选条件

5.group by 把指定字段相同的行组合在一起,其余没有加入group by的字段,可以用聚合函数如max/min等合并

6.having 在group by了之后,再度指定筛选条件;注意where和having是不同的,主要在于中间多了group by

7.select 在行层面的处理暂告一段落,在列层面再来一波

8.distinct 指定字段去重

9.order by 指定字段排序,升降序

10.limit 指定哪些行

标签:语句,顺序,group,指定,LIMIT,SQL,JOIN,ORDER
From: https://www.cnblogs.com/ZhangZiXue/p/17088093.html

相关文章

  • Hibernate下分页语句第一页和第二页sql语句不一致问题解决方法
    <propkey="hibernate.dialect">新增类OracleDialect</prop>OracleDialectextendsorg.hibernate.dialect.Oracle10gDialect重写getLimitString方法sql......
  • [3] 以逆向的角度来看循环语句——do、while、for的比较
    [3]以逆向的角度来看循环语句——do、while、for的比较1.do循环​ 先执行循环体,后比较判断#include<stdio.h>intmain(intargc,char*argv[]){intsum=0;......
  • [1] 以逆向的角度来看流程控制语句——if
    [1]以逆向的角度来看流程控制语句——if1.if语句(单分支)​ if语句转换的条件跳转指令与if语句的判断结果是相反的,因为C语言是根据代码行的位置决定编译后二进制代码地......
  • [2] 以逆向的角度来看流程控制语句——switch
    [2]以逆向的角度来看流程控制语句——switch1.switch分支数小于4汇编标识:00401021mov[ebp-4],ecx00401024cmpdwordptr[ebp-4],100401028jz......
  • mysql 基础
    通用语法以及分类:DDL:数据定义语言,用来定义数据库对象(数据库,表,字段)DML:数据操作语言,用来对数据库表中的数据进行增删改DQL:数据查询语言,用来查询数据库中表的记录DCL:数......
  • 01.centos7.6上安装mysql
    1.卸载mariadb#查询rpm-qa|grepmariadb#卸载#语句:rpm-e--nodeps软件名#实例:rpm-e--nodepsmariadb-libs-5.5.68-1.el7.x86_642.下载安装mysql#下载wget......
  • 在腾讯云上创建一个玩具docker-mysql数据服务
    有时候开发需求会自己做一下测试数据,在自己电脑本地安装的服务多了电脑环境会搞的很乱,这时使用云服务器安装个docker服务是一个不错的寻找。下面步骤是在腾讯云上安装dock......
  • MyBatis的使用三(在sql语句中传值)
    本文主要介绍在mybatis中如何在sql语句中传递参数一.#{}和${}1.#{}和${}的区别#{}是预编译处理==>PreparedStatement${}是字符串替换==>S......
  • 公务员行测——语言理解与表达【语句表达】
    重回初中语文的感觉emmmm,多注重逻辑,最重要的一句话是:具体问题具体分析我的思路:思维导图:......
  • MYSQL Deadlock问题
    可以参考这篇文章进行排查:​​​MYSQL:1213Deadlock问题排查历程​​解决方案减小事务中的语句数量(代码的事务涉及行数过多,锁范围太大,很容易造成死锁)在业务中调整语句的执......