1、 编写目的

使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。

2、 适用范围

本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。

3、 对象命名规范

3.1 数据库和SID

数据库名定义为系统名+模块名

Ø         全局数据库名和例程SID名要求一致

Ø         因SID名只能包含字符和数字,所以全局数据库名和SID名中不能含有“_”等字符

3.2 表相关

3.2.1 表空间

Ø         面向用户的专用数据表空间以用户名+_+data命名 ,如Aud用户专用数据表空间可命名为Aud_data

Ø         面向用户的专用索引表空间以用户名+_+idx命名

Ø         面向用户的专用临时表空间以用户名+_+tmp命名

Ø         面向用户的专用回滚段表空间以用户名+_+rbs命名

Ø         面向应用的表空间以应用名+_data/应用名+_idx/应用名+_tmp/应用名+_rbs命名

Ø         LOB段数据专用表空间以其数据表空间+_+lobs命名,如上例中数据表空间为Aud_data,则LOB段表空间可命名为Aud_data_lobs

3.2.2 表空间文件

表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01等

3.2.3 表

表命名要遵循以下原则:

模式指的是用户,模块?

Ø         一般表采用“系统名+t_+模块名+_+表义名” 格式构成

Ø         若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成

Ø         模块名或表义名均以其汉语拼音的首字符命名,表义名中汉语拼音均采用小写,且字符间不加分割符;

Ø         表别名命名规则:取表义名的前3个字符加最后一个字符。如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)

Ø         临时表采用“系统名+t_tmp_+表义名” 格式构成

Ø         表的命名如

dft_gy_cbap:系统名(电费 df)+t_+模块名(高压 gy)+_+表义名(抄表安排 cbap)

dft_cbbj: 系统名(电费 df)+t_+表义名(抄表标记 cbbj)

dft_tmp_hj: 系统名(电费 df)+tmp+表义名(合计hj)(此处为临时表)

Ø         关联表命名为Re_表A_表B,Re是Relative的缩写,表A和表B均采用其表义名或缩写形式。

3.2.4 属性(列或字段)

属性命名遵循以下原则:

Ø             采用有意义的列名,为实际含义的汉语拼音的首字符,且字符间不加任何分割符

Ø             属性名前不要加表名等作为前缀

Ø             属性后不加任何类型标识作为后缀

Ø             不要使用“ID”作为列名

Ø             关联字段命名以 “cd+_+关联表的表义名(或缩写)+_+字段名”进行

3.2.5 主键

Ø         任何表都必须定义主键

Ø         表主键命名为:“pk+_+表名(或缩写)+_+主键标识

如“pk_YHXX_IDKH”等

3.2.6 外键

表外键命名为: “fk+_+表名(或缩写)+_主表名(或缩写)+_+主键标识

如“fk_YHLX_YHXX_SFZH”等

3.2.7 CHECK约束

CHECK约束命名为: “chk+_+CHECK约束的列名(或缩写)

3.2.8 UNIQUE约束

UNIQUE约束命名为: “unq+_+UNIQUE约束的列名(或缩写)

3.2.9 索引

索引的命名为:“表名(或缩写)+_+列名+_idx”。

其中多单词组成的属性列列名取前几个单词首字符再加末单词首字符组成

如yd_kh表khid上的index: yd_kh_khid_idx

3.2.10 触发器

Ø             AFTER型触发器

系统名+tr_+<表名>_+ +[_row]

Ø             BEFORE型触发器

系统名+tr_+<表名>_+bef_+[_row]

Ø             INSTEAD OF型触发器

系统名+ti_+<表名>+_++[_row]

Ø             各种类型的触发器中

i,u,d分别表示insert、update和delete

行级触发器,后加_row标识,语句级触发器不加,如 yddftr_CSH_i_row

3.2.11 簇

簇以簇中要存储的各个表(或表别名)及表间加and的组成命名,即表“A+And+表B…”,如存储GR(工人)和GRJN(工人技能)表的簇命名为GRAndGRJN

3.3 视图

视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似

3.4 序列

序列命名以seq_+含义名组成

3.5 同义词

同义词命名与其基础对象的名称一致,但要去除其用户前缀含有远程数据库链接的后缀

3.6 存储对象相关

3.6.1 存储过程

存储过程命名由“系统名+sp+_+存储过程标识(缩写)”组成

存储过程标识要以实际含义的汉语拼音的首字符构成,并用下划线分割各个组成部分。

如增加代理商的帐户的存储过程为“sfsp_ZJDLSZH”。

3.6.2 函数

函数命名由“系统名+f+_+函数标识”组成

3.6.3 包

包命名由“系统名+pkg+_+包标识”组成

3.6.4 函数文本中的变量采用下列格式命名:

Ø         参数变量命名采用“i (o或io)+_+名称”形式,前缀i或o表输入还是输出参数

Ø         过程变量命名采用“l+_+名称”形式

Ø         全局包变量命名采用“g+_+名称”形式

