后端工程师不会手写 sql,可以接受不?

2018-05-28 16:31:15 +08:00
 chaleaochexist
select 肯定会写.
但是建表什么的,insert into 也不会...

如果没毛病我就不学了,有问题我就补补.想听听大家的看法.
16749 次点击
所在节点    程序员
125 条回复
arthas2234
2018-05-29 10:07:07 +08:00
。。不会写 SQL 一些问题你要怎么排查,数据库要怎么优化。要碰到没有 DBA 的公司,数据库都要你设计怎么办。我们运维和产品 SQL 都写的贼 6,别说是后端了
xsliang
2018-05-29 10:18:33 +08:00
w3school 有一个 SQL 的快速参考
http://www.w3school.com.cn/sql/sql_quickref.asp
那里忘了看哪里 当然不包括一些细节
silentstorm
2018-05-29 10:18:51 +08:00
嗯,没啥大问题。只要 update,delete 时候 where 语句别忘了写就行
Lanke0
2018-05-29 10:28:32 +08:00
我经常忘,需要复习
salamanderMH
2018-05-29 10:28:50 +08:00
不可能吧
YouXia
2018-05-29 10:29:28 +08:00
工作前 3 年,没写过 SQL。后来做数据库内核开发时候,开始学了点。
lazydog
2018-05-29 10:31:26 +08:00
如果没特殊要求的话,黑猫白猫抓到老鼠就是好猫!
southsala
2018-05-29 10:52:13 +08:00
对自己要求不高啊
hjw45611
2018-05-29 11:00:02 +08:00
增删查改、嵌套、联表等常用操作都写个例子,放在工作文档里,用到就看一下,怎么也能记住了。
ytll21
2018-05-29 11:01:16 +08:00
对自己没要求的话,可以不会。
enhancer
2018-05-29 11:04:02 +08:00
如果是做企业级应用开发的话,后端不会写 SQL 几乎无法干活。互联网应用情况可能稍微好一点。比如很普通的财务总账 SQL:

SELECT AB.subject_code code, AB.subject_name name
, IFNULL(AB.debit_amount_init, 0) debit_amount_init
, IFNULL(AB.credit_amount_init, 0) credit_amount_init
, IFNULL(AB.debit_amount_curr, 0) debit_amount_curr
, IFNULL(AB.credit_amount_curr, 0) credit_amount_curr
, IFNULL(C.debit_amount_end, 0) debit_amount_end
, IFNULL(C.credit_amount_end, 0) credit_amount_end
, IFNULL(D.debit_amount_total, 0) debit_amount_total
, IFNULL(D.credit_amount_total, 0) credit_amount_total
FROM
(SELECT B.subject_code, B.subject_name
, A.debit_amount_init, A.credit_amount_init
, B.debit_amount_curr, B.credit_amount_curr
FROM
(SELECT subject_code
, subject_name
, SUM(debit_amount) debit_amount_init
, SUM(credit_amount) credit_amount_init
FROM accounting_document_item adi, accounting_document ad
WHERE adi.doc_id = ad.id
AND date_format(accounting_date, '%Y%m') < CONCAT(@12-YEAR@, @12-MONTH@)
GROUP BY subject_code, subject_name) A
RIGHT JOIN
(SELECT subject_code
, subject_name
, SUM(debit_amount) debit_amount_curr
, SUM(credit_amount) credit_amount_curr
FROM accounting_document_item adi, accounting_document ad
WHERE adi.doc_id = ad.id
AND date_format(accounting_date, '%Y%m') = CONCAT(@12-YEAR@, @12-MONTH@)
GROUP BY subject_code, subject_name) B
ON A.subject_code = B.subject_code) AB
LEFT JOIN
(SELECT subject_code
, subject_name
, SUM(debit_amount) debit_amount_end
, SUM(credit_amount) credit_amount_end
FROM accounting_document_item adi, accounting_document ad
WHERE adi.doc_id = ad.id
AND date_format(accounting_date, '%Y%m') <= CONCAT(@12-YEAR@, @12-MONTH@)
GROUP BY subject_code, subject_name) C
ON AB.subject_code = C.subject_code
LEFT JOIN
(SELECT subject_code
, subject_name
, SUM(debit_amount) debit_amount_total
, SUM(credit_amount) credit_amount_total
FROM accounting_document_item adi, accounting_document ad
WHERE adi.doc_id = ad.id
AND date_format(accounting_date, '%Y') = @12-YEAR@
GROUP BY subject_code, subject_name) D
ON AB.subject_code = D.subject_code
guoyuchuan
2018-05-29 11:06:35 +08:00
至少基本的增删查改要会写,是会写,不是记得;
younfor
2018-05-29 11:08:34 +08:00
@FrailLove 怕不怕 。当然怕。从工程的角度来看,都是必须的。我还喜欢写胖代码,胖接口。成吨成吨的写。太可怕了。当然 SQL 你当然也要会。什么索引啊。视图啊,存储过程啊都要会写吧。之前我为了把 echarts 和自己业务 BI 展示合在一起,还专门封装了一遍。就是在写 SQL。太可怕了。
younfor
2018-05-29 11:11:29 +08:00
@enhancer 对。我想说的就是这个。企业应用类工程项目。必须是要会写的。有一次我 left join 10 张表。太可怕了。就为了查库存。
HaoC12
2018-05-29 11:17:13 +08:00
熟悉行转列,列转行,仍然找不到好工作。
cuzfinal
2018-05-29 11:21:09 +08:00
测试运维都会手写 SQL。
Tokin
2018-05-29 11:53:10 +08:00
我一直以为这些简单的 sql 语句学过编程的人都会,工作之后发现并不是这样,很多人都不会写。
不知道为什么,难道他们学编程的时候,都没涉及到数据库吗?
大学一些作业不都是什么图书管理系统、学生信息管理系统吗?
难道数据都写 txt 里了吗。。。。
ChiangDi
2018-05-29 11:53:46 +08:00
不会就百度呀。。。
fuchaofather
2018-05-29 12:17:34 +08:00
@xxxy 没毛病
bomb77
2018-05-29 12:19:29 +08:00
我记忆现在已经和金鱼差不多了,也动不动就怀疑自己是不是不适合做这行啊。。。
算了,反正都是面向 Stack Overflow 编程。。。

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

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

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

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

© 2021 V2EX