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
太长的表达式应在低优先级操作符处换行,操作符或关键字放在新行之首。划分出新行应当适当地缩进,使排版整齐,语句可读。
不同类型的操作符混合使用时,建议使用括号进行隔离,以使代码清晰。