Ø         游标变量命名采用“名称+_+cur”形式

Ø         常量型变量命名采用“c+_+名称”形式

Ø         变量名采用小写,若属于词组形式,用下划线分隔每个单词

Ø         变量用来存放表中的列或行数据值时,使用%TYPE、%ROWTYPE方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化

3.7 用户及角色

Ø             用户命名由“系统名称+_+user+_+名词(或缩写)或名词短语(或缩写)”组成

Ø             角色命名由“系统名称+_+role+_+名词(或缩写)或名词短语(或缩写)”组成

3.8 数据库链接

Ø             数据库链接命名由“远程服务器名+_+数据库名+_+link”组成

Ø             若远程服务器名和数据库名一致,上式“_+数据库名”部分省去

3.9 命名中的其它注意事项

Ø         命名都不得超过30个字符

Ø         不要在对象名的字符之间留空格

Ø         小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突

4、 编码规范

4.1 一般性注释

4.1.1 注释尽可能简洁、详细而全面

4.1.2 创建每一数据库对象时都要加上COMMENT ON注释,以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENT ON注释,以说明该列和/或列取值的含义。

如:XX表中有CZZT列属性为NUMBER(10, 0)可加COMMENT ON注释如下

COMMENT ON COLUMN XX.CZZT IS '0 = 正常, 1 = 等待, 2 = 超时, 3 = 登出'

4.1.3 注释语法包含两种情况:单行注释、多行注释

单行注释:注释前有两个连字符(--),一般对变量、条件子句可以采用该类注释。

多行注释:符号之间的内容为注释内容。对某项完整的操作建议使用该类注释。

4.2 函数文本注释

4.2.1 在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释

CREATE [OR REPLACE] PROCEDURE dfsp_xxx

4.2.2 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。

4.2.3  在每一个变量声明的旁边添加注释。说明该变量要用作什么

通常,简单使用单行注释就行了,例如

l_sfzh CHAR(11)         --身份证号码

4.2.4 在块的每个主要部分之前添加注释

在块的每个主要部分之前增加注释,解释下—组语句目的,最好是说明该段语句及算法的目的以及要得到的结果,但不要对其细节进行过多的描述

4.2.5 在块和过程的开头注释中还可以增加要访问的数据库等信息

4.3 常用SQL语句的编写规范

4.3.1 CREATE语句

CREATE TABLE dft_dksz(

YHBS               VARCHAR2(20)          NOT NULL,

ZHGX               DATE,

DKKHD              VARCHAR2(24),

CONSTRAINT pk_dksz_yhbs PRIMARY KEY (YHBS)

)

4.3.2 SELECT语句

查询语句采用以下原则编写(可最大化重用共享池中的SQL语句,提高应用程序性能):

Ø         将SELECT语句分为5部分:

(1) 由SELECT开头,后跟一个显示查询结果的列表;

(2) 由FROM开头,后跟一个或多个获取数据所涉及的表;

(3) 由WHERE开头,后跟一个或多个确定所需值的条件;

(4) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总;

(5) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。

Ø         每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如

SELECT col1, col2, col3

FROM table1

WHERE col1 > col2

GROUP BY col1, col2

ORDER BY col1;

Ø         关键字用大写,列名和表名采用小写

Ø         语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行

Ø         当语句的同一部分要延续到下一行时,按下列格式排列:

SELECT col1, col2, col3, col4, col5, col6,

col7, col8, col9, col10

Ø         将语句中WHERE和AND部分格式化,书写布局类似于

WHERE

AND

AND

Ø         当语句中出现括号时,括号的两边不留空格

Ø         在SQL语句使用运算符时,操作两边应各留一个空格,如

WHERE X = Y

AND A = B

AND C = D

4.3.3 INSERT语句

          INSERT INTO <要插入的表名>
                    (<列1>, <列2>, .., <列n-1>, <列n>)
          VALUES   (<列1值>, <列2值>, .., <列n-1值>, <列n值>)

4.3.4 UPDATE语句

          UPDATE <要更新的表名>
          SET <要更新的列> = <列值>

4.3.5 DELETE语句

DELETE FROM table1
WHERE col1 = '???'

4.4 条件执行语句(IF)编写规范

条件执行语句IF…ELSE按以下格式编写

IF <条件表达式>

THEN

<一条或多条语句>

