中国统计网|SQL太难?你离完全理解SQL就差这10步!
- 点击上方“中国统计网”设置?星标不迷路!-
本文插图
很多程序员视 SQL 为洪水猛兽 。 SQL 是一种为数不多的声明性语言 , 它的运行方式完全不同于我们所熟知的命令行语言、面向对象的程序语言、甚至是函数语言(尽管有些人认为 SQL 语言也是一种函数式语言) 。
我们每天都在写 SQL 并且应用在开源软件 jOOQ 中 。 于是我想把 SQL 之美介绍给那些仍然对它头疼不已的朋友 , 所以本文是为了以下读者而特地编写的:
- 在工作中会用到 SQL 但是对它并不完全了解的人
- 能够熟练使用 SQL 但是并不了解其语法逻辑的人
- 想要教别人 SQL 的人
SQL 是一种声明式语言
首先要把这个概念记在脑中:“声明” 。 SQL 语言是为计算机声明了一个你想从原始数据中获得什么样的结果的一个范例 , 而不是告诉计算机如何能够得到结果 。 这是不是很棒?(译者注:简单地说 , SQL 语言声明的是结果集的属性 , 计算机会根据 SQL 所声明的内容来从数据库中挑选出符合声明的数据 , 而不是像传统编程思维去指示计算机如何操作 。 )
SELECTfirst_name, last_nameFROMemployeesWHEREsalary >100000上面的例子很容易理解 , 我们不关心这些雇员记录从哪里来 , 我们所需要的只是那些高薪者的数据(译者注:salary>100000 ) 。我们从哪儿学习到这些?如果 SQL 语言这么简单 , 那么是什么让人们“闻 SQL 色变”?主要的原因是:我们潜意识中的是按照命令式编程的思维方式思考问题的 。 就好像这样:“电脑 , 先执行这一步 , 再执行那一步 , 但是在那之前先检查一下是否满足条件 A 和条件 B ” 。 例如 , 用变量传参、使用循环语句、迭代、调用函数等等 , 都是这种命令式编程的思维惯式 。2SQL 的语法并不按照语法顺序执行
SQL 语句有一个让大部分人都感到困惑的特性 , 就是:SQL 语句的执行顺序跟其语句的语法顺序并不一致 。 SQL 语句的语法顺序是:
- SELECT[DISTINCT]
- FROM
- WHERE
- GROUP BY
- HAVING
- UNION
- ORDER BY
- FROM
- WHERE
- GROUP BY
- HAVING
- SELECT
- DISTINCT
- UNION
- ORDER BY
SELECTA.x + A.yASz FROMA WHEREz =10-- z 在此处不可用 , 因为SELECT是最后执行的语句!
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 中年|中国-东盟区块链应用创新实验室揭牌
- IT爆料猿|中国电信6月5G用户数净增779万户,累计3784万
- 2020|影谱科技入选“2020中国AI商业落地价值潜力100强榜单”
- 中国航务周刊|港航业再现跨界收购!
- 招生|有道词典与中国教育在线合作,开通“高考招生”直播服务
- CSDN|由 Apache 说开,中国开源项目已经走向世界!
- AI财经社|谷歌云为何“放弃”中国市场?有人为它算了账,投入产出比太低
- 网速|全球网速排名:中国手机网速世界第三,美国第34
- 驱动中国|国内首次应用!支付宝开放宠物鼻纹识别技术:猫狗都能买保险
- 魅族|2020年BrandZ中国全球化品牌50强新鲜出炉,魅族再上榜,位列34名
