大话数据库编程规范大话数据库编程规范.doc

大话数据库编程规范大话数据库编程规范.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
大话数据库编程规范大话数据库编程规范

大话数据库编程规范? 1.1??????????????前言 目前在软件圈内有这么一个现象,就是:DBA?不太懂写PL/SQL?,而开发人员写的又是五花八门,而且效率不高。如此以来,造成诸多弊端: 1.?可读性差。读别人写的一个程序花费的时间,比自己写一个程序的花费时间还要长;非但别人看不懂,时间久了连自己也看不懂了。 2.?可维护性差。程序越写越长,越改越烂,像懒婆娘的裹脚布,又臭又长。 3.?可移植性差。今天用oracle?写一套,明天换成SQL Server?的时候再写一套,众多的数据库开发人员在程序的苦海中重复着低级劳动…… 4.?效率和性能差。一个存储过程或SQL?执行效率简直可以让你感觉到对时间的绝望,你很快就理解什么是相对论了。 1.2??????????????编程规范概述 ????事实上为了统一软件开发过程中关于数据库设计时的命名规范和编程规范,正规一些的IT?公司都会制定一些关于数据库对象的命名和编程规范。 否则的话,你写你的我写我的,各自为战不兼容,彼此看不懂,甚至到最后连自己都弄不明白了,这样的经历相信每个人都曾经遇到过。 例如下面这段简单的代码,您看的明白吗?就算暂时明白,过个一年半载您还明白吗?就算您记忆超群,想必也会忘记,不是么? A:=1;b:=2;SeLeCT username from EmPLOyee where id=a aNd Type=b; 如果你改为下面这样的写法,相信稍微懂点数据库的人都应该看的明白不是? vID:=1;???--A?为ID vType=2;??--B?为类型 SELECT username FROM employee WHERE id=vID AND type=vType; 1.3??????????????书写规范 丑陋的书写规范不仅可读性较差,而且给人以敬而远之的感觉,就是您是大侠也不行啊;而良好的书写规范则给人以享受和艺术的体验。 1.3.1?大小写风格 规则1.3.1.1 所有数据库关键字和保留字均使用大写;关于字段、变量的大小写风格在1.4?详细介绍。 1.3.2?缩进风格 规则?1.3.2.1 程序块严格采用缩进风格书写,保证代码清晰易读,风格一致,缩进格数统一为2 /4?个。 必须使用空格,不允许使用TAB?键。以免用不同的编辑器阅读程序时,因TAB?键所设置的空格数目不同而造成程序布局不整齐。 规则1.3.2.2 同一条语句需要占用多于一行时,每行的其它关键字与第一行的关键字进行右对齐。 IF flag=1 THEN ??SELECT username?????????????--?同上一行相比缩进4?个空格 ????INTO vuserinfo????????????--INTO?与SELECT?进行右对齐 ????FROM userinfo?????????????--FROM?与SELECT?进行右对齐 ???WHERE userid=:iuserid;?????--WHERE?与SELECT?进行右对齐 END IF; 1.3.3?空格及换行 规则1.3.3.1 不允许把多个语句写在一行中,即一行只写一条语句。 规则1.3.3.2 避免将复杂的SQL?语句写到同一行,建议要在关键字和谓词处换行。 规则1.3.3.3 相对独立的程序块之间必须加空行。 BEGIN?、END?独立成行 规则1.3.3.4 太长的表达式应在低优先级操作符处换行,操作符或关键字放在新行之首。划分出新行应当适当地缩进,使排版整齐,语句可读。 不同类型的操作符混合使用时,建议使用括号进行隔离,以使代码清晰。 规则1.3.3.5 减少控制语句的检查次数,如在?IF…ELSE?控制语句中,对最常用符合条件,尽量前置以被检查到。 DECLARE ??--?定义局部变量 ??vFlag VARCHAR2(10);??--?判断标志 ??… BEGIN?? ? ??IF ((a=b AND a=c AND a=d) OR??--?在OR?处断行,可使得逻辑更为清晰 ??????(a=e AND e=f)) THEN --Process something ? ??IF vFlag=1 THEN??????--vFlag=1?为经常出现之条件,可有效减少判断检查次数 --Process something ??ELSIF vFlag=2 THEN??--vFlag=2?为次之出现的条件 --Process something ??ELSE ???--Process something ??END IF; ?? 1.3.4?其它 规则?1.3.4.1 避免使用SELECT *?语句;不要用*?来代替所有字段,应给出字段列表,以避免表结构发生变化时应用程序出现无法识别的情况。 规

您可能关注的文档

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档