写点什么

Oracle 开发规范(一)

作者:默默的成长
  • 2022-11-04
    山东
  • 本文字数:1154 字

    阅读完需:约 4 分钟

编写目的


统一 SQL 语句编写格式。


\


让 SQL 语句更美观,更易阅读。


\


增强 SQL 可维护性。


\


避免低效 SQL 导致的性能问题。


\


书写


1.1.1【强制】SQL 语句的所有表名、字段名全部大写,系统保留字、内置函数名、SQL 保留字也大写


举例


Demo


Avoided


Select subs_id, prefix, acc_nbr


From Subs


Where Subs_Id = 10001


Preferred


SELECT SUBS_ID, PREFIX, ACC_NBR


FROM SUBS


WHERE SUBS_ID=10001


\


1.1.2【强制】使用 INSERT 时,必须指定插入的字段名,严禁不指定字段名直接插入 VALUES


举例


Demo


Avoided


INSERT INTO SUBS


VALUES(nSubsId, vPrefix, vAccNbr, ......)


Preferred


INSERT INTO SUBS(SUBS_ID,PREFIX,ACC_NBR, .....)


VALUES(nSubsId, vPrefix, vAccNbr, ......)


\


空格


1.2.1【强制】=、<=、>=、<>等符号前后加上一个空格


\


1.2.2 【强制】逗号之后必须接一个空格或换行


\


1.2.3 【强制】关键字、保留字和左括号之间必须有一个空格或换行


举例


Demo


SELECT A.SUBS_ID,


A.PREFIX,


A.ACC_NBR,


B.PROD_STATE,


C.SERV_TYPE


FROM SUBS A,


PROD B,


INDEP_PROD_SPEC D


WHERE A.SUBS_ID = B.PROD_ID


AND B.PROD_SPEC_ID = C.INDEP_PROD_SPEC_ID


AND B.PROD_STATE NOT IN ('B', 'F')


AND B.CREATED_DATE >= :CREATE_DATE


\


缩进


1.3.1【强制】最外层的 CREATE、BEGIN、END 等关键字要顶格书写


\


3.3.2 【强制】对于存储过程、Function、视图等数据库对象,缩进为 4 个空格,禁止使用 TAB 符号


\


换行


1.4.1 【强制】一行有多列,超过 120 个字符时,基于列对齐原则,采用下行向右缩进 1.4.2 【强制】WHERE 子句书写时,每个条件占一行,语句另起一行时,以保留字开始,保留字右对齐,


对于连接符=、<=、>=之类的不换行


举例


Demo



\


1.4.3 【强制】同一语句中的 SELECT、UPDATE、SET、INSERT、DELETE、FROM、WHERE、ORDERBY、GROUP


BY、HAVING 等第一个关键字换行后右对齐;如果有关键字长度大于 SELECT/DELETE/UPDATE,则采用左对齐


举例


Demo



\


1.4.4 【强制】IF THEN ELSE、FOR LOOP、WHILE、UNTIL 等嵌套语句的子句部分增加一个向右缩进


举例


Demo



\


1.4.5 【强制】多表连接时,使用表的别名来引用列,一个表及其别名一行,折行后表名与上一行表名对



举例


Demo



\


别名


1.5.1【强制】多表关联操作的 SQL,必须使用表的别名


举例


Demo



Preferred SELECT A.SUBS_ID,


FROM SUBS A,


PROD B


WHERE A.SUBS_ID = B.PROD_ID


AND B.PROD_STATE NOT IN ('B', 'F')


\


注释


1.6.1【推荐】对较为复杂的 SQL 语句加上注释,说明算法、功能


说明


编号


说明信息


a


应对不易理解的分支条件表达式加注释;


b


对重要的计算应说明其功能;


c


过长的函数实现,应将其语句按实现的功能分段加以概括性说明;


d


每条 SQL 语句应尽可能有注释说明(表名、字段名);


e


常量及变量注释时,必须说明被保存值的含义,最好也说明合法取值的范围;


f


可采用单行/多行注释(-- 或 /** */ 方式);


\

用户头像

还未添加个人签名 2022-10-11 加入

还未添加个人简介

评论

发布
暂无评论
Oracle 开发规范(一)_oracle_默默的成长_InfoQ写作社区