scheduled每5分钟执行一次_干货:5分钟读懂SQL的执行顺序

私信我或关注微信号:猿来如此呀,回复:学习,获取免费学习资源包。

学过 Sql,或了解过 Sql 的人,应该都会写下面这行代码:

select * from t

上面代码表示查询 t 表中的所有信息,是 Sql 查询中最基础,最简单的一行代码,你可以把它理解成是其他编程语言中的Hello World。

4b5b75140af3c6bcfdf4e7782d8fea6c.png

select * 只是你迈入 Sql 大门的第一步,在真实工作中,肯定不止这么简单的。我们来看一个例子。

现在有下面一个表 t ,存储了每个商品类别的成交明细,我们需要通过下面这张表获取订单量大于10对应的类别,并从中取出订单量前3的商品类别,会有一些测试的订单(catid=c666的为测试),我们需要过滤掉。

750995cdb20bb8f131a952afc629b831.png

要做上面的需求,我们的 Sql 可以这么写:

select

catid,

count(orderid) as sales

from

t

where

catid <> "c666"

group by

catid

having

count(orderid) > 10

order by

count(orderid) desc

limit 3

上面的 Sql 代码中涉及到 select、from、where、group by、having、order by、limit这7个关键词,基本上包括了 Sql 中所有的查询关键词,上面的顺序是这7个关键词的语法顺序,也就是你在写代码的时候,应该按照这个顺序写,那这7个关键词的执行顺序是什么样的呢?也就是先执行哪个再执行哪个?

可以肯定的是,肯定不是从上至下执行,如果是这样子的话,就没有写这篇文章的必要啦。

我一直坚持的一个态度就是,计算机在做事的时候和人没什么两样,基本逻辑和流程都一样,毕竟计算机也是人设计出来的。那既然这样,我们就来看看,如果是我们自己手动去做上面那个需求的时候,我们会怎么去做。

首先我是不是需要知道我要从哪个表去获取我想要的,也就是from;现在我知道从哪个表获取了,可是并不是这个表里面所有的信息都是我需要的,我需要把一些不需要的去掉(比如测试订单),或是把一些我需要的筛选出来,这就是where;现在我把我需要的订单明细筛选出来,可是我想要每个品类的订单量,这个时候是不是需要做一个分组聚合,也就是group by;分组聚合后的结果也并不是我们全部都要,我们只要大于10的品类,所以需要把大于10的筛选出来,非大于10的品类过滤掉,这就是having;现在我们想要的大部分信息都已经出来了,我们就可以用select把他们查询出来了;因为我们最后需要取前三的品类,所以我们需要把查询出来的结果进行一个降序排列,即order by;最后一步就是只把前三显示出来,做一个限制就行,也就是limit

以上就是 Sql 语句的一个基本执行顺序,总结一下就是:

from-where-groupby-having-select-orderby-limit

来源网络,侵权联系删除

私信我或关注微信号:猿来如此呀,回复:学习,获取免费学习资源包。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Spring Framework的@Scheduled注解来实现每一分钟执行一次的定时任务。您可以按照以下步骤进行操作: 1. 在您的Spring Boot应用程序中,确保已经添加了所需的依赖。包括spring-boot-starter和spring-boot-starter-web。您可能还需要添加spring-boot-starter-task依赖,以获得任务调度功能。 2. 在您想要执行定时任务的方法上添加@Scheduled注解。您可以指定cron表达式或使用固定的延迟时间。 例如,要每一分钟执行一次任务,您可以使用以下注解: ```java import org.springframework.scheduling.annotation.Scheduled; // ... @Scheduled(cron = "0 * * * * ?") public void yourScheduledMethod() { // 执行您的任务逻辑 } ``` 这个cron表达式表示每分钟的第0秒执行任务。 3. 确保在您的应用程序的主类上添加@EnableScheduling注解,以启用任务调度功能。 ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableScheduling public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } } ``` 4. 启动您的应用程序,定时任务将按照指定的cron表达式执行。 请注意,如果您使用的是分布式环境,您需要确保只有一个实例在执行定时任务,以避免重复执行

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值