小黎子作为程序猿的一员,今天我就和大家一起来聊聊如何在数据处理时编写一段高质量的SQL代码。其实在选这个话题时,自己心里是没有底的。大部分关注小黎子数据分析的都是学习或者从事数据行业的小伙伴。懂SQL的大神越来越多,如果说的不到位,那就糗大了。技术这东西没有模棱两可,一就是一,二就是二。以下只是根据小黎子自己的工作经验分享,希望对大家有所帮助。
程序猿在写代码时的一些痛苦。如何通过一些工具来辅助更加高效的完成SQL编程。我们都知道在写SQL代码的过程中,总会遇到一些奇奇怪怪的问题,比如常见的少了个分号,标点符号写成全角了,表名多个空格等等问题。这些问题在执行代码时有时候才会被注意到,没有一些工具的辅助报的错误怎么也找不出问题所在。
要解决这些困扰我们的问题,当然首要任务就是提升自己编写SQL代码的质量。但是世上没有绝对完美的代码,但是作为一个程序猿:写出高质量代码应对客户需求应该是我们的最高宗旨!
什么才是高质量的SQL代码?在小黎子看来就是一段段读起来一目了然的SQL代码:逻辑清晰明了,代码工整有注释,执行速度最优。
一、逻辑清晰明了
写SQL代码首先肯定是要搞清楚为什么是这样写,而不是采用另外的写法,例如、=和<>其实有天壤之别,>=和>虽然只多了一个=,可能就是这个等号就排除了不知道多少数据。这些都需要搞清楚业务需求才能去完成相应的代码,如果遇到一个模糊的需求,那你就自求多福吧。当然业务需求模糊,肯定需要自己去进一步挖掘客户的需求,就是当业务部门提出他的想法的时候,又不是很明确,这个时候需要我们去引导他们该如何做更好。其实这个时候是避免业务给你挖坑的最好时机。
二、代码工整
一段代码是否整齐好看,有些SQL开发平台对大小写,分号还是很敏感的,这个时候如果你写的代码是一堆,那这个需要调试的概率就很大。现在写代码的工具都挺智能化的了,比如小黎子经常使用的一款非常智能的插件:SQL Prompt。
软件安装及激活方法:【程序员必备工具】让你可以高效写出高质量的SQL代码的智能插件
这款插件不仅可以自动将关键字给你大写,还有各种智能提示,比如表名,列名,函数名,视图,存储过程几乎都可以提示,而且还能显示相关具体代码,此外还有一键排版功能,当然这个很多管理工具都自带。这款插件个人觉得使用还是挺顺手的。一段好看的代码就像看到一道风景,有继续读下去的意愿。相反如果给你一段裹成一坨的代码,大小写相互交错,这样的代码就非常让人厌烦。
三、代码注释
代码是我们解决客户业务需求的唯一武器,而代码的注释就是你了解武器如何使用的说明书。说到注释,很多人都会不屑去编写。认为自己是程序的编写者,心中已经是非常熟悉所以不需要编写代码注释。其实,注释往往不是写给自己看的,更多的是写给其他需要使用到这段代码的人看的。现在的工作都是协同办公,每个人只是这项工作中的一小部分。你写的代码可能有很多人需要使用,如果每个人在使用之前都要都要去仔细研究你的代码是干嘛的,才能继续写代码,那多费时间啊!所以代码注释一定要写。而且有时候,如果你写的代码很长很长,没有加注释的话,其实自己回头重新读一遍,可能都不知道自己完成了什么功能。时间就是金钱,给公司干活,看的就是单位时间的产出,产出高那到手的金钱(工资)肯定就高。
四、执行速度快
完成业务需求的编码,并且将代码工整和代码注释都处理好了,最后就是测试执行效率了。执行速度优化是每个程序猿都需要经历的过程, 然而执行过程出现少则几分钟,多着几个小时这种情况的代码估计也没有人敢使用。SQL代码非常讲究效率,有时0.01秒的等待可能都会造成蝴蝶效应,久而久之,最终导致死锁或异常。这个时候就需要对自己写的SQL代码好好的优化一番。优化的方法大部分的方式是采用执行计划。执行计划是我们了解数据库执行SQL代码的唯一窗口,通过执行计划可以洞悉SQL代码使用了哪些方法来取数。直接全表扫描,还是没有按照我们预想走索引,抑或是关联的表太多等等,都是我们需要去解决的问题。执行计划可以给出合理的优化方法,不管是建索引,还是改代码,这都是我们向高质量SQL更进一步的有效措施。
大家认为的高质量的SQL代码是什么样的了?欢迎进入小黎子数据分析公众号和小黎子一起探讨。