




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ORACLE数据库编码规范Oracle 数据库编程规范目 录1编写目的12适用范围13命名规范13.1表相关13.1.1表空间13.1.2表空间文件23.1.3表23.1.4属性(列或字段)23.1.5主键23.1.6外键33.1.7CHECK约束33.1.8UNIQUE约束33.1.9索引33.1.10触发器33.1.11簇43.2视图43.3序列43.3.1同义词43.4存储对象相关43.4.1存储过程43.4.2函数53.4.3包53.4.4函数文本中的变量采用下列格式命名:53.4.5用户及角色53.4.6数据库链接63.4.7命名中的其它注意事项64编码规范64.1一般性注释64.2函数文本注释74.3常用SQL 语句的编写规范74.4条件执行语句(IF)编写规范104.5循环语句编写规范104.6函数文本(存储过程、函数和包等)10四川旷谷信息工程有限公司铁道第二勘察设计院电算所 1ORACLE数据库编程规范四川旷谷信息工程有限公司1 编写目的使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。2 适用范围本规范适用于公司范围内所有以ORACLE 11g作为后台数据库的应用系统和项目开发工作。3 命名规范命名一般采用富有意义的英文词汇和汉语拼音的结合,更好表达名称的含义。 简单便于识别的使用英文词汇。 一般两个单词后需要一个下划线。 代表名称中重要含义的用英文词汇全称(不缩写)。 名称超长时,超长部分其后使用汉语拼音或英文词汇缩写。 命名都不得超过30个字符。 名称中字符之间不要留空格。 小心保留词,要保证你的命名没有和保留词、数据库系统或者常用访问方法冲突。3.1 表相关 3.1.1 表空间 面向用户的专用数据表空间以用户名+_+data命名 ,如Aud 用户专用数据表空间可命名为Aud_data 面向用户的专用索引表空间以用户名+_+idx命名 面向用户的专用临时表空间以用户名+_+tmp命名 面向用户的专用回滚段表空间以用户名+_+rbs 命名 面向应用的表空间以应用名+_data、应用名+_idx、应用名+_tmp、应用名+_rbs 命名。 LOB 段数据专用表空间以其数据表空间+_+lobs 命名,如上例中数据表空间为Aud_data,则LOB 段表空间可命名为Aud_data_lobs 3.1.2 表空间文件表空间文件命名以表空间名+两位数序号(序号从01开始)组成,如Aud_data01 等。3.1.3 表表命名建议遵循以下原则: 一般表采用“系统名+T_+模块名+_+表义名”格式构成 若数据库中只含有单个模块,命名可采用“系统名+T_+表义名”格式构成 表别名命名规则:取表义名的前3 个字符加最后一个字符。如果存在冲突,适当增加字符。也可以按A、B、C等进行命名。表别名是在针对多表操作语句如查询时, 对表进行别名命名,以简化语句编写。如:SELECT Datg.* From IMT_JK_DataColNameConfig Datg,IMT_JK_TypeConfig Typg,IMT_JK_AttributeConfig AttgWHERE Datg.ATTRIBUTE_ID= Att.ATTRIBUTE_ID and Att.TYPE_ID= Typg.TYPE_IDSELECT A.* from IMT_JK_DataColNameConfig A,IMT_JK_TypeConfig B,IMT_JK_AttributeConfig C where A.ATTRIBUTE_ID= C.ATTRIBUTE_ID and C.TYPE_ID= B.TYPE_ID 临时表采用“系统名+T_TMP_+表义名” 格式构成3.1.4 属性(列或字段)属性命名遵循以下原则: 属性名前不要加表名等作为前缀。 属性后不加任何类型标识作为后缀。 不要使用数据库系统的关键字作为列名。3.1.5 主键 任何表都必须定义主键。 表主键命名建议为:“PK+_+表名(或缩写)+_+主键标识(或缩写)”或“PK+_+表名(或缩写)。 名称超过30字符时缩写,缩写顺序按命名从后向前。如:PK+_+表名(或缩写)+_+主键标识(或缩写)”,名称超过30字符时,先对“主键标识”缩写,如还是超长,对“表名”进行缩写。3.1.6 外键 表外键命名建议为:FK+_+表名(或缩写)+_主表名(或缩写)+_+主键标识(或缩写)”或FK+_+表名(或缩写)+序号。 名称超长时,缩写顺序按命名从后向前。如:FK+_+表名(或缩写)+_主表名(或缩写)+_+主键标识(或缩写)”,超长时先对“主键标识”缩写,如还是超长,对“主表名”进行缩写,以次类推。3.1.7 CHECK约束CHECK 约束命名为: “CHK+_+CHECK约束的列名(或缩写)” 3.1.8 UNIQUE约束UNIQUE 约束命名为: “UNQ+_+UNIQUE约束的列名(或缩写)” 3.1.9 索引索引的命名为:“IDX+_+表名(或缩写)+_+列名”。其中多单词组成的属性列列名取前几个单词首字符再加末单词首字符组成。3.1.10 触发器 AFTER型触发器 系统名+tr_+_+ +_row BEFORE型触发器 系统名+tr_+_+bef_+_row INSTEAD OF型触发器 系统名+ti_+_+_row 各种类型的触发器中 i,u,d 分别表示insert、update 和delete行级触发器,后加_row 标识,语句级触发器不加,如 yddftr_CSH_i_row 3.1.11 簇 簇以簇中要存储的各个表(或表别名)及表间加and的组成 命名,即表“A+And+表B”,如存储GR(工人)和GRJN(工人技能)表的簇命名为GRAndGRJN 3.2 视图 视图命名以系统名v_+模块名作为前缀,其他命名规则和表的命名类似 3.3 序列 序列命名以seq_+含义名组成 3.3.1 同义词 同义词命名与其基础对象的名称一致,但要去除其用户前缀或含有远程数据库链接的后缀 3.4 存储对象相关 3.4.1 存储过程 存储过程命名由“系统名+sp+_+存储过程标识(缩写)”组成存储过程标识要以实际含义的汉语拼音的首字符构成,并用下划线分割各个组成部分。如增加代理商的帐户的存储过程为“sfsp_ZJDLSZH” 或 “sfsp_ADD_DLSZH”。 3.4.2 函数 函数命名由“系统名+f+_+函数标识”组成 3.4.3 包 包命名由“系统名+pkg+_+包标识”组成 3.4.4 函数文本中的变量采用下列格式命名: 参数变量命名采用“i (o或io)+_+名称”形式,前缀i 或o 表输入还是输出参数 过程变量命名采用“l+_+名称”形式 全局包变量命名采用“g+_+名称”形式 游标变量命名采用“名称+_+cur”形式 常量型变量命名采用“c+_+名称”形式 变量名采用小写,若属于词组形式,用下划线分隔每个单词 变量用来存放表中的列或行数据值时,使用%TYPE、%ROWTYPE 方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化 3.4.5 用户及角色 用户命名由“系统名+_+user+_+名词(或缩写)或名词短语(或缩写)”组成 角色命名由“系统名+_+role+_+名词(或缩写)或名词短语(或缩写)”组成 3.4.6 数据库链接 数据库链接命名由“远程服务器名+_+数据库名+_+link”组成 若远程服务器名和数据库名一致,上式“_+数据库名”部分省去 4 编码规范 4.1 一般性注释 1、 创建每一数据库对象时和表某些数据列也要加上COMMENT ON注释,以说明该对象或列的含义。如:XX 表中有CZZT列属性为NUMBER(10, 0)可加COMMENT ON 注释如下COMMENT ON COLUMN XX.CZZT IS 0 = 正常, 1 = 等待, 2 = 超时, 3 = 登出 2、 注释语法包含两种情况:单行注释、多行注释。单行注释:注释前有两个连字符(-),一般对变量、条件子句可以采用该类注释。 多行注释:符号/*和*/之间的内容为注释内容。对某项完整的操作建议使用该类注释。4.2 函数文本注释 1、 在每一个块和过程(存储过程、函数、包、触发器、视图等)的开头放置注释。/* *name : -函数名 *function : -函数功能 *input : -输入参数 *output : -输出参数 *author : -作者 *CreateDate : -创建时间 *UpdateDate : -函数更改信息(包括作者、时间、更改内容等) */ CREATE OR REPLACE PROCEDURE dfsp_xxx 2、 传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明;取值有特定含义的变量(如boolean类型变量),应给出每个值的含义。 3、 在每一个变量声明的旁边添加注释。说明该变量要用作什么通常,简单使用单行注释就行了,例如:l_sfzh CHAR(11) -身份证号码4、 在块的每个主要部分之前添加注释 在块的每个主要部分之前增加注释,解释下组语句目的。4.3 常用SQL 语句的编写规范 1、 CREATE语句 CREATE TABLE dft_dksz(YHBS VARCHAR2(20) NOT NULL, ZHGX DATE, DKKHD VARCHAR2(24), CONSTRAINT pk_dksz_yhbs PRIMARY KEY (YHBS) )2、 SELECT语句查询语句采用以下原则编写,将SELECT 语句分为5部分:1) 由SELECT 开头,后跟一个显示查询结果的列表;2) 由FROM 开头,后跟一个或多个获取数据所涉及的表;3) 由WHERE 开头,后跟一个或多个确定所需值的条件;4) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总;5) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序。 每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐,如 SELECT COL1, COL2, COL3FROM table1 WHERE COL1 COL2 GROUP BY COL1, COL2 ORDER BY COL1; 关键字用大写,列名和表名一般采用小写。 语句中嵌入逗号时,在逗号后面加一空格 当语句的同一部分要延续到下一行时,按下列格式排列(超过5列): SELECT COL1, COL2, COL3, COL4, COL5, COL6, COL7, COL8, COL9, COL10 将语句中WHERE 和AND 部分格式化,书写布局类似于 WHERE ANDAND 当语句中出现括号时,括号的两边不留空格。 在SQL 语句使用运算符时,操作两边应各留一个空格,如:WHERE X = Y ANDA = B ANDC = D3、 INSERT语句 INSERT INTO (, , ) VALUES (, , )或超过5个属性列时:INSERT INTO ( ,.,) VALUES ( ,.,)4、 UPDATE语句 UPDATE SET = 5、 DELETE语句 DELETE FROM table1 WHERE COL1 = ?4.4 条件执行语句(IF)编写规范 1、 条件执行语句IFELSE 按以下格式编写IF THEN ELSE (或ELSIF) THEN END IF;注: (1) 在IFTHEN和ELSE(或ELSIF)及ELSETHEN和END IF间可包含一条或多条PL/SQL 语句,而不需要加BEGIN 和END (2) IFELSEENDIF 语句可以嵌套 (3) 注意ELSIF的写法4.5 循环语句编写规范 1、 简单循环语句 LOOP EXIT WHEN END LOOP;2、 FOR循环语句 FOR 变量 IN 变量取值范围 LOOP END LOOP;3、 WHILE循环语句 WHILE LOOP END LOOP;4.6 函数文本(存储过程、函数和包等)1、 对于存储过程、函数等程序块都要有异
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年初中数学蝴蝶题目及答案
- 新疆沙湾县一中2025年高三数学第一学期期末联考试题
- 六年级上册语文试卷及答案
- 数列的概念与简单表示法二讲课文档
- 同步发电机励磁自动控制系统
- 2025年甘肃省定西市岷县岷阳中心卫生院招聘乡村医生备考练习试题及答案解析
- 2026阿里云应届生招聘备考练习试题及答案解析
- 2025年河北地质大学华信学院公开招聘大学生思想政治辅导员若干名考试参考试题及答案解析
- 2025年武宁县暑期教师工作岗位调整考试入闱人员考试参考试题及答案解析
- 2025全科医师转岗培训理论知识题库及参考答案
- 新版2026统编版小学道德与法治三年级上册 第4课《 科技力量大》第1课时 科技改变生活和科技改变观念 教案设计(教案)
- 学会交流与沟通课件
- 2025年幼儿园教师大班数学工作总结样本(3篇)
- 铁路监理培训考试试题及答案
- 2025年毕节市农业发展集团有限公司招聘考试笔试试题(含答案)
- 2025全国企业员工全面质量管理知识竞赛题库附答案
- 物业管理权交接方案
- GB/T 17622-2008带电作业用绝缘手套
- 10千伏绝缘电缆热缩户外终端头制作评分标准
- 癌症治疗功能评估-乳腺癌(FACT-B)[版本4]
- (最新)手机连锁门店销售管理规定(精品干货)
评论
0/150
提交评论