怎样快速写出sql(如何写出高质量的SQL代码)
怎样快速写出sql(如何写出高质量的SQL代码)
2024-11-22 12:03:38  作者:女乃妈无敌  网址:https://m.xinb2b.cn/know/aju122228.html


前言

写这个话题心里有点没底,主要是我们微信群里懂SQL的大佬越来越多。如果说的不到位,那就糗大了。技术上的东西没有模棱两可,一就是一,二就是二,所以这篇文章权当抛砖引玉,如有不到之处还请轻拍。

我们在写SQL代码的过程中,总会遇到一些奇奇怪怪的问题,比如少了个分号,标点符号写成全角了,表名多了个空格等等。这些问题一执行就报错,错了怎么也找不出问题所在。

今天给小伙伴讲讲如何写出高质量的SQL代码?

何为高质量?就是这段代码读起来一目了然:逻辑清晰,代码整洁,执行起来还贼快。

明确业务需求

写SQL代码首先肯定是要搞清楚为何要这样写,=和<>其实有天壤之别,>=和>虽然只多了一个=,可能就是这个等号就排除了不知道多少数据。

这些情况都需要我们搞清楚业务需求才能敲代码,如果遇到一个模糊的需求,会把你折腾的死去活来(亲身体会,含泪警告)。

如果你是刚工作的小白,可千万别害羞去问别人需求。一旦你害怕去问别人,你的工作任务就会越堆越多,而你整天也会因为没有需求无所事事或者写的都是没意义的代码。

最后不出三个月,试用期还没结束,一纸:您的试用期表现不符合我司要求,我们终止与您的劳动合同。那可就悲剧了。

此外,有些需求是需要我们去挖掘的,就是当业务部门提出他的想法的时候,又不是很明确,这个时候需要我们去引导他们该如何做更好。其实这个时候是避免业务给你挖坑的最好时机。

当然,如果是正当需求,且非常明确的,你就只能照做了,不管它是不是坑。

代码注释两不误

代码是我们解决需求的唯一武器,而注释是你了解武器该如何使用的说明书。

一提起注释,很多人都不屑于去写。

A:“这代码逻辑不是很明白吗?就是将这两个表进行表关联,排除这些数据,再排除那些数据,最后显示这些数据,还要写注释干嘛啊?”

B:“说了这么一长段话,你直接注释一下这个语句是查询VIP用户近三个月的流水不就得了?”

注释往往不是写给自己看的,更多的是写给其他需要使用到这段代码的同事看的。现在的工作都讲究协同工作,每个人只是这项工作中的一小部分。

你写的代码可能有很多人需要使用,如果每个人在使用之前都要看懂你这个代码意思,才能继续写代码,那多费时间啊!

所以注释一定要写。而且有时候,如果你写的代码很长很长,没有加注释的话,你回头重新读一遍,可能都不知道自己完成了什么功能。

而时间就是金钱,给别人干活,看的就是单位时间的产出,产出低了那到手的金钱(工资)肯定就低了。


代码格式化

这其实是说的一个代码是否整齐好看,有些SQL开发平台对大小写,分号还是很敏感的,这个时候如果你写的代码是一坨,那这个需要调试的概率就很大了。

现在写代码的工具都挺智能化的了,之前我在知识星球给星友们推荐了一款非常智能的插件:SQL Prompt

这款插件不仅可以自动将关键字给你大写,还有各种智能提示,比如表名,列名,函数名,视图,存储过程几乎都可以提示,而且还能显示相关具体代码,此外还有一键排版功能,当然这个很多管理工具都自带了。

好看的代码就像看到一道美丽的风景,让人心旷神怡(有点夸张),有继续读下去的意愿。而裹成一坨,大小写相互交错,反正我是看着非常头疼。


优化优化再优化

一切都做好了,就等代码执行了,然而执行过程一等少则几分钟,多着几个小时,这样的代码估计没人敢用吧。

而SQL非常讲究效率,有时0.01秒的等待可能都会造成蝴蝶效应,久而久之,最终导致死锁或异常。

这个时候就需要我们,对自己写的SQL代码好好的优化一番。优化的方法我在之前的推文中提到了很多,而SQL优化的根本就在于执行计划。

执行计划是我们了解数据库执行代码的唯一窗口,通过执行计划可以洞悉SQL代码使用了哪些方法来取数。是直接全表扫描,还是没有按照我们预想走索引,抑或是关联的表太多等等,都是我们需要去解决的问题。

