大家的 SQL 一般怎么管理?

1 天前
 miaeLKK
我是每次要查什么就手敲,熟练掌握 select * from...😂

所以就导致编辑器界面有点混乱。之前看有的同事好像敲过的就保存一下,下次查询时先搜有没有这个 sql ,没有再敲。不过后面如果加条件的话,岂不也是混乱?还是说在另一个.sql 文件中?
4647 次点击
所在节点    MySQL
39 条回复
qwertyzzz
22 小时 58 分钟前
@lyxxxh2 #11 keyworlds
lyxxxh2
22 小时 9 分钟前
@qwertyzzz
keywords 是同事上个月加的,我基本不会看他们代码,不出 bug 就行。
lyxxxh2
22 小时 2 分钟前
@haython
我前几年同事说:复杂的 sql 用不了 orm,我觉得跟着这相似,就是扯淡。
orm 唯一缺陷就是大量数据,性能问题,但这也是可以用 orm 来转为 sql 语句执行的。
tyrantZhao
22 小时 2 分钟前
貌似 BE 一般不会写很复杂的 SQL ,大数据写的很多,所以 BE 一般不存。
zhhqiang
22 小时 0 分钟前
文件传输助手 - -
haython
21 小时 57 分钟前
@lyxxxh2 #23 我可以肯定你没有处理过数据了
ccw4wcc
21 小时 56 分钟前
@lyxxxh2 #23 如果让你经常处理一些线上的问题呢,比如要在线上数据库导出一些数据,那不是就得写 sql ,比如线上经常要更新一些数据,这些数据就需要写 sql 关联起来更新,那就需要把之前处理过的 sql 存住呀,下次方便继续改改继续用,如果是常用的代码业务逻辑肯定 sql 和 orm 都可以啊
Jonz
21 小时 53 分钟前
Navicat 有个 [创建片段] 的功能,可以把常用 SQL 保存起来,并且通过自定义名称来快捷输入。

比如我经常要连表查询某几张表:
SELECT * FROM AAAA d
LEFT JOIN BBBB dx ON dx.main_id = d.id;

那我就直接选中代码右键-创建片段,然后起个名称,比如 [ss] ,那后面我还需要再复用这个 SQL 时只需要输入 ss ,然后从下拉框选择这个片段,就会自动填充完整的 SQL 了。

SQL 里面也支持用占位符来当成变量,其他的数据库客户端应该也是有类似功能的,可以参考看看。
lyxxxh2
21 小时 41 分钟前
@ccw4wcc
很简单的我当然是一个 sql 。
大部分时候我都是用代码来修复数据,有个回查的地方。

至于 sql 关联,这我擦 不就是 orm 强项吗?
项目模型本身就做好关联了。

存 sql 方便以后用,不晓得。
反正我一次性代码执行完,基本不会再次执行,都会删掉。
andytao
21 小时 28 分钟前
[袋鼠数据库工具] 支持缓存 SQL ,还支持保存 SQL 脚本,然后自动化列在文件列表种,双击即可打开,玩得飞起。。。
andytao
21 小时 23 分钟前
[袋鼠数据库工具] 支持有三种 SQL 保存方式:
1 、支持缓存 SQL ,重新打开连接时自动加载;
2 、支持保存 SQL 脚本,然后自动显示在文件列表种,双击即可打开;
3 、支持保存为代码块,可以直接在只能提示中使用,也可以拖放使用;
https://github.com/taozuhong/kangaroo
ccw4wcc
20 小时 17 分钟前
@lyxxxh2 #29 如果是紧急修复线上的一个数据呢,还能用代码来修复吗?执行 sql 不得比执行代码响应来的速度吗?
sql 关联指的是,你需要写一大堆 select join 才能关联到你需要修复的那一行数据,等你写完代码来修复数据,用户早就投诉疯了,你如果处理过线上紧急的修复数据,就不会说用代码来修复这种话了
ccw4wcc
20 小时 16 分钟前
@lyxxxh2 #29 功能肯定要用 orm 或者 sql 来写,但是紧急查询/修复线上数据,可没有时间让你去写代码来修复,都是一条 sql 丢给运维紧急执行一下
ccw4wcc
20 小时 15 分钟前
@haython #26 我也感觉出来应该是没有在线上导出/修复过数据的样子
phf0313
20 小时 12 分钟前
navicat 保存查询
WIN2333
20 小时 5 分钟前
@lyxxxh2 你这个 orm 写的,我看的就挺灾难的😂
z1829909
19 小时 26 分钟前
@lyxxxh2 你图片里的 orm 代码, 复杂度还没特别高, 我看着已经有点恐惧了哈哈哈.
lyxxxh2
18 小时 46 分钟前
@ccw4wcc
你说的需要复杂的 sql 且紧急的,我没遇到过。
我大部分数据库错误都是某字段类型搞错了。

但是我深刻体会修数据比修 bug 还麻烦。
我本地确定代码没问题了,才敢线上执行。
宁可他们等,我也不想有可能产生数据问题。
当然我公司体量小,没几个客户。
lyxxxh2
18 小时 39 分钟前
@WIN2333

有没有可能,sql 会更加灾难。
拿嵌套子查询来说 select x from (select ... fomr select ( select... ) where (xx = xx or xxx = xx ..) )

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

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

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

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

© 2021 V2EX