V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
failman
V2EX  ›  程序员

全栈工作两年,面试基础的 SQL 都没写出来,为什么

  •  
  •   failman · 2 天前 · 6480 次点击

    腾讯外包一面被评价基础不扎实。 估计是手写的 sql 关键词顺序都错了。 工作的时候基本都是 ORM 或者 ide 辅助写 sql ,实在不会问 ai 提供思路能解决 90 的 sql 。(没想起来这么解释)

    72 条回复    2025-10-19 23:47:23 +08:00
    perbugwei
        1
    perbugwei  
       2 天前   ❤️ 11
    工作是工作,面试是面试。面试得复习的。
    Ketteiron
        2
    Ketteiron  
       2 天前   ❤️ 1
    候选人太多了,其他人能写出来。
    newaccount
        3
    newaccount  
       2 天前   ❤️ 4
    还是写的少了呗,不然咋样,说你还不够“全栈(全干)”?

    至少我认为的全栈:
    老大你给我配个前端啊,不能天天让我凑合着写这玩意啊,我又不熟,说好了啊,我先弄着,下个月,下个月一定给我一个前端
    你到是给我个 DBA 啊,啥叫自己优化,我业务都来不及做,数据库你找个专职的弄啊,说好了啊,等人到位这活儿高低不能我继续干了
    不是,老大啊,运维离职了你抓紧招新的啊,天天让我顶着不是个事儿啊,这马上年底了业务我都做不过来了啊
    咋又让我去装系统,软件弄弄半天就过去了我东西还没做完呢啊,他们不会你让他们做几次就懂了啊
    yolee599
        4
    yolee599  
       2 天前 via Android
    我只会 select * from table; 插入和更新都要查
    junkk
        5
    junkk  
       2 天前
    说实话我觉得挺正常,工作都是 orm ,gui 工具还有 tab 补全
    members
        6
    members  
       2 天前
    如果是基础的语句那确实不应该哈,如果是复杂的那纯粹就是供大于求,只能搞一些规则来筛选人。
    哪怕 T10 日常工作中也会犯小错误,太正常了。
    最后,日常工作中 ORM 真的很方便。遇到过用原生 SQL 的项目,太傻逼了,难写、容易出错、难以维护、代码变丑。
    Greendays
        7
    Greendays  
       2 天前
    我也已经不会写 SQL 了
    fstab
        8
    fstab  
       2 天前
    现在工作都是面试严格,工作简单。
    CEBBCAT
        9
    CEBBCAT  
       2 天前   ❤️ 1
    命运它并不公平,有时候没能力的人入职了,能做事的人却被拒绝

    不过兄弟你看看你正文的字,它们读着通顺吗?

    https://s2.loli.net/2025/10/17/6RqSifhrbZgayl4.png
    failman
        10
    failman  
    OP
       2 天前
    @newaccount 确实是比较菜,然后现在都是依赖 Ai 混日子🥲
    BeforeTooLate
        11
    BeforeTooLate  
       2 天前
    以后会越来越多的,AI 后,人会越来越懒
    c6h6benzene
        12
    c6h6benzene  
       2 天前
    关键词顺序…where group by order by having 这些?就算常写的都是靠 IDE 提示的…反正 execute 跑不出来改一下就是了,SQL 第一次跑不通太常见了。
    peteretep
        13
    peteretep  
       2 天前
    基础不牢,不问自己怎么学的,问别人为什么????

    为什么不体谅你???
    yuanmomo
        14
    yuanmomo  
       2 天前 via iPhone
    @yolee599 就这一条就得在阿里背一个 3.25
    Vegetable
        15
    Vegetable  
       2 天前
    说白了就是没怎么写过呗,确实是不扎实,没什么不好承认的。
    基础能力是最好考察的,你解释了也没用。
    Hyxiao
        16
    Hyxiao  
       2 天前
    很正常,我以前面试也遇到手写 sql 的,很简单的分页查询,我 limit 用法都用错了🤣。也经常遇到很简单的问题,也回不上的情况,多投多面就行了,面完及时复习,不要被影响到心态
    newtype0092
        17
    newtype0092  
       2 天前
    干过后端会记得比较深把,虽然用也用 ORM ,但实际上调试、测试、线上排查都是直接手写的的多,跟骑自行车一样很难忘记了。
    darksword21
        18
    darksword21  
    PRO
       2 天前
    我也不会,因为我天天在用 dynamodb 啊。。。

    正经点:这东西面试前要复习的,和八股文差不多了
    maocat
        19
    maocat  
       2 天前
    请你说一下 Redis 有哪些数据结构
    `我不知道,但是我每次需要用的时候会用 GPT 问一下(我会用 GPT 哦,你肯定不会用)`

    请你说一下 Redis 实现分布式锁有什么优缺点
    `我不知道,但是我每次需要用的时候会用 GPT 问一下(我会用 GPT 哦,你肯定不会用)`

    请你说一下你们这个项目为什么用 Postgres ,而不是 MySQL
    `我不知道,但是我每次需要用的时候会用 GPT 问一下(我会用 GPT 哦,你肯定不会用)`
    deplives
        20
    deplives  
       2 天前
    @yuanmomo 还好我都是 select 8
    wsseo
        21
    wsseo  
       2 天前
    因为没用 AI 。你跟面试官讲讲 AI 有多火,讲讲 AI 的重要性,他再不会 AI 机会被淘汰。
    wulin2008
        22
    wulin2008  
       2 天前
    还是写的少,我是做 MES ,几乎全部时间都是在写 sql 、函数、包,单条 sql 在 plsql 美化后最长记录是 1500 行,啥优化手法都信手拈来
    daodao
        23
    daodao  
       2 天前
    好像除了后台查询数据有时候还需要用到手写 sql ,但基本上也是很简单的够用了。编写代码更用不上,基本都是 ORM 操作,人家都封装那么好了,手写 sql 确实没啥意义。只适合考试用。
    Wanex
        24
    Wanex  
       2 天前   ❤️ 2
    @wsseo 面试官:你跟我说这些,我先把你淘汰了再说
    zerovoid
        25
    zerovoid  
       2 天前   ❤️ 1
    不要因为别人的筛选机制内耗自己,
    人家完全可以因为你左脚先踏入考场,把你 pass 掉。
    JKeita
        26
    JKeita  
       2 天前
    ORM 用多了呗。
    Cruzz
        27
    Cruzz  
       2 天前
    面试全靠运气,你以为你能答上来就会要你了么。别内耗了,看开点吧。
    CEBBCAT
        28
    CEBBCAT  
       2 天前
    @daodao #23 ORM 只是封装而已,它们不对性能负责。不管是自己开发还是审阅同事/AI 的 SQL ,都需要对性能优化有了解。

    不用说复杂的,UPDATE JOIN or SELECT 两层 JOIN ,没有很复杂的逻辑,优化一下就能把 SQL 时间降一个数量级( SQL 30 行 107 个 word ,3 个表)。只是每人业务不同,有的场景下不涉及到而已。


    @zerovoid #25 附议。在现在买方市场下,面试不为应聘者负责,招聘方自由度很高,面试时的表现、纰漏、面试官给的理由,都可以看开点
    baleeny
        29
    baleeny  
       2 天前
    美国大公司面试已经不用刷题了,直接让你带 ai 上面试
    ZGame
        30
    ZGame  
       2 天前
    @wulin2008 这是大屏报表类需求吧。
    WithoutSugarMiao
        31
    WithoutSugarMiao  
       2 天前
    工作七年,面试时候也写不出来 sql 。只要让写手写 sql ,从来没完完整整写出来过。
    chouvel
        32
    chouvel  
       2 天前
    @CEBBCAT 我读起来没啥问题啊,该停顿的时候写了逗号,

    除了`实在不会问 ai 提供思路能解决 90 的 sql 。`,这里的 90 应该是 90%,以及 ai 之后应该加一个逗号会通顺许多。
    edisonwong
        33
    edisonwong  
       2 天前
    看起来不是真正意义上的全栈。排查问题场景有吧? dba 维护也有吧?洗数据有吧?(就不说要统计出数了)都是要手写 sql 的,即便你按 tab 补全,这东西你一旦写过,这辈子都不会忘记的
    stormtrooperx5
        34
    stormtrooperx5  
       2 天前
    手写不了 sql ,全是 ai 写的,自然语言 -> SQL 基本不会出错
    Georgedoe
        35
    Georgedoe  
       2 天前
    那还有什么好说的,sql 都写不出来就是不合格
    edisonwong
        36
    edisonwong  
       2 天前
    进阶的话,用 orm 也应该对 sql 长什么样子有个了解,这样在一些场景优化里有所帮助,比如 force index

    当然,也可以说:“我就一个 crud ,orm 不断 tab 完事了,管它 sql 啥样, 查出来不就得了”
    op351
        37
    op351  
       2 天前
    某些特定系统上确实依赖手搓 sql 比较多 比如制造生产上的系统 mes ,erp 之类的,本身系统设计上就偏向于直接用 sql 来完成需求和解决问题,就算你想用代码来替代 sql 也是不支持的,在这种行业多干几年确实 sql 会手搓的飞起。
    failman
        38
    failman  
    OP
       2 天前
    @edisonwong 现在我都习惯让 ai 给一个初版,然后直接调试,哪里错了改哪里😳
    rb6221
        39
    rb6221  
       2 天前
    看到这个帖子,我也刷新了一个新的认知,就算有了 AI ,自身的技能也不能丢,这就是佐证。
    Gilfoyle26
        40
    Gilfoyle26  
       2 天前
    写 SQL 最厉害的估计就是:DBA > 大数据 > 后端 > 其他
    skyyan
        41
    skyyan  
       2 天前
    张无忌 练成太极后 还会不会记得招式
    lscho
        42
    lscho  
       2 天前
    简单的增删改查、子查询、join 、索引写不出来那真没办法录取。。。

    写不出来意味着你对 sql 一点都不熟悉,用 orm 你都不知道怎么优化
    zsc8917zsc
        43
    zsc8917zsc  
       2 天前
    还是写的少,如果经历过一个存储过程上千行 sql 的毒打,形成肌肉记忆,那脑子忘了也能上手就写。
    wheat0r
        44
    wheat0r  
       2 天前
    越是全栈,越是记不住具体操作
    zhangyou1010
        45
    zhangyou1010  
       2 天前
    SELECT FROM WHERE 执行的先后顺序是什么?
    lesismal
        46
    lesismal  
       2 天前
    我一直抵制 ORM ,建议不要用 ORM 。

    现在 AI 确实强,不太需要自己写 SQL 了。
    thtznet
        47
    thtznet  
       2 天前   ❤️ 1
    你可以不写不用,但不能不会。别把问题推到什么 ORM 、IDE 补全,AI 查询,就是基础不扎实。中国人多,人才也多,从来不缺基础扎实的人,不然为啥要中考、高考层层选拔?考试考的哪些知识是真天天用得上的?哪个不是可以通过 AI 查得出来的?为啥背不出、默不出就要被淘汰, 你说我会查字典、会解决问题,有啥用?一大把既背得出,还默得出,信手捏来的人不会用 ORM 么?拼的就是基本盘。
    zhengfan2016
        48
    zhengfan2016  
       2 天前
    我个前端昨天面试也是被问 sql ,还问 python 不用 request 等任何 lib 的话怎么发送 get 请求,我瞎猜个 urlib3 ,然后直接把我挂了
    zhengfan2016
        49
    zhengfan2016  
       2 天前
    @lesismal 没办法,其他语言没有 golang 的 sqlc
    wulin2008
        50
    wulin2008  
       2 天前   ❤️ 1
    @ZGame #30 我们公司的 MES 系统,逻辑都是写在数据库的,应用界面只是简单的展示,所以每天都是写 sql 、优化 sql ,我又是做计划排程的,逻辑又多又复杂,sql 写多了就熟练了
    craftsmanship
        51
    craftsmanship  
       2 天前 via Android
    那确实是不扎实 两年全栈真的差得远呢 大概让你手写 CSS 你也写不了复杂布局
    streamrx
        52
    streamrx  
       2 天前 via iPhone
    别想多了,就算写出来也不一定会过,好好准备下一次就行了
    LandCruiser
        53
    LandCruiser  
       2 天前
    面试和高考是一样的,本质是卷,看谁卷的厉害,这个形式不重要。举个例子,你 github 每天全绿,你写不出 sql 面试官也不会说你什么,因为你足够卷了。
    zhengfan2016
        54
    zhengfan2016  
       2 天前
    @LandCruiser 毛线,不知道 github 可以刷的吗,每天全绿更可疑好吧。要不机器人刷的,要不就是每天上班工作不饱和偷偷写自己项目。你看那些 996 的大厂员工,多少个 github 全绿?
    twofox
        55
    twofox  
       2 天前 via Android
    写得少的原因。或许你的工作中也比较少接触报表类的需求吧。我以前写报表类比较多,业务也有很多要自己写 SQL 的,我应该还好
    leo72638
        56
    leo72638  
       2 天前 via iPhone
    细节不记得正常,这些东西真用到的时候随时查反而不用记。所以面试需要复习,该背的还得背
    elinktek
        57
    elinktek  
       2 天前
    騰訊就是個垃圾啊,外包更是狗都不去,沒必要為了兩個垃圾生氣,不如投海外遠程工作
    YoYoLikesCiCi
        58
    YoYoLikesCiCi  
       1 天前
    躺了八个月刚进腾讯外包。。。
    zhengfan2016
        59
    zhengfan2016  
       1 天前
    @YoYoLikesCiCi 腾的外包怎么样啊,我不关心歧视什么的,真的有双休吗
    mightofcode
        60
    mightofcode  
       1 天前
    面试者太多了
    还需要考察你的服从性,稳定性,确保你能抗压力,稳定干活
    所以要问这些并不实用的知识点
    WarlockMan
        61
    WarlockMan  
       1 天前
    基础素养不合格,上层工具用的再溜也只是个打工仔
    理工科死磕基础的铁律永不过时
    sir283
        62
    sir283  
       1 天前
    我怎么就想不到这种水贴的话题。
    WarlockMan
        63
    WarlockMan  
       1 天前
    假如面试官让弄个高阶复杂的查询,sql 可以很灵活的组合构建,orm 就傻眼了。
    上层工具把基础屏蔽不代表不需要重视基础了
    sundev
        64
    sundev  
       1 天前 via iPhone
    比较疑惑,就算有 orm ,如果要做报表类的基本都要写 SQ 吧 ?
    hafuhafu
        65
    hafuhafu  
       1 天前
    再依赖 AI 或 ORM...关键字顺序和简单 SQL 写不出来都很离谱吧。只是原来 SQL 掌握的就不行,AI 的出现解决了需求但是掩盖了问题。
    gam2046
        66
    gam2046  
       1 天前
    浴皇大帝乔杉曾说过:不是你不够优秀,而是哥的要求有点高。
    abelmakihara
        67
    abelmakihara  
       1 天前
    现在这行就是对记忆力不好的不友好
    noyidoit
        68
    noyidoit  
       1 天前
    我工作中遇到的所有问题都能独立解决,但之前面试拿到最多的面评就是“深度不够“。自己做面试官后,从用人方的视角重新审视这一切,排除我没见过的那些高端面试,大多数面试(我通过各种方式参与或了解到的)都只是双方在逢场作戏,问题流于表面,拿到的结果比 vibe coding 的还要 vibe 得多。没表演好不是你不行,只是你还得练
    lesismal
        69
    lesismal  
       1 天前
    @zhengfan2016 sqlc 生成代码的方式、性能当然是最好的,但也有不方便,比如一个 tx 、后续 tx 多个操作、操作之间还有一堆其他代码逻辑,这种如果修改功能之类的,也是麻烦。sqlx 、ent 我也都觉得不好用,所以我自己搞了个 sqlw ,raw sql+自动的 struct 绑定,日常用着省力多了。比如:

    model := Model{
    I: 1,
    S: "str_1",
    }

    result, err := db.Insert("insert into sqlw_test.sqlw_test", &model) // 也可以 insert []model
    // result, err := db.Insert("insert into sqlw_test.sqlw_test(i,s)", &model) // insert the specified fields
    if err != nil {
    log.Panic(err)
    }


    var models []*Model // type []Model is also fine
    result, err = db.Select(&models, "select * from sqlw_test.sqlw_test")
    // result, err = db.Select(&models, "select (i,s) from sqlw_test.sqlw_test") // select the specified fields
    if err != nil {
    log.Panic(err)
    }
    000sitereg
        70
    000sitereg  
       13 小时 27 分钟前
    就是基础不行。
    面试类似考试,平时有计算器 考试也不能用啊。
    而且大公司基本上用接近原生的比较多。比如 mybatis ,spring 自带的 jdbc 等等。
    bronyakaka
        71
    bronyakaka  
       12 小时 32 分钟前
    最近天天优化 sql ,反而不太想用 orm 了,sql 一眼就知道干什么的而且非常清晰
    nzbstn
        72
    nzbstn  
       1 小时 40 分钟前
    面试大炮打飞机, 实际天天在后勤拧螺丝
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1093 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:28 · PVG 01:28 · LAX 10:28 · JFK 13:28
    ♥ Do have faith in what you're doing.