select 与 where、group by、order by、limit 子句执行优先级比较

news2024/9/27 7:15:47

当 select 和 其他三种语句的一者或者多者同时出现时,他们之间是存在执行先后顺序的。

他们的优先级顺序是:where > group by > select > order by > limit


         目录

1、select 与 where 

2、group by 与 where 、select

2、select 与 order by

3、order by 与 limit

4、优先级证明


1、select 与 where 

select是展示查询结果,where是条件筛选。这里存在两种情况:

  • select先,where后:先查询到所有的记录,然后再按条件筛选出符合条件的,
  • where先,select后:筛掉不符合条件的,然后再展示符合条件的

很显然,后者是效率比较高的,站在C语言的逻辑就是,for循环遍历所有的记录,每遍历一条记录就判断该记录是否符合条件,不符合就舍弃;符合条件就加入到数组。

因此,where > select

 

2、group by 与 where 、select

where 是整表记录的筛选,group by是根据某一个字段的内容进行分组。

先进行整表筛选可以减少要分组的记录,然后group by 在筛选完的基础上进行分组,最后select在每一个分组中做查询操作。

因此,where > group by > select

2、select 与 order by

select是展示查询结果,order by 是排序,这里同样也分为两种情况:

  • select先,order by后:先查询到所有的记录,然后排序
  • order by先,select后:每遍历到一条记录,就对其进行排序,这样很显然,效率不高,说不定要重复遍历之前的记录

因此,前者的效率高一点,即 select > order by

3、order by 与 limit

order by 是排序,limit是截取,这里已经无需比较了,很显然是先排序,然后再截取,因为先选出几行,然后再排序没有意义。

因此,order by > limit

4、优先级证明

从上述介绍可以得出优先级顺序:where > select > order by > limit

我们可以在select语句中,为某个字段起一个别名,按照上述优先级,where子句中是无法使用该别名的,但是 order by 和 limit 子句可以使用该别名。

where中无法使用 select 定义的别名

 但是order by中可以使用select定义的别名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/340081.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Call for papers】CRYPTO-2023(CCF-A/网络与信息安全/2023年2月16日截稿)

Crypto 2023 will take place in Santa Barbara, USA on August 19-24, 2023. Crypto 2023 is organized by the International Association for Cryptologic Research (IACR). The proceedings will be published by Springer in the LNCS series. 文章目录1.会议信息2.时间节…

C++定位new用法及注意事项

使用定位new创建对象,显式调用析构函数是必须的,这是析构函数必须被显式调用的少数情形之一!, 另有一点!!!析构函数的调用必须与对象的构造顺序相反!切记!!&a…

分步骤详解随机生成一个登录验证码的算法,最后给出完整代码

需要安装第三方模块pillow import randomfrom PIL import Image, ImageDraw, ImageFont步骤一:编写一个生成随机颜色的函数 def get_random_color():return random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)步骤二:在面板里放…

31 岁生日快乐,Linux!

Linux 迎来了 31 岁生日,所以和我一起庆祝 Linux 的 31 岁生日吧,喝上一杯好香槟和一个美味的蛋糕!虽然有些人不承认 8 月 25 日是 Linux 的生日,但我知道。1991 年 8 月 25 日,21 岁的芬兰学生 Linus Benedict Torval…

三种方式查看linux终端terminal是否可以访问外网ping,curl,wget

方法1:ping注意不要用ping www.google.com.hk来验证,因为有墙,墙阻止了你接受网址发回的响应数据。即使你那啥过,浏览器都可以访问Google,terminal里面也是无法得到响应 百度在墙内,所以可以正常拿到响应信…

二分法攻略

本节内容只有通过例题来记录效果才是最好的,请看下面内容! 递归实现二分法 经典二分查找问题:LintCode 炼码 描述**:**在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回 -1。 输入&…

java spring完全注解开发

其实学习注解之后 我们也只有一个开启扫描需要xml的配置了 而 这一步 其实也是可以写到类里面的 我们这边先创建一个java项目 然后引入 spring需要的几个基本包 在src中创建一个包 叫 Bean Bean下创建 一个包 叫 UserData UserData 包下创建一个类 我这里叫 User 参考代码如…

