深入理解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 *
数据分析咨询请扫描二维码
CDA数据分析师在中国航信高科技产业园进行了面向测试度量的数据分析培训课程,培训人数近2 ...
2024-05-01CDA数据分析师走进深圳迈瑞生物医疗电子股份有限公司,在迈瑞总部展开了为期两天的培训,本次课程参训人员线上及线下近百人, ...
2024-05-01CDA数据分析师在合肥市对合肥阳光新能源科技有限公司开展了为期8天的企业内训。 合肥阳光新能源科技 ...
2024-05-01CDA数据分析师走进海尔大学,进行了《数据治理与数据中台建设的道与术》专题培训,培训现场爆满,近百人参加了此次培训。 ...
2024-05-01在中国银行苏州分行培训中心开始数据分析师培训,此次培训课程共10天内容,包括Excel、MySQL、概率论与数理统计、SPSS等内容, ...
2024-05-01从实际的业务需求出发,结合行业的典型应用特点,围绕实际的商业问题,探讨数据挖掘、机器学习模型在金融领域的应用,包括获客、信用评分、细分画像、交叉销售、反欺诈、违规识别、时序预测、运筹优化、流程挖掘九个方面,形成 ...
2024-05-01本次培训课程为线上+线下的模式,由于学员编程能力不一、部分学员没有编程基础,故提供统计学、python基 ...
2024-05-01华夏银行信用卡中心-机器学习培训 1、课程亮点 取材于业界一流企业和顶级咨询公司的行业实践;已经被证明是人人 ...
2024-05-01主 题:数据中台建设及数据分析应用主题分享 1. 数据中台市场洞察 2. 主流数据中台产品比较 3. 某企业数据中 ...
2024-05-01围绕“数据驱动”战略,全力打造我行 300 人数字化人才梯队,着力培养数字化管理人才、大数据专业团队 ...
2024-05-01在当今数据驱动的商业环境中,数据分析成为了企业决策的重要依据。通过对大量数据的收集、处理和分析,企业能够更好地理解市场 ...
2024-04-29在人工智能(AI)的世界里,提示词(Prompt)是一种强大的工具,它能够引导AI按照用户的需求产生特定的输出。本文将深入探讨AI ...
2024-04-29CDA立足未来职场,拓展前沿视野——对外经贸大学保险学院举办“三全育人大讲堂”分享行业最新动态。 ...
2024-04-294月2日,CDA数据分析师创始发起人兼协会理事长赵坚毅博士受邀在浙江万里学院举办了一场以“数字化能力在职场中的作用” ...
2024-04-29随机森林(Random Forests)现在机器学习中比较火的一个算法,是一种基于Bagging的集成学习方法,能够很好地处理分类和回归的问 ...
2022-12-23方差分析是数据分析中常用的一种统计分析方法,接下来让我们简单了解一下方差分析的基本思想和原理吧。 方差分析(Analysis ...
2022-12-23来源:关于数据分析与可视化 关于streamlit-aggrid 数据排序 表格样式的调整 数据 ...
2022-08-03作者:麦叔 定义 「把上面晦涩的概念汇成一句话就是:」 ❝ 回调函数就是一个被作为参 ...
2022-08-03现今,高学历人群日益增多,物以稀为贵的高学历光环淡去。无论本科生还是研究生,甚至博士生,求职竞争力都大不如前,就业压力越来越大。
2022-06-01某家企业10个人面试,有9个本科生……如何脱颖而出,除得体的举止和良好的沟通力外,证书成重要筹码,这也是很多人考证的关键所在。
2022-04-14