[ELSE (或ELSIF<条件表达式>)

THEN

<一条或多条语句>

END IF;

注:

(1)       在IF…THEN和ELSE(或ELSIF)及ELSE…THEN

IF间可包含一条或多条PL/SQL语句,而不需要加BEGIN和END

(2)       IF…ELSE…ENDIF语句可以嵌套

(3)       注意ELSIF的写法

4.5 循环语句编写规范

4.5.1 简单循环语句

LOOP

<零条或多条语句>

EXIT WHEN <条件表达式>

<零条或多条语句>

END LOOP;

4.5.2 FOR循环语句

FOR 变量 IN [变量取值范围]

LOOP

<一条或多条语句>

END LOOP;

4.5.3 WHILE循环语句

WHILE <条件表达式>

LOOP

<一条或多条语句>

END LOOP;

4.6 函数文本(存储过程、函数和包等)

Ø         对于存储过程、函数等程序块都要有异常处理部分,在异常部分的最后都要设置OTHERS异常情态处理器,以提高程序的自检能力,格式如下:

BEGIN

  …

EXCEPTION

 WHEN excep—name1 THEN

   …

 WHEN excep—name2 THEN

   …

 WHEN OTHERS THEN

   …

  END;

Ø         对于子程序、触发器、包等带名的程序块,要使用结束标识,如

CREATE OR REPLACE PROCEDURE XXXsp_XXX IS

  …

BEGIN

  …

END XXXsp_XXX;

oraclenbsp;命名规范相关推荐

  1. html语言书写注意事项,CSS命名规范参考及书写注意事项

    CSS书写顺序 *{ /*显示属性*/ display position float clear cursor - /*盒模型*/ margin padding width height /*排版*/ ...

  2. [置顶] Objective-C ,ios,iphone开发基础:命名规范

    命名规范:http://bukkake.iteye.com/blog/695492  点击打开链接 转载于:https://www.cnblogs.com/pangblog/p/3292256.htm ...

  3. Java项目命名规范

    2019独角兽企业重金招聘Python工程师标准>>> 一.命名规范 1. 项目名全部小写 2. 包名全部小写 3. 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写 ...

  4. Java 命名规范(非常全)

    欢迎关注方志朋的博客,回复"666"获面试宝典 在本文中,将从大到小,从外到内,总结Java编程中的命名规范.文中将会涉及到日常工作中常见的命名示例,如包命名,类命名,接口命名,方 ...

  5. SQL Server中的命名规范(个人使用)

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 表名前缀t 字段名前缀f ...

  6. Java 命名规范(非常全面)

    来源:https://www.ramostear.com/blog/2020/03/20/2vxdaqjq.html 最近发现很多初级程序员写代码时很不规范,比如方法名 类名 等,如果遇到有代码洁癖的 ...

  7. 项目的命名规范,为以后的程序开发中养成良好的行为习惯

    代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 一.包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 1.s ...

  8. css 命名规范 BEM

    在项目的开发过程当中, 我们往往因为日益复杂的css代码而感到力不从心. 如何合理的组织css代码成为了我们前端开发过程中必须考虑到的环节. 在读element源代码的时候, 了解到了BEM的命名风格 ...

  9. 平台资源表 表和表字段的命名规范——JEPLUS软件快速开发平台

    为什么80%的码农都做不了架构师?>>>                                      JEPLUS平台资源表和表字段的命名规范 规范性的东西其实都是约定 ...

最新文章

  1. SQL Server 日期和时间相关的数据类型有两种
  2. k近邻法matlab_机器学习系列(一)K近邻算法(KNN,KNearestNeigh
  3. 从Python代码到APP,你只需要一个小工具:GitHub已超3000星
  4. 数据驱动的软件开发者智能协作技术
  5. 高级JAVA - 动态代理的实现原理和源码分析
  6. java归并排序代码_Java归并排序算法
  7. python摄像头识别快递单号查询_python如何免费对接快递鸟api单号识别查询接口
  8. 《Nmap渗透测试指南》—第6章6.6节源端口欺骗
  9. python提高——多继承、静态方法、类方法、property属性、魔法属性
  10. 差距越来越大, 直播行业割终结束, 虎牙、斗鱼平分天下?
  11. SAP HANA2.0 EXPRESS 下载及安装详细教程---第一部分
  12. 《测绘综合能力》——摄影测量与遥感
  13. python word 英语音标_完整word版,英语音标大全,推荐文档
  14. 如何领购和作废电子发票流程
  15. 微信小程序(沧海一笑)
  16. 【计算机】数据结构-严蔚敏/清华大学P1
  17. Lipschitz 条件或者Lipschitz连续
  18. css3中-moz、-ms、-webkit意思
  19. 音乐flac格式如何快速简单的转换为mp3格式
  20. Java代码如何运行的?

热门文章

  1. 招聘Bev感知实习生
  2. 再聊面试,这次关于钱,关于培训,关于内卷
  3. 计算机历史和未来课程,计算机课程作业,计算机与汽车结合的历史与未来ppt概要.ppt...
  4. 「Java数据结构」手撕数组队列及环形数组队列。
  5. 原理c语言for循环延时1s,for循环实现C语言精确延时
  6. 【大染坊】从陈寿亭身上能学到什么?
  7. 考计算机专业要理科好吗,大学想念计算机系是不是该高中读理科?
  8. 黑龙江省计算机一级考试科目,黑龙江省2021年3月全国计算机等级考试时间和科目调整...
  9. 代码覆盖率工具BullseyeCoverage研究
  10. 基础教程:Mac 电脑小白应该了解哪些东西?