前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL思维 VS 编程思维

SQL思维 VS 编程思维

作者头像
用户2936994
发布2022-07-21 13:47:01
2590
发布2022-07-21 13:47:01
举报
文章被收录于专栏:祝威廉祝威廉

先给出一个题目:

现在有十万个主键ID,对应某个记录表的主键。现在是写代码要求把十万个ID对应的记录拿到。

我下面给出两个方式。

第一个是,用SQL里的In查询,但是因为受限于SQL自身的长度,我们不可能把十万个ID都放到一条SQL里,所以我们将ID集合切分,然后并发去访问得到结果。

代码语言:javascript
复制
select * from table1 where id in (....ids...)

第二个方式是,将ID保存成一个表A,然后将A和记录表进行Join关联。

如果是第一种做法,那么这就是我说的"编程思维",而第二种则是“SQL思维”。

我之前将"编程思维","SQL思维"发了个朋友圈,问大家他们之间有啥区别,答案五花八门。不过就我的认知而言,SQL本质上是面向集合,将一切操作都转化为集合操作。而编程的话,则是一种高度灵活的思维,他本身没有给你一个方向,所以一般大家会按照编程的自然习惯,也就是for循环的思维去解决问题。

通常而言,我们在编程时,用的最多的其实就是集合类,做的非常多的也是对集合进行操作。但是编程语言自身并没有对如何操作集合给出一个“规范的”思维,因为它允许用户用无数的解决方案去解决。而SQL则对这一类操作做了一个总体的设计和规范,如果你习惯了SQL的模式,大部分数据操作会很简单。

以编程思维为主的人接触SQL会觉得各种别扭,还是觉得自己for循环(包含if/else)的模式更可控,更自由。但是,一个相对来说复杂一点的SQL完成的任务,如果让大家用for循环模式来完成(其实就是用一些基础的集合类),大家可能会花一天甚至几天的时间才能完成,并且性能可能会比较差,而SQL可能只要几分钟。

SQL的流行取决于数据自然就是按集合组织的,无论有无数据库(SQL),他都会是这种形态。那么SQL又天然是面向集合操作,自然会有很强的能量。

Excel -> SQL -> Python, Excel符合托拉拽的操控数据,所以是最广泛的操作数据的工具,其次就是SQL了,Python虽然流行,但他是一个通用的语言,复杂度摆在那。

所以我这些年一直以来,一直努力于MLSQL,一个以SQL为主内嵌Python的新语言,这有别于其他的统一的大数据分析/AI工具以Python为主,内嵌SQL。最易于被人接受的才是最有价值的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档