Java List集合

6 List集合 List系列集合:添加的元素是有序,可重复,有索引 ArrayList: 添加的元素是有序,可重复,有索引LinkedList: 添加的元素是有序,可重复,有索引Vector :是线程安全的&#xff…

初识数据仓库

一、什么是数据仓库数据库 --> OLTP:(on-line transaction processing)翻译为联机事务处理记录某类业务事件的发生,如购买行为,银行交易行为,当行为产生后,系统会记录是谁在何时何地做了何事…

day11_python虚拟环境安装与配置

文章目录Windows下安装第一步,安装virtualenv改源参考第二步,安装virtualenvwrapper-winUbuntu下安装第一步、安装virtualenv和virtualenvwrapper第二步、配置.bashrc文件,添加下面三行第三步,用下列命令让修改后的.bashrc生效配置…

今天来聊一聊信息差,或许会刷新你的认知

有人会说:现在互联网信息这么发达,获取信息的渠道也越来越多,还会存在信息差吗?我的回答是:会,而且随着社会高速的发展,信息差会越来越明显。这里大家需要了解一个词:信息茧房信息茧…

植物育种中广义遗传力的定义

大家好, 我是邓飞。 今天聊一下广义遗传力的计算方法。 广义遗传力定义 广义遗传力(H2H^2H2)定义为归因于基因型总体遗传变异的表型变异比例。 通常他包括三个解释:(详见我这篇博客的公式推导 回归系数 相关系数 遗…

微信小程序_调用openAi搭建虚拟伙伴聊天

微信小程序_调用openAi搭建虚拟伙伴聊天背景效果关于账号注册接口实现8行python搞定小程序实现页面结构数据逻辑结速背景 从2022年的年底,网上都是chagpt的传说,个人理解这个chatgpt是模型优化训练,我们在用chatgpt的时候就在优化这个模型&a…

九龙证券|连续13周净流入!北向资金爆买“中字头”股票

Wind数据显现,本周北向资金净流入A股达29.33亿元,其间周四净流入121亿元,其他四个交易日均为净流出状况。尽管本周北向资金流入A股力度放缓,可是仍然保持着周度接连净流入态势。 接连第13周净流入 Wind数据显现,从202…

Redis核心知识点

Redis核心知识点Redis核心知识点大全五种数据类型redis整合SpringBoot序列化问题渐进式扫描慢查询缓存相关问题数据库和缓存谁先更新缓存穿透缓存雪崩缓存击穿实际应用超卖问题分布式锁全局唯一ID充当消息队列Feed流附近商户签到HyperLogLog实现UV统计持久化RDBAOF持久化小结事…

整型提升+算术转换——“C”

各位CSDN的uu们你们好呀,今天小雅兰的内容是之前操作符那篇博客中没有讲完的内容,整型提升这个小知识点也非常重要,那现在,就让我们进入操作符的世界吧 隐式类型转换 算术转换 操作符的属性 隐式类型转换 表达式求值的顺序一部…

opencv显示图像

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…

带头节点的单链表的就地逆置

目录 1.题目背景 2.思路方法分析 2.1采用循环实现的就地逆置法 2.2 递归方式实现的逆置 3.金句省身 1.题目背景 本题要求编写函数实现带头结点的单链线性表的就地逆置操作函数。L是一个带头结点的单链表,函数ListReverse_L(LinkList &L)要求在不新开辟节点的…

使用自己的数据集,测试mmrotate新网络rotated_rtmdet,旋转目标检测

1.安装 !!!!一定不要安装mmrotate 1.版本需求 mmcv 2.0.0rc2 mmdet 3.0.0rc5 mmengine 0.5.0 不用安装mmcv-full 下载mmrotate 1.x 源码 (不要下载默认的master,因为新的网络只在1.x版本中) …

【前端】Vue项目:旅游App-(23)detail:房东介绍、热门评论、预定须知组件

文章目录目标过程与代码房东介绍landlord热门评论HotComment预定须知Book效果总代码修改或添加的文件detail.vuedetail-book.vuedetail-hotComment.vuedetail-landlord.vue参考本项目博客总结:【前端】Vue项目:旅游App-博客总结 目标 根据detail页面获…