通过执行计划给出合理的优化方法,不管是建索引,还是改代码,这都是我们向高质量SQL更进一步的有效措施。

当然世上没有绝对完美的代码,但是作为一个程序员:

写出高质量SQL应该是我们的最高宗旨!

  • 万成语大全四字成语(带万字的成语)
  • 2024-11-22带万字的成语第一个字是千万众一心万籁俱寂万死不辞万紫千红万古长青万马齐喑万家灯火万箭穿心万劫不复万寿无疆万里长征万物之灵万事大吉万全之策万象更新万恶不赦万人空巷万马奔腾万事如意万世师表万里无云万目睚眦万寿无疆万里。
  • 特朗普黑历史事件(到底隐瞒多少不能见光的事)
  • 2024-11-22到底隐瞒多少不能见光的事根据观察者网报道,特朗普遭老部下捅刀,七寸被捏得死死,那么他到底隐瞒多少不能见光的事?这个老部下就是美国前国家安全顾问博尔顿,与特朗普之间现在是火药味十足,根据路透社和美国Politico新闻网报道,。
  • 高中化学教资真题及答案pdf(教资考试例题及大纲)
  • 2024-11-22教资考试例题及大纲01教资报考要求(1)本科毕业,或者本科在读大三及以上(2)户口或者个人档案在报考所在地(3)遵守宪法法律法规,热爱教育事业,教学态度端02教资笔试内容综合素质(初中、高中)教育知识与能力(初、高)化。
  • 床前明月光的床指什么地方 床前明月光中的
  • 2024-11-22床前明月光的床指什么地方 床前明月光中的古诗词作为我国的传统文化,一直以来都深受人们喜爱,它们有的气势波澜壮阔令人热血澎湃如夜阑卧听风吹雨,铁马冰河入梦来,有的则激越奔放抒情言志会当凌绝顶,一览众山小,还有的温婉柔情让人向往身无彩。
  • 上汽总裁陈虹(上汽董事长陈虹)
  • 2024-11-22上汽董事长陈虹在车市继续向下的2019年中节点,如何迎接下半年的车市大考,国内四大汽车集团之一的上汽集团念起了“稳”字诀7月1日,上汽集团召开2019年年中干部大会,上汽集团党委书记、董事长陈虹在发言中表示,今年,。
  • 牙被自己咬碎了怎么办(把牙咬掉了谁赔)
  • 2024-11-22把牙咬掉了谁赔咬了别人的手指,却说把牙给硌掉了种牙花费3万余元,对方需要担责吗?近日,法院审理了这样一件案件,来看法院怎么判——老张:他打掉了我的牙原告老张向法院诉称:自己和老刘素有积怨2019年的一天,双方在同村。
  • 爱屋及乌的词语意思(爱屋及乌的意思)
  • 2024-11-22爱屋及乌的意思爱屋及乌是一个成语,最早出自《尚书大传·大战》该成语的意思是指因为爱一个人而连带爱他屋上的乌鸦,比喻爱一个人而连带地关心到与他有关的人或物;在句子中一般作谓语、定语、分句近义词:相濡以沫、屋乌之爱反义。
  • 林岭东死因真相(扒扒林岭东捧红的六大反派影星)
  • 2024-11-22扒扒林岭东捧红的六大反派影星扒扒林岭东捧红的六大反派演员,其中两人已经病逝文/一床情书12月29日,香港著名导演林岭东猝死家中,享年63岁据一床情书了解,林岭东70年代被王天林导演发掘,从制片助理转当导演,1982年凭借电影《阴。
  • 什么都能画出来的画(我能画出想画的东西吗)
  • 2024-11-22我能画出想画的东西吗【边写边画】作者:冯秋子我能画出想画的东西吗?能画出一部分、不能画者为多因为眼下我尚不具备画出更多向往东西的素养支持,欠缺稳定把握精神透析的维度和力度,不足以让擦亮心灵的灼照持续升跃人不时警醒、冲动,。
  • 农场采摘一日游的乐趣(鲜果飘香采摘季)
  • 2024-11-22鲜果飘香采摘季近年来,近郊游、采摘游、乡村游等形式发展迅速,也受到很多市民和游客的青睐在工作忙碌之余,体验一下乡村原生态的自然风光以及丰收的乐趣成为很多人追捧的休闲方式那么,在新罗哪里有风光秀丽、既能游山玩水还能吃。