前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle 开发规范(一)

Oracle 开发规范(一)

作者头像
默默的成长
发布2022-11-02 14:36:33
6590
发布2022-11-02 14:36:33
举报
文章被收录于专栏:前端记录笔记

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第16天,点击查看活动详情 >>

编写目的

统一 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-08-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档