京公网安备 11010802034615号
经营许可证编号:京B2-20210330
深入理解SQL大逻辑
1、只要结果不问过程
当我们写出一条SQL语句后,SQL语句是到数据库中去执行的,具体怎么理解和执行SQL是数据库的事,我们关心的事儿就是如何写好SQL语句,别让数据库对我们的SQL产生误解,造成SQL无法执行或者执行错误就好了。
有句古话,叫做“但行好事,莫问前程”,意思是自身要多做义举做好当下,而不要去牵挂往后的发展,这句话套用在SQL上就是“但行好事,莫问过程”,SQL只管告诉数据库,我要的数儿是什么,而不用管数据库是用什么方法把数据给你一行行提取出来的。
从个人经验来看,对与一个以前从未有过编写计算机程序的读者来说,学习SQL反而更加容易一些。这是因为SQL是一种非过程化编程语言。所谓的”非过程化”,是指不要求我们给出SQL查询的执行过程,只需要用户定义出执行后数据的结果,具体的执行过程则由执行该语言的数据库来实现。
如果你对上述叙述感到费解,那么恭喜你,你可能不会遇到以前因为学习过某种计算机编程语言的既有知识带给你学习SQL的困恼。
2. SQL的可视化理解
我们经常看到别人编写的很长的一段SQL语句,分析该语句的执行目的对于SQL初学者往往很困难。在这一节里,我们将结合一个非常具体的案例帮助大家理解SQL语句的执行顺序。
假设在数据库(或者Excel)里有以下两个表格,两个表格分别命名”左表”和”右表”。这两个表格是企业培训系统数据局中常见的数据结构,左表是为企业每个员工设置的他所要参加的培训类别,一个员工可以被指定多个培训类别(或者叫做”培训科目群组”),而每个培训类别包含多个培训项目,具体的培训类别和培训项目对照放在右表中。请仔细了解并弄懂以下两个表格之间的关系,因为,后面的解说全部参照这两个表格中的数据。
现在,结合这两个表格,我们想得到如下一个综合的表格:通过这个综合表格,可以知道每一个员工被指派的”所有具体的培训项目”。我们知道,在这个案例中,即使不用SQL,我们也能以左右两个表格中共有的”培训类别”字段作为关联获得这个结果。
假设我们对SQL还不是很熟悉,还不具备手动书写SQL的能力,请教了一位专家,他帮我们写出的SQL语句如下:
下面的问题是,怎么理解这个SQL语句呢?我们已经知道最基础的SQL语句是由SELECT…FROM…WHERE三段儿组成的,这三段儿的执行顺序如下图所示:
在最基础的SQL语句中,最先执行的是FROM,FROM关键字后面通常是SQL语句所涉及的所有表格名称,在这里涉及两个表格:[左表],[右表] 。
当该SQL语句发送到数据库时,FROM代码段中的两个表格会做一个交叉对接的操作,也就是:用左表的每一行记录和右表的每一行记录对接,形成一行新的记录,执行过程如下图。
FROM代码段的执行结果是在数据库内存中形成下面一个中间结果表格(我们在界面上是看不到的)。
执行完FROM代码段后,第二步执行的SQL语句段儿是WHERE,在案例中的SQL语句中WHERE语句段中的内容是:WHERE[左表].[培训类别]=[右表].[培训类别]
该语句段的作用相当于对FROM代码段的结果执行了一个”筛选”操作。筛选条件是:[左表].[培训类别]=[右表].[培训类别],筛选结果如下:
当整个SQL语句的FROM,WHERE代码段执行完毕后,最后执行的是SELECT代码段,SELECT代码段中的内容是:SELECT [工号],[左表].[培训类别],[培训项目] ,该代码段中的内容很好理解,就是把前面两步执行结果中的特定的列提取出来。我们还知道,如果想提取所有的列,可以把SELECT代码段改写成:SELECT *
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
手游行业具备用户迭代快、竞争激烈、用户粘性易流失的典型特征。随着新游持续上线、玩家审美升级、玩法疲劳等问题出现,存量用户 ...
2026-08-14在数字化产品运营、商业数据分析、业务增长管理中,零散的指标统计无法支撑系统性的业务决策。单一的点击率、转化率、销量数据只 ...
2026-08-14 很多数据分析师每天都在写SQL,但当被问到“数据查询语言(DQL)的本质是什么”“SELECT语句中各子句的书写顺序与实际执行顺 ...
2026-08-14在数据库数据分析、数据清洗、报表统计与业务查询场景中,日期时间是最高频、最核心的基础字段。数据库中存储的日期格式多样,包 ...
2026-08-13在数据统计分析与数据清洗工作中,箱线图是一种简洁高效、客观性强的数据可视化图表,能够直观呈现数据集的分布特征、离散程度和 ...
2026-08-13 很多数据分析师写过无数个SELECT查询,但当被问到“如何新建一张表来固化中间数据”“创建视图和创建物理表有什么区别”“视 ...
2026-08-13在自动化办公、数据采集、定时统计、日志清理、系统监控等场景中,程序往往需要按照固定时间间隔重复执行指定任务,这种运行机制 ...
2026-08-12在数据分析日常工作中,Excel数据筛选是数据清洗、数据提取、样本筛选的核心基础操作。传统Excel手动筛选、函数筛选方式,面对多 ...
2026-08-12 很多数据分析师精通Excel函数和数据透视表,但当被问到“数据从哪里来”“表和视图有什么区别”“数据库管理系统和SQL是什么 ...
2026-08-12在数据分析、统计建模、数据挖掘与商业调研过程中,原始数据往往无法做到绝对干净规整。受系统故障、人工录入失误、设备误差、突 ...
2026-08-11在数据分析工作中,聚类分析是典型的无监督学习方法,核心作用是依据数据自身的多维特征,将相似样本自动划分为若干类别,实现“ ...
2026-08-11 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-08-11AB实验是互联网产品迭代、营销优化、功能升级的核心科学验证手段,通过流量随机分组、对照组与实验组对比,科学验证策略、功能、 ...
2026-08-10在MySQL数据库优化中,索引是提升查询效率、降低数据库IO开销、优化系统性能的核心手段。普通单列索引仅适配简单查询场景,面对 ...
2026-08-10 很多数据分析师每天盯着几十个指标,但当被问到“这套指标要支撑什么业务目标”“指标之间是什么逻辑关系”“业务变化时如何 ...
2026-08-10在数字化市场调研体系中,大数据与小数据是两类核心调研数据形态,分别对应海量行为统计与精准样本深度调研。行业普遍存在认知误 ...
2026-08-07数据透视表是Excel、WPS中最核心的数据分析工具,凭借快速汇总、分组统计、动态筛选的优势,被广泛应用于销量统计、业绩复盘、数 ...
2026-08-07 很多数据分析师每天盯着GMV、DAU、转化率,但当被问到“哪些指标在所有行业都适用”“哪些指标只对电商有意义”“二者如何搭 ...
2026-08-07在商品销量、市场需求、营收规模等业务数据中,季节性波动是最普遍、最核心的数据特征。零售快消、食品餐饮、家电服饰、电商行业 ...
2026-08-06在流量红利消退、市场竞争白热化的商业环境中,传统依托经验、跟风投放、广撒网式的营销模式,逐渐暴露出成本高、精准度低、转化 ...
2026-08-06