后端程序员可以不会写 SQL 语句吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容 #Wrapper { background-color: #e2e2e2; background-image: url("/static/img/shadow_light.png"), url("//cdn.v2ex.com/assets/bgs/circuit.png"); background-repeat: repeat-x, repeat-x; } #Wrapper.Night { background-color: #1f2e3d; background-image: url("/static/img/shadow.png"), url("//cdn.v2ex.com/assets/bgs/circuit_night.png"); background-repeat: repeat-x, repeat-x; background-size: 20px 20px, 162.5px 162.5px; }
Rush9999
V2EX    程序员

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

  •  
  • &nbs; Rush9999 2019-03-26 17:50:39 +08:00 20160 次点击
    这是一个创建于 2440 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我司进了两个后端,只会写 select * from ,其余复杂语句完全不会写,连 desc 都不知道是干什么的,排序倒叙就写负号
    第 1 条附言    2019-03-26 18:26:27 +08:00
    这种情况,我要和领导说吗?要怎么婉转的告诉领导?当前的业务的确不需要复杂业务逻辑,他们所有表,需要关联的全都加外键了,orm 现在的确够用,就连用户操作日志都关联了外键,而且还做了冗余,好多表设计看的莫名其妙。。。看着就糟心。。。
    185 条回复    2019-03-29 10:22:10 +08:00
    1  2  
    warcraft1236
        1
    warcraft1236  
       2019-03-26 17:52:37 +08:00
    这么初级的吗?
    Rush9999
        2
    Rush9999  
    OP
       2019-03-26 17:53:39 +08:00
    @warcraft1236 也不知道面试怎么进来的,说只会用 orm
    leisurelylicht
        3
    leisurelylicht  
       2019-03-26 17:54:12 +08:00 via iPhone
    平时都用 orm 的吧
    cnoder
        4
    cnoder  
       2019-03-26 17:54:52 +08:00
    不会可以学(`·ω·)
    F281M6Dh8DXpD1g2
        5
    F281M6Dh8DXpD1g2  
       2019-03-26 17:55:07 +08:00 via iPhone
    一般不都不会么...
    welkinzh
        6
    welkinzh  
       2019-03-26 17:55:35 +08:00
    orm 用多了,还好吧
    darknoll
        7
    darknoll  
       2019-03-26 17:56:51 +08:00
    除了这个,这俩还有啥特征?
    jxf2008
        8
    jxf2008  
       2019-03-26 17:57:56 +08:00
    我是做 C++的,现在在一家医疗器械公司做彩超的操作软件
    现在 SQL 语句也是会 SELECT xxx FROM xxx。
    数据库只用 Sqlite3.
    术业有专攻,反正目前对数据库这块我用到的很初级。
    Latin
        9
    Latin  
       2019-03-26 17:57:59 +08:00   2
    都会了没啥用,那还要 DBA 干嘛,头顶已经很稀薄了。就不要强人所难了
    Rush9999
        10
    Rush9999  
    OP
       2019-03-26 17:59:54 +08:00
    @darknoll 数据库有三个字段 a,b,c 关系是 a+b=c ,a,b 两个字段是常用更新的,我问为什么要加 c 字段,他告诉我,c 字段要排序,orm 不会写,所以就填上了。
    VoidChen
        11
    VoidChen  
       2019-03-26 18:00:11 +08:00   6
    不会吧。。。我以为 sql 是标配技能哦。。。
    qq976739120
        12
    qq976739120  
       2019-03-26 18:01:32 +08:00
    我也是...不用 orm 就是个废物,不知道那些熟练用 sql 的是怎么做到大,平时的业务 orm 就可以做到的啊,复杂的 sql 也是 dba 提供的...
    fsafdasfsdafsd
        13
    fsafdsfsdafsd  
       2019-03-26 18:01:44 +08:00   1
    sql 语句基本的就 10 来个知识点而已。
    看一遍,写写自然就会了。
    又不是算法或者数据结构,sql 还算得上技能?
    2kCS5c0b0ITXE5k2
        14
    2kCS5c0b0ITXE5k2  
       2019-03-26 18:01:58 +08:00   5
    你司还招人吗,
    zhiguang
        15
    zhiguang  
       2019-03-26 18:02:10 +08:00
    业务开发就要,搞技术中间件啥的应该可以不用
    allanzhuo
        16
    allanzhuo  
       2019-03-26 18:04:55 +08:00 via Android   1
    刚培训的嘛,我不信哪个后端不会写 sql 的
    lusi1990
        17
    lusi1990  
       2019-03-26 18:04:56 +08:00
    不可以
    levon
        18
    levon  
       2019-03-26 18:05:17 +08:00
    有用临时看下就会了
    ifxo
        19
    ifxo  
       2019-03-26 18:06:51 +08:00
    可以啊,不过国内公司都是想招一个全能的
    Fitz
        20
    Fitz  
       2019-03-26 18:07:08 +08:00   14
    没听说过负号, 孤陋寡闻了....
    orangeade
        21
    orangeade  
       2019-03-26 18:09:18 +08:00 via Android
    业务开发不懂 sql,小心搞挂数据库
    duoglas
        22
    duoglas  
       2019-03-26 18:09:55 +08:00
    不行
    saulshao
        23
    saulshao  
       2019-03-26 18:10:49 +08:00
    后端程序员不会写 SQL 应该是不行的,不过 SQL 简单,读一下文档基本就会了。
    4DAX07B8Kle4Dm6T
        24
    4DAX07B8Kle4Dm6T  
       2019-03-26 18:10:57 +08:00 via iPhone
    基本的一些 sql 肯定要会的,desc 和 asc 都不知道就有点过分了
    jy02201949
        25
    jy02201949  
       2019-03-26 18:11:57 +08:00
    简单的应该会吧,要不出问题怎么查
    AlisaDestiny
        26
    AlisaDestiny  
       2019-03-26 18:13:41 +08:00
    如果是实习的话可以适当放宽。
    DamonLin
        27
    DamonLin  
       2019-03-26 18:17:21 +08:00
    可以不会写,但是要懂这段 sql 大概的意思把,即使不会也要仿着写,慢慢锻炼自己。
    aimaodeyuer
        28
    aimaodeyuer  
       2019-03-26 18:18:47 +08:00
    哈?难道不是应该会写 sql 吗。不要求存储过程啥的,起码的几种 join、索引、函数得知道吗?难道现在后端只要写逻辑,sql 抛给 dba 就行了?
    annielong
        29
    annielong  
       2019-03-26 18:18:49 +08:00
    看业务吧,内容管理类的只用增删修,orm 足够了,有些复杂的业务甚至得上过程函数才有行
    jswh
        30
    jswh  
       2019-03-26 18:20:17 +08:00
    负责的 sql 确实不会写,从来没用过存储过程
    jswh
        31
    jswh  
       2019-03-26 18:20:24 +08:00
    @jswh 复杂
    rb6221
        32
    rb6221  
       2019-03-26 18:20:47 +08:00
    传说中的 CRUD 工程师
    不是,好像 CRUD 都没全
    CFO
        33
    CFO  
       2019-03-26 18:26:14 +08:00 via Android
    我写了三年后端 水平还停留在刚入门第一周时学会的 join 上 也够用 遇到难的就搜搜改改
    说到底 常用的一周怎么着也该学会了吧
    rr41ns
        34
    rr41ns  
       2019-03-26 18:26:37 +08:00
    羡慕,啥公司啊?
    想进
    th00000
        35
    th00000  
       2019-03-26 18:28:47 +08:00
    我觉得看行业经历吧.......
    来游戏行业试试? sql 语句也用不到。
    Dogergo
        36
    Dogergo  
       2019-03-26 18:29:37 +08:00
    SQL 是后端工程师的必备技能吧。
    skd918
        37
    skd918  
       2019-03-26 18:31:17 +08:00 via Android   2
    我会写 SQL,不会 ORM
    bccoder
        38
    bccoder  
       2019-03-26 18:34:32 +08:00 via Android
    不行,我 Android 都会点简单的
    onepunch
        39
    onepunch  
       2019-03-26 18:35:10 +08:00
    不会写 sql,调优就更不会了 。估计会挖很多坑
    fsafdasfsdafsd
        40
    fsafdasfsdafsd  
       2019-03-26 18:39:55 +08:00
    1.
    http://www.runoob.com/sql/sql-tutorial.html
    请让你同事看 2 个小时

    2.
    “用户操作日志都关联了外键,而且还做了冗余,好多表设计看的莫名其妙。。。看着就糟心。。。”
    我始终没看懂哪里有问题?
    guyeu
        41
    guyeu  
       2019-03-26 18:51:52 +08:00
    emmm 这个都有鄙视链了吗,越来越多的公司用 NoSQL,我是不是也应该问一下后端程序员为啥不会写 Javascript。。。
    贵司用 MySQL 是不是还要要求一下所有后端都要会 MySQL 方言。。
    blackjar
        42
    blackjar  
       2019-03-26 18:53:35 +08:00
    冗余有时可以提升查询效率 建议不要一棍子打死
    ARhen
        43
    ARhen  
       2019-03-26 18:57:09 +08:00
    连 desc 都不知道是干什么的??? 只会写 select ??
    一句 sql 不会也算正常,但是会 select,不晓得 desc ?
    asuka02
        44
    asuka02  
       2019-03-26 18:58:30 +08:00 via iPhone
    @guyeu 我司后端人人都是兼职前端
    guyeu
        45
    guyeu  
       2019-03-26 19:01:30 +08:00
    @asuka02 #44 优秀的公司才有这么优秀的员工,佩服佩服
    Rush9999
        46
    Rush9999  
    OP
       2019-03-26 19:05:52 +08:00 via iPhone
    @ARhen 我让他倒序查一下 他就在前面加了个负号 然后给我看结果集 我说怎么不用 desc 他说以前没用过
    asuka02
        47
    asuka02  
       2019-03-26 19:17:00 +08:00 via iPhone
    @guyeu 不是不是,我司在二线城市领导招人基本上都是五年以上的,所以年纪比较大平均年龄 31,做后端的那个年代都是前后端一条龙
    sheeta
        48
    sheeta  
       2019-03-26 19:22:54 +08:00
    还缺人吗
    sampeng
        49
    sampeng  
       2019-03-26 19:45:01 +08:00
    sql 居然算技能?
    简历上写熟练 sql 的都是直接默认扣 10 分的。。。
    viWww0vvxmolvY5p
        50
    viWww0vvxmolvY5p  
       2019-03-26 21:33:04 +08:00 via Android
    必须得还,最好还懂得多种数据库 sql 的区别
    ala2008
        51
    ala2008  
       2019-03-27 00:01:42 +08:00
    orm 就不写 sql 了么。。
    fcoolish
        52
    fcoolish  
       2019-03-27 00:04:27 +08:00
    他们两工资有 7K 吗
    zkeeper
        53
    zkeeper  
       2019-03-27 03:29:54 +08:00
    可以记不住具体关键字, 用的时候翻手册没关系. 但你说的这种情况过分了, 这是连数据库基本概念都不全的那种.

    我对自己(以及合格工程师)的要求是: 对某个方向(比如线程安全, 数据库), 必须知道主要概念, 大概明白有哪些坑需要回避. 但是具体的 API 等可以在需要用到的时候查, 甚至现学都没关系, 只要你学得够快.
    gps949
        54
    gps949  
       2019-03-27 08:09:20 +08:00 via Android
    不会就学不就行了?
    我觉得人的(理科)聪明才智包含三方面:逻辑思维能力、知识、经验。
    逻辑思维能力需要系统花时间气力和方法培养,知识学就是了,经验则时间相关。
    做重复劳动的后两点比较重要,做的工作创造性越强的则越看中第一点。第一点强则可举一反三,原本什么也不会,第一天学了一点第二天就会三点了,第一点弱的话可能本来会一点,结果到第三天还是只会那一点。
    kobe6666
        55
    kobe6666  
       2019-03-27 09:03:28 +08:00
    基础的 curd,排序,索引这些知识都是必备的
    yuikns
        56
    yuikns  
       2019-03-27 09:05:39 +08:00
    @jxf2008 c++ 通用代码 leveldb/rocksdb 值得了解一下。
    zhangsen1992
        57
    zhangsen1992  
       2019-03-27 09:17:18 +08:00
    curd 都不会了,人人都是程序员~
    sugars
        58
    sugars  
    PRO
       2019-03-27 09:29:02 +08:00
    我一个前端都会一些 sql 了,你说呢
    allgy
        59
    allgy  
       2019-03-27 09:47:12 +08:00
    不会写 sql,复杂的业务靠 ORM 实现不了
    iamjs
        60
    iamjs  
       2019-03-27 09:48:57 +08:00
    @sampeng 招产品经理的话 加这句 怒加 20 分。。。
    axbx
        61
    axbx  
       2019-03-27 10:06:59 +08:00
    用 mongo 这种非关系型数据库可以不用 sql,但是会还是要会,没办法保证以后都不用
    pkoukk
        62
    pkoukk  
       2019-03-27 10:22:13 +08:00
    我找第一份工作的时候也只会 select ....但是我学会日常用的那些东西没超过两小时....
    我觉得没什么
    nicebird
        63
    nicebird  
       2019-03-27 10:26:08 +08:00
    sql 我也不太记得。
    看业务领域,有些领域喜欢用非关系数据库或者 orm 够用,就不是很熟练。
    另外 sql 本身就是查查手册就行了,sql 必知必会也没几页吧。
    yoshiyuki
        64
    yoshiyuki  
       2019-03-27 10:37:56 +08:00
    说明你们公司面试就不考察 SQL
    不考察 SQL 说明你们领导就不在意 SQL
    你还打算去说啥
    keysona
        65
    keysona  
       2019-03-27 10:47:52 +08:00
    我自己也是做后端开发。

    一般情况用 orm 就够了,就是特殊情况需要手写 sql,这时我通常都忘了,需要花个 10 几分钟复习下。当然,增删改这种是没问题的,有问题是的修改表的结构这种不常用的,这时我都忘记怎么写了。

    我的看法是,允许你不会,需要用到的时候迅速搞出来就行了。和正则表达式一样。每次我要写正则,都要花个几分钟看看正则的例子...毕竟不常用。
    Marmot
        66
    Marmot  
       2019-03-27 11:08:56 +08:00
    直接撸,简单的可以,复杂的查一查,desc 不知道就夸张了
    wind3110991
        67
    wind3110991  
       2019-03-27 11:24:11 +08:00
    作为后端开发,别说常用 CRUD SQL,
    explain、慢查询优化、死锁分析、数据引擎、索引原理和优化、包括事务的隔离性等等,这些都是标配技能
    xuanbg
        68
    xuanbg  
       2019-03-27 12:05:33 +08:00
    后端不会写 SQL 现在还是比较普遍的。。。

    所以经常会有程序员年龄大了找不到工作的问题,该学习的不学习,找不到工作才是正常的好吗。
    unco020511
        69
    unco020511  
       2019-03-27 12:44:35 +08:00
    给多少钱干多少事
    tt67wq
        70
    tt67wq  
       2019-03-27 13:02:50 +08:00
    学个一上午不就会了
    no1xsyzy
        71
    no1xsyzy  
       2019-03-27 14:39:11 +08:00
    怎么说呢,会写 list comprehension 就会写 SQL,这两个其实描述的都是数学公式
    ` $$ \left\{ x \middle| x \in N \wedge x = 1 \left(\mod 2\right) \right\} $$ `{.latex}
    ` [ x for x in count() if x % 2 == 1 ] `{.python}
    ` SELECT numbers AS x FROM NaturalNumbers WHERE x % 2 = 1 `{.sql}
    hayi
        72
    hayi  
       2019-03-27 14:52:01 +08:00
    弱弱的问一句 你们说的 orm 是什么
    romisanic
        73
    romisanic  
       2019-03-27 15:19:30 +08:00
    sql 都不会,那估计对数据库相关的知识就更没什么了解了。
    还算什么后端?
    Azmaveth
        74
    Azmaveth  
       2019-03-27 15:38:34 +08:00
    怎么感觉比我还弱呢~~~~~~~~~~
    lastpass
        75
    lastpass  
       2019-03-27 15:42:42 +08:00
    自从集成了通用 mapper 之后,就好久没有写过 sql 了。
    \(////)\
    zhangqilin
        76
    zhangqilin  
       2019-03-27 15:48:09 +08:00
    前两天来面试的
    问怎么删除一条数据
    drop table
    说实话
    感觉后端不会写 sql 的可以统一认为是培训班出来的了
    hafuhafu
        77
    hafuhafu  
       2019-03-27 16:00:38 +08:00
    这串让我自信了起来..
    yc8332
        78
    yc8332  
       2019-03-27 16:30:40 +08:00
    这。。怎么招进来。。你们面试也太水了吧
    ecoyrage
        79
    ecoyrage  
       2019-03-27 16:40:32 +08:00
    @zhangqilin
    drop table 也太强了吧哈哈哈哈哈哈哈哈或哈哈哈哈或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或或
    Sparklingredstar
        80
    Sparklingredstar  
       2019-03-27 16:40:38 +08:00
    desc 也不知道也太夸张了
    zhang1215
        81
    zhang1215  
       2019-03-27 16:44:09 +08:00
    学一遍就记住的东西
    CtrlSpace
        82
    CtrlSpace  
       2019-03-27 17:05:45 +08:00   3
    后端面试不是要问到数据库知识的吗?

    不是从数据页结构、日志系统、B+树索引,到事务隔离、锁和性能优化吗?
    不是主备、主从、高可用吗?

    SQL 语句根本不屑于问吧。。。这都不会真的说不过去
    vinsony
        83
    vinsony  
       2019-03-27 17:10:37 +08:00   1
    好牛逼,我都不知道用负号。。。
    weiliangweiliang
        84
    weiliangweiliang  
       2019-03-27 17:15:23 +08:00
    后端不会 sql 有点过分了吧,都是培训出来的?
    LinInV2
        85
    LinInV2  
       2019-03-27 17:24:57 +08:00
    @CtrlSpace
    我也是这么要求自己的.....前段时间恶补了这些知识
    wongy
        86
    wongy  
       2019-03-27 17:27:05 +08:00
    我目前写的代码 都是用 ORM 框架 CRUD 的 sql 语句 恐怕只有面试的时候会了解一下了
    如果操作数据 都是用可视化软件
    arseBurger
        87
    arseBurger  
       2019-03-27 17:29:44 +08:00
    基本的 crud 要会把
    orangeade
        88
    orangeade  
       2019-03-27 17:32:07 +08:00 via Android
    @guyeu
    这叫鄙视链?笑
    看各大公司招聘 jd 不就知道了,web 开发谁敢找个不懂 SQL 和数据库原理的,给自己埋地雷
    HuHui
        89
    HuHui  
       2019-03-27 17:33:00 +08:00
    建议辞退
    silentstorm
        90
    silentstorm  
       2019-03-27 17:33:57 +08:00
    @zhangqilin
    感觉你要招一颗定时炸弹进来,哈哈哈
    silentstorm
        91
    silentstorm  
       2019-03-27 17:40:48 +08:00
    有时候客户生产环境只能 SSH 连接,出 BUG 时候检查 DB 还是需要手写 SQL 的。复杂的一时想不起来很正常,DESC 不知道就有点儿说不过去了。
    bruce00
        92
    bruce00  
       2019-03-27 17:52:26 +08:00 via iPhone
    公司:至少跑路的时候不会删库
    RookieXie
        93
    RookieXie  
       2019-03-27 17:53:00 +08:00
    昨天面了个说是三年工作经验的 然而连 orm 不知道是什么
    tabris17
        94
    tabris17  
       2019-03-27 17:56:46 +08:00
    别把任何架构性质的任务交给他们,否则你擦屁股擦死
    Yiki
        95
    Yiki  
       2019-03-27 18:00:05 +08:00
    这样也能进吗- -
    难道后端不需要写 sql 吗
    难道我前端写多了
    时代变了????
    glaucus
        96
    glaucus  
       2019-03-27 18:03:04 +08:00 via iPhone
    1. 怎么通过面试的?
    2. 贵司还招人吗?
    zwfengwu
        97
    zwfengwu  
       2019-03-27 18:05:42 +08:00
    只是个单词啊 知道又怎么样, 一般都是经常用,可能不知道怎么称谓而已吧
    cdlixucd
        98
    cdlixucd  
       2019-03-27 18:05:48 +08:00
    @fcoolish 正常啊,我司两程序员,一年一个二次开发项目,月薪税后 7k 多的 9k是不是老板是傻逼
    Rush9999
        99
    Rush9999  
    OP
       2019-03-27 18:08:56 +08:00
    @tabris17 已经在擦屁股了,要不我才不会管这些东西合不合理,今天看见数据库有一个表,里面有四个字段,表达一个东西,一个字段用 1,2,3,4 都能表示,我现在就是视而不见,服务能跑就跑吧,代码全是重复的,我也懒得删了,我跟测试说,出问题了,谁写的找谁,别找我
    dremy
        100
    dremy  
       2019-03-27 18:13:43 +08:00 via iPhone   1
    楼上这么多说后端不会写 SQL 都合格的,真让人怀疑 V 站的平均技术水平
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2503 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 04:41 PVG 12:41 LAX 20:41 JFK 23:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86