后端程序员可以不会写 SQL 语句吗?

2019-03-26 17:50:39 +08:00
 Rush9999
我司进了两个后端,只会写 select * from ,其余复杂语句完全不会写,连 desc 都不知道是干什么的,排序倒叙就写负号
20002 次点击
所在节点    程序员
185 条回复
dremy
2019-03-27 19:22:10 +08:00
@cpdyj0 可以转行做数据分析
hantsy
2019-03-27 20:36:30 +08:00
SQL 依然有用,但现在显然真的没那么重要。JPA/Hibernate 查询语言几乎可以代替 SQL。

以前工作中,总有人想当然说的写 SQL 效率会比 JPA/Hibernate 高。除非你是某种数据库方面的专家,懂得调优具体 SQL,否则 90%以上的情况下,我完全不相信一般程序员写出来的 SQL 会比 JPA 最终转化成的 SQL 更好。

现在的新项目中,基于代码维护的要求,我们基本倾向于使用 Type Safe 的查询语句(不再使用字符串查询语句),比如 JPA/Hibernate 的 Criteria 查询,或者 QueryDSL (支持 JPA,JDBC,Mongo 等),即使要用 SQL,JOOQ 是个不错选择。

NOSQL 和 RDBMS 哪个适合要看场景来用。

Redis 作为 Key/Value 方案不用质疑,也常用作 Cache 和共享 Session。MongoDB 是作为文档型的数据库,而且支持 GridFS。ElasticSearch 可以用来支持全文搜索。这些 Spring 和 Spring Data 项目都有集成,以我最近几年的项目来看,基本不会使用单一数据库了,都是用几种数据库(包含 NOSQL 和 RDBMS )结合用。
fsafdasfsdafsd
2019-03-27 20:37:27 +08:00
@dremy
后端为什么一定要会写 SQL ?
fsafdasfsdafsd
2019-03-27 20:41:39 +08:00
我在这个帖子里的回答
https://www.v2ex.com/t/548945#reply140
你的阅读理解能力有问题,我不想表达
““所以你的比喻一点也不恰当,你想表达写前端不用懂 tcp 这个观点也是错的””
这个观点。

我想表达的是这样一个观点,
你和 lz 不是计算机正规科班出身的,
因为我觉得你连计算机一个基本思维能力都没有,
那就是分层思维。
就是不断从抽象到具体,
一层一层逐渐细化的过程。


什么时候计算机成背书式的科目了?
计算机应该是索引式的科目。

你从某本书里面抽一个点,问他他答不上来,这不是他的问题,而是你的问题。你应该不懂计算机学科该怎么学?
不懂具体的技术细节不可怕,可怕的是不知道哪里可以去找到相关的技术细节和整体的知识框架。

我从来没觉得前端应该不用懂 tcp, 我只是觉得你那 tcp 头部有多少字节去考前端人员,人家答不上来就说人家技术不行,在我看来,你连计算机该怎么学都没入门,
真的就是培训学校出来的,因为这个知识点我懂,你不懂,所以我比你牛。

没有基本的计算机学科的能力,这是我想表达的观点。
chendeshen
2019-03-27 20:44:33 +08:00
万物基于 CRUD
fsafdasfsdafsd
2019-03-27 20:44:33 +08:00
我说句不好听的,
大家可以看看谷歌微软这些企业面试考的都是什么,你去看看他们会不会抽一本书让你背?
说到底这么面试,无非就是一帮熟练工而已,一个稍微懂多点东西的熟练工看不起不那么懂的民工,真没什么可骄傲的,打工的而已。
murmur
2019-03-27 20:50:07 +08:00
@fsafdasfsdafsd 因为 SQL 是本科计算机的课程。。。
iyaozhen
2019-03-27 20:51:53 +08:00
你要其它都会,只不会 sql,那毫无问题。

关键是很可能其它也不会呀
fsafdasfsdafsd
2019-03-27 20:53:21 +08:00
@murmur
我知道啊,我们学校有位人工智能大牛,本校本硕博,你让他现在去写 sql,我也不觉得他能写出来。
我只想表达的是,计算机比谁背的书多那真是悲哀了。
fakeshadow
2019-03-27 21:06:52 +08:00
不会 sql 的要么是水货,要么就是特别领域专精。虽然不能全都一棒子打死,但隔一个打死一个应该还有漏掉的。
lincanbin
2019-03-27 21:27:52 +08:00
如果岗位是 CRUD boy,那么不会 SQL 是不可饶恕的。
catror
2019-03-27 21:30:44 +08:00
后端太广了,可能以往的业务不需要使用数据库,也可能用的是 NoSQL 数据库。不过这都不重要,现在工作需要使用,他愿不愿意去学才是关键。
aver4vex
2019-03-27 21:31:33 +08:00
不会写,会查也行呀,拿别人的改改能用不就得了。
mskf
2019-03-27 21:42:07 +08:00
以前做 ERP,大部分的业务光靠 ORM 是不够的,不过写 sql 这件事并没有难到没办法在工作中学习就是,用 ORACLE,mysql 这些数据库的时候基本都是现学现用,再借鉴一下别人的 sql 语句,也足够了
blubzz
2019-03-27 21:48:43 +08:00
后端分很多种,有很多不需要使用关系数据库的
witcat
2019-03-27 22:01:52 +08:00
相当于前端不会写 css
javaWeber
2019-03-27 22:17:45 +08:00
最近项目里,都是直接调那些写好的 ORM 接口,我都没怎么写 sql。。
lolizeppelin
2019-03-27 22:22:26 +08:00
别拿什么大牛来给你当挡箭牌 你又不是大牛

普通后端,不会写 sql 只能说明你一点不上进.
scnace
2019-03-27 22:29:02 +08:00
那肯定 NoSQL/NewSQL 玩的很 6 了
KgM4gLtF0shViDH3
2019-03-27 23:03:18 +08:00
@fsafdasfsdafsd #125 我觉得你肯定没看过微软 Google 面试题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/548826

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX