首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

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

  •  
  •   Rush9999 · 24 天前 · 10549 次点击
    我司进了两个后端,只会写 select * from ,其余复杂语句完全不会写,连 desc 都不知道是干什么的,排序倒叙就写负号
    第 1 条附言  ·  24 天前
    这种情况,我要和领导说吗?要怎么婉转的告诉领导?当前的业务的确不需要复杂业务逻辑,他们所有表,需要关联的全都加外键了,orm 现在的确够用,就连用户操作日志都关联了外键,而且还做了冗余,好多表设计看的莫名其妙。。。看着就糟心。。。
    185 回复  |  直到 2019-03-29 10:22:10 +08:00
    1  2  
        101
    ryan18   23 天前 via Android
    这些玩意几天就学会了吧,看人愿不愿意学了
        102
    passerbytiny   23 天前
    ORM 不是理由,即使是 JPA/Hibernate 这种高级抽象的 ORM,也只是以对象为主要内容而不是全部内容,必要的时候还要 Native Sql。其它低级抽象 ORM,半 ORM 就更不用说了。

    别提 NoSql,我尝试过用 Spring Data Redis 做业务处理,被打脸了,Redis 不支持事务。其它的 NoSql,要么不是给后端用的,要么只是临时用。

    另外 desc 不是 SQL 专用的,对象也是需要排序的。desc 都不知道,那就不是不会 sql 的问题了,而是能力有问题。
        103
    nicking   23 天前
    @hayi hh,我之前也不知道百度了下就知道了,mybatis,Hibernate 就叫 orm 中间件
        104
    dengtongcai   23 天前
    sql 又不难 多背背就好了
        105
    OMGZui   23 天前 via Android
    不可以
        106
    leedong00   23 天前
    我不信做后端只会写 select,那他妈咋干活啊
        107
    loading   23 天前 via Android
    先辞退再说
        108
    RangerWolf   23 天前
    看这个人的潜质啊
    比如够努力, 够聪明,愿意学习, 这就是人才, 不会的那就请他自己学习一下。
        109
    YouXia   23 天前
    后端也包括的很广,比如做 infr,我工作前几年,一条 SQL 也没有写过。后来开始搞 OLAP 才慢慢会写,不过水平肯定不如很多做业务的同学好。
        110
    k9990009   23 天前
    数据库设计要有人把关~ SQL 不熟悉还是多练,数据统计的需求多了就熟了
        111
    mmdsun   23 天前 via Android
    基本操作。SQL 都不会还干嘛
        112
    hubqin   23 天前 via Android
    sql 必知必会 看个一两天 自己跟着敲一边就会了
        113
    smallX   23 天前
    是不是 ruby 程序员
        114
    wmhx   23 天前
    应届的吧, 不会还可以学的么? 碍你什么事了?
        115
    murmur   23 天前
    sql 语法是计算机本科课程,这和前端那坨东西不一样
        116
    Flobit   23 天前 via Android
    会数据库和前端,我算什么?
        117
    chunleioo123   23 天前
    @CFO 有一个 CAS 集成的问题,想请教你一下 麻烦回复我一下邮件 希望能交一个朋友或者提供适当报酬 邮箱 13650521814@139.com 期待您的来信 谢谢
        118
    chunleioo123   23 天前
    @CFO 有一个 CAS 集成的问题,想请教你一下 麻烦回复我一下邮件 希望能交一个朋友或者提供适当报酬 邮箱 13650521814@139.com 期待您的来信
        119
    shiny   23 天前
    估计只考了算法忘记考 SQL 了
        120
    cpdyj0   23 天前
    会 SQL 不会 ORM 找得到工作吗 [斜眼笑]
        121
    dremy   23 天前 via iPhone   ♥ 1
    @cpdyj0 可以转行做数据分析
        122
    hantsy   23 天前
    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 )结合用。
        123
    fsafdasfsdafsd   23 天前
    @dremy
    后端为什么一定要会写 SQL ?
        124
    fsafdasfsdafsd   23 天前   ♥ 1
    我在这个帖子里的回答
    https://www.v2ex.com/t/548945#reply140
    你的阅读理解能力有问题,我不想表达
    ““所以你的比喻一点也不恰当,你想表达写前端不用懂 tcp 这个观点也是错的””
    这个观点。

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


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

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

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

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

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

    普通后端,不会写 sql 只能说明你一点不上进.
        139
    scnace   23 天前 via Android
    那肯定 NoSQL/NewSQL 玩的很 6 了
        140
    bestkayle   23 天前 via iPhone
    @fsafdasfsdafsd #125 我觉得你肯定没看过微软 Google 面试题
        141
    ToT   23 天前
    我觉得如果领导不懂技术,不会关心这些细节。只有你们有需求要提升后端处理效率的时候,他们才有动力学习研究。
        142
    duan602728596   23 天前 via iPhone
    什么?现在后端都不用写 sql 了?
        143
    cuebyte   23 天前
    很多會 SQL 的程序員平時還不是寫寫 CURD ⋯ 五十步笑百步沒意思。
        144
    815979670   23 天前 via Android
    只会 orm 可以开发项目 增删改查都能解决 但是 存储过程呢 主从分离呢 这是基本功 ,不会也能做项目 但是 作为后端 不应该
        145
    shiji   23 天前
    如果单学 SQL 语法,不需要熟悉 DBMS 的话,一个周末的时间你就能驾驭了。
        146
    rob001   23 天前 via iPhone
    我一个前端最近都拷贝数据库、写复杂查询、链接,复合、子查询、多表都写了。不过既然用了 orm,你怎么知道别人是不会写 sql 还是不需要不想写呢? orm 不是不用写 sql 吗?我用 spring boot,django 什么的也都不写 sql。desc 我看的时候知道是排序但怎么也记不起来是升序还是降序,但百度了一下就知道了。用 excel 里也有啊!计算机二级不考吗?
        147
    CodeCommunist   23 天前 via Android
    在中国,不是 mybatis 才主流吗,现在流行分布式,微服务什么的,orm 根本做不来
        148
    calpes   23 天前
    会不会不重要,如果每天都用的话,一个礼拜能上手(日常需求没问题),俩月能精通(性能调优),拥有这样的学习能力,这才是程序员的必要条件,不然哪天你们要整个 es 啥的,是不是又要问从来没用过 es 是不是一个合格的程序员了。。。
        149
    Marsss   22 天前 via iPhone
    楼上老哥说的对,不要光凭会不会就看低一个人,要看他在工作需要的时候从不会到会的学习能力。在允许的情况下,如果你觉得这个年轻人人品还可以,尽量给点机会吧。
        150
    ebingtel   22 天前
    不行……不会 SQL 基本上也不会数据库设计吧…… ls 说的可以不会,大多数是因为自己不会吧……
        151
    Variazioni   22 天前
    这是基本技能啊。。又没有多难。。抽几天时间学学都不行么。。
        152
    VoidChen   22 天前
    @fsafdasfsdafsd 但是这位大牛要用 sql 不用 2 天就能学会,这就是差距明白吗。
        153
    wweir   22 天前 via iPhone
    不会写 SQL。但如果需要的话,可以详细分析一条 SQL 在数据库内的具体流转过程,分布式同样可以分析。
    单纯用到的少,不想花这时间
        154
    chtcrack   22 天前
    后端最基本的增删改查必须要会吧..
        155
    zqguo   22 天前
    可以,会扯就行。
        156
    66beta   22 天前 via Android
    当时的技术面试官是几个意思?
    前端都会考啊,几个范式写不出总能说说吧
        157
    ScorpioQ   22 天前
    游戏后端,用的是 NoSQL 数据库。。。我真不会 @_@
        158
    arthas2234   22 天前
    作为后端 SQL 不是基础吗。。就算有 ORM,也会有用到 SQL 的时候吧。再说你有 SQL 的基础,对 ORM 理解也容易很多
    而且学校没有有关数据库的课,我是不信的
    我们公司,前端都会写 SQL,别说后端了
        159
    liuxey   22 天前
    后端不会写 SQL 是不合格的,但不合格不代表不能胜任工作
        160
    rockyou12   22 天前
    后端不一定对 sql 很熟,不会真的是搞笑了。即使是 jpa 一类的 orm,你不写原生 sql 也总有必须要写 jpql 或者 native sql 的时候,我们也用 querydsl 去解决一些复杂查询,但真特别复杂多个连表的时候 jpql 还是好用得多。

    再说你用其他的后端存储,现在有几个不支持 sql 查询的?而且 sql 简单学一下要不了一天吧? inner outer left join 这些你暂时不晓得区别还能理解,order by 都写不出来还写啥代码……
        161
    NieKing   22 天前
    我搞不懂咋招进来的。。。
        162
    specita   22 天前
    倒序排序负号是一种方法吧,如果字段有 NULL,对这个字段进行排序的时候,负号和 DESC 的输出顺序就是不一样的,所以用负号排序也是有使用场景的,但只会写 select *肯定是初级的吧,只要肯学,指点一下也可以啊
        163
    amon   22 天前
    if (综合能力不错) {
    瑕不掩瑜
    return
    }
    if (公司是否宁缺毋滥) {
    让他滚蛋
    return
    }
    还能咋地
        164
    ilaipi   22 天前
    不可以。甚至连前端、P 图都要会,sql 基本功能不会?
        165
    tt67wq   22 天前
    @ilaipi #164 真 全干工程师
        166
    micean   22 天前
    互联网程序员不需要写报表吗?
        167
    Keyes   22 天前 via iPhone
    @murmur 别说本科了,专科都是必学必考 233
        168
    Seney   22 天前
    @guyeu mysql 方言可以不清楚 但是做 oracle 真的需要了解 oracle 数据库的特定用法 以及后端一般都需要学 js 的 不对 应该所有人都应该学 js 毕竟是时代宠儿
        169
    cuzfinal   22 天前
    先开掉一个,然后让另一个学 SQL,看看效果。
        170
    pynix   22 天前
    比较懒吧。。
        171
    binux   22 天前
    我的底线是需要了解的知识,至少 w3schools 上面有的东西你得有个印象吧。
    读一遍 https://www.w3schools.com/sql/default.asp 都用不着两天的。
        172
    ruandao   22 天前
    我 sql 最熟悉的是 大学时候
    后面没用到...服务端开发的时候, 基本和 redis 打交道...
        173
    xiaxiaokang   22 天前 via iPhone
    有一种人,钱是要多的,事是不想干的
        174
    voidbean   22 天前
    连 desc 都不知道有点过分了……
    而且就算如此 sql 基础那点东西学起来也不难啊
    如果让他们学都不行的话这问题就更大了
    赶紧甩给 boss 处理
        175
    chinvo   22 天前 via iPhone
    @fsafdasfsdafsd #40 外键、索引会降低写性能,所以有些不需要严格外键约束的地方要避免
        176
    fuchaofather   22 天前
    如果是低价招来的应届生, 那也不能抱怨了. 不是的话就辞退得了
        177
    Luckyray   22 天前
    我靠我连负号都不知道....只会 desc
        178
    swordne   22 天前
    @hayi 数据库对象映射关系。
        179
    AngelCriss   22 天前
    我前两年分别做了对冲基金的交易系统,和 http 缓存系统,连数据库都没用到过。我可能是个假的后端,甚至连后端是啥都不知道?
        180
    guanhui07   22 天前
    会 orm 也会 sql 了吧
        181
    SakuraKuma   22 天前
    前端不会 js 可以吗,可以,页面仔(现在很少了吧
    后端不会 sql ?那干嘛,怎么入职的。
        182
    songkai   22 天前
    不会 sql,你们公司也是真心大。
        183
    Shiyq   22 天前
    学呗,又不难
        184
    way2create   21 天前
    这些都要会的吧,专业搞数据库的那些知识我倒是不太清楚
        185
    ccgoing10   21 天前
    做 ebs 的,就是写 sql
    1  2  
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   851 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 19:22 · PVG 03:22 · LAX 12:22 · JFK 15:22
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1