MySQL语句执行顺序和编写顺序实例解析
作者:cknds 发布时间:2024-01-26 12:39:18
select语句完整语法:
SELECT
DISTINCT <select_list>
FROM <left_table>
<join_type> JOIN <right_table>
ON <join_condition>
WHERE <where_condition>
GROUP BY <group_by_list>
HAVING <having_condition>
ORDER BY <order_by_condition>
LIMIT <limit_number>
执行顺序:
from →join →on →where →group by→having→select→order by→limit
(1)各个关键词的作用:
from:需要从哪个数据表检索数据,如果有join则对 FROM 子句中的前两个表执行笛卡尔积(交叉联接),生成临时表(n×m行)
on:对以上临时表进行条件筛选
left/right (join):补充左表或右表保持完整。如果有关联多个表,则中间表对下个表继续以上两步的操作
where:过滤表中数据的条件
group by:如何将上面过滤出的数据分组
sum:聚合函数
having:对上面已经分组的数据进行过滤的条件
select:查看结果集中的哪个列,或列的计算结果
distinct:
order by :按照什么样的顺序来查看返回的数据
limit:限制查询结果返回的数量
(2)on与where的用法区别:
a.on后面的筛选条件主要是针对的是关联表【而对于主表刷选条件不适用】。
b.如果是想再连接完毕后才筛选就应把条件放置于where后面。对于关联表我们要区分对待。如果是要条件查询后才连接应该把查询件放置于on后。
c.对于主表的筛选条件应放在where后面,不应该放在on后面
(3)having和where的用法区别:
a.having只能用在group by之后,对分组后的结果进行筛选(即使用having的前提条件是分组)。
b.where肯定在group by 之前,即也在having之前。
c.where后的条件表达式里不允许使用聚合函数,而having可以。
(4)count用法
使用count(列名)当某列出现null值的时候,count(*)仍然会计算,但是count(列名)不会。
来源:https://www.cnblogs.com/yoyowin/p/12895236.html


猜你喜欢
- 1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PH
- 环境:Python3.6.4 + pandas 0.22主要是DataFrame.apply函数的应用,如果设置axis参数为1则每次函数每
- 本文实例讲述了Python实现基于HTTP文件传输的方法。分享给大家供大家参考。具体实现方法如下:一、问题:因为需要最近看了一下通过POST
- 效果图如下:图1(头像图片剪成圆形的,其他为透明)图2(给图片的4个角加椭圆)以前没处理过,处理起来真是有点费力呀。用到的模块:import
- 前言:存储引擎是数据库的核心,对于 MySQL 来说,存储引擎是以插件的形式运行的。虽然 MySQL 支持种类繁多的存储引擎,但最常用的当属
- 这些日子一直在简书上使用markdown写作,已经渐渐的痴迷于这种简洁纯粹的写作方式了。不过就我逐渐入门markdown的写作过程来看,目前
- python版本: Python 2.7.61: sys是python自带模块. 利用 import 语句输入sys 模块。当执行impor
- 前言深度学习涉及很多向量或多矩阵运算,如矩阵相乘、矩阵相加、矩阵-向量乘法等。深层模型的算法,如BP,Auto-Encoder,CNN等,都
- MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关。缺省地,大多数MySQL客户尝试使用当前Unix用
- pyecharts介绍pyecharts是python与echarts链接,一个用于生成Echarts图标的第三方库,pyecharts分为
- mysql5.6.28安装教程分享1、在安装MySQL-5.6.28.tar.gz前,先安装编译环境yum -y install
- 今天在写爬虫程序的时候由于要翻页,做除法分页的时候出现了totalCount = '100' totalPage = int
- 之前在懒懒分会上分享的一点关于border画小图的内容, 完整的ppt在这里.原理css盒模型一个盒子包括: margin+border+p
- 引言大家在日常工作中,经常会碰到类似的场景,需要计算在某个时间段内的工作日以及确定某天是否为工作日,这里的介绍的工具包将很好的解决这个问题。
- 给出地球上两点的经纬度,计算两点之间的球面距离。给出地球上三点的经纬度,求形成的三角形面积。对于这样的需求,可以通过使用半正失公式来计算得到
- MySQL事务处理(TransAction)思考了很久,决定写一篇关于mysql事务(transaction)的博客,一来嘛,因为最近在复习
- 项目测试对于一个项目的重要性,大家应该都知道吧,写python的朋友,应该都写过自动化测试脚本。最近正好负责公司项目中的api测试,下面写了
- 作为一个信号库,使用时候是支持一对一以及一对多的订阅模式,可以实现发送数据等,一般情况下,只要能够使用到Blinker的,一般都是应用在技术
- 废话不多说,大家直接看代码吧!"""遗传算法实现求函数极大值—Zjh"""imp
- python 获取星期字符串程序如下#WeekNamePrintV1.pyweekStr="星期一星期二星期三星期四星期五星期六星