资源预览内容
第1页 / 共27页
第2页 / 共27页
第3页 / 共27页
第4页 / 共27页
第5页 / 共27页
第6页 / 共27页
第7页 / 共27页
第8页 / 共27页
第9页 / 共27页
第10页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
文件标识:QD-30-08密级:内部版本号:Ver1.0大庆金桥软件开发作业体系Oracle数据库命名编码规范oracle编码规范变更历史操作责任人日期版本变更内容创建李富华2010-04-20无创建文档编辑周强2010-04-21无修改文档大庆金桥信息技术工程有限公司 - 26 -目录1.文档介绍41.1文档目的41.2文档范围41.3定义41.4参考资料42.命名规范42.1一般规则42.2对象命名汇总表53.编码规范63.1一般性规定63.2CREATE语句73.3SELECT语句73.4INSERT语句83.5UPDATE语句83.6DELETE语句93.7游标语句93.8IF语句93.9简单循环语句113.10FOR循环语句113.11WHILE循环语句113.12程序块规范123.13语法规范124.设计规范144.1一般表设计144.2特殊表设计原则154.3索引设计原则154.4完整性设计原则154.5触发器154.6视图设计154.7性能优化165.书写规范205.1缩进风格205.2空格及换行206.注释说明216.1一般性注释216.2函数文本注释217.异常规范227.1pl/sql异常规范227.2后台验证异常信息规范238.附录238.1附一 开发工具238.2附二 预定义异常248.3附三 范式258.3.1第一范式258.3.2第二范式258.3.3第三范式258.3.4Boyce-Codd范式268.3.5第四范式268.3.6第五范式268.3.7反规范化261. 文档介绍1.1 文档目的本文档用于指导开发设计人员对Oracle数据库进行设计和编码。使用统一的命名和编码规范,使数据库对象命名及编码风格标准化,可增加程序的可读性,增强系统的可维护性,提高软件的质量。本文档仅仅针对Oracle数据库做的规范,对其他数据库不具有指导意义。1.2 文档范围本规范适用于公司范围内所有以Oracle作为后台数据库的应用系统和项目开发工作。对公司2010年以前用Oracle数据库开发的项目不做限制。1.3 定义无1.4 参考资料2. 命名规范2.1 一般规则Oracle中的各种数据对象,包括实例、数据库、表空间、表、视图、存储过程、函数、解发器等的命名都要遵循Oracle的标准命名规则:1) 以字符打头,30个字符以内,名称超过长度的情况下适当采用缩写。2) 只能包含A-Z,a-z,0-9,_。3) 不能和同一个表空间下的其他对象重名。4) 不能是Oracle服务器的保留字。5) 数据对象尽量不要使用缩写;如要缩写最好使用容易看懂的缩写。2.2 对象命名汇总表对象对象名前缀范例描述表(table)t_t_user表名长度原则上不超过25个字符;表、视图、字段名中不出现复数,创建表必须要注释,comments必须要填写。视图(view) v_v_user如果表名或字段名过长,则用表名或字段名的缩写。序列(sequence) s_s_user一般索引(normal index) i_i_user_usernamefield:字段名,遇上长字段名可采用缩写唯一索引(unique index) i_u_i_u_user_birthday主键(primary key) pk_pk_user_userid外键(foreign key) fk_fk_student_user_userid簇(cluster) cl_cl_user_student触发器(triger) tr_i _ tr_u _ tr_d _tr_iud_tr_i_ add_user_birthdayi:insertu:updated:delete存储过程(procedure) p_i_p_u_p_d_p_s_p_i_user_birthday函数 (function) f_f_get_username_by_userid包及包体(package & package body) pkg_pkg_user_info类及类体 (type &type body) type_type_user_class同义词(synonym)inv_inv_user保存点(savepoint)save_save_表的保存点事务的保存点事务(transaction)trans_trans_insert_userinfo字段(field)create_date单词小写,中间用下划线隔开,字段必须要注释,comments必须要填写。游标(cursor)cur_ cur_user_info数据库链接(database link)link_若远程服务器名和数据库名一致,采用 link_用户及角色3. 编码规范3.1 一般性规定1、 sql语句中的所有表名、字段名全部小写,系统保留字、内置函数名、sql保留字大写。【推荐】 2、 连接符OR、IN、AND、以及、=等前后各加上一个空格。当语句中出现括号时,括号的两边不留空格。3、 “不等于”统一使用。虽然 !=和是等价的,为了统一,不等于一律使用表示。4、 对较为复杂的sql语句加上注释,说明算法、功能。5、 使用空行将逻辑相关的代码段之间分隔开。6、 程序块采用缩进风格书写,保证代码清晰易读,风格一致,缩进格数统一为 2个。必须使用空格,不允许使用TAB键,以免用不同的编辑器阅读程序时,因 TAB键所设置的空格数目不同而造成程序布局不整齐。7、 一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进。8、 where子句书写时,每个条件占一行,保留字或者连接符放到行的最后面,含有键的条件放到其他条件的前面。3.2 CREATE语句CREATE TABLE t_dksz(YHBS VARCHAR2(20) NOT NULL,ZHGX DATE,DKKHD VARCHAR2(24),CONSTRAINT pk_dksz_yhbs PRIMARY KEY (YHBS)3.3 SELECT语句查询语句采用以下原则编写(可最大化重用共享池中的SQL语句,提高应用程序性能):(1) 由SELECT开头,后跟一个显示查询结果的列表;【推荐】(2) 语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行;(3) 由FROM开头,后跟一个或多个获取数据所涉及的表,如果后面跟多个表,关键字右对齐;【推荐】(4) 由WHERE开头,后跟一个或多个确定所需值的条件,如果后面有多个条件,关键字右对齐;【推荐】(5) 由GROUP BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行汇总,关键字右对齐;【推荐】(6) 由ORDER BY开头,后跟一个或多个表列名,通过这些列以对查询结果进行排序,关键字右对齐;【推荐】(7) 当语句中出现括号时,括号的两边不留空格;(8) 在SQL语句使用运算符时,操作两边应各留一个空格;(9) 每个部分分行编写,将每一行的第一个关键字与第一行的SELECT尾部对齐;例如:SELECT col1, col2, col3FROM table1WHERE col1 col2GROUP BY col1, col2ORDER BY col1;SELECT col1, col2, col3, col4, col5, col6,col7, col8, col9, col10FROM sb_sbqkxx,sb_bb011101WHEREsb_sbqkxx.czwdbh = sb_bb.czwdbhANDsb_sbqkxx.swdjbh = avc_swdjbhANDsb_sbqkxx.sbsssq = avc_sbsssq;3.4 INSERT语句 关键字用大写,列名和表名采用小写;【推荐】 语句中嵌入逗号时,在逗号后面加一空格,当逗号是最后一个字符时,把它放在本行; 当语句的同一部分要延续到下一行时,按下列格式排列: 当语句中出现括号时,括号的两边不留空格。格式如下:【推荐】INSERT INTO (, , . , ,)VALUES(, , .,)例如:insert into sm_user(user_id, user_name, login_name)values( p_user_id, p_user_name, p_login_name)insert into sm_duty_bak(duty_id, duty_name, created_by, creation_date, last_updated_by,last_update_date, disable_date ) selectduty_id, duty_name, created_by, creation_date, last_updated_by,last_update_date, disable_date from sm_dutywhere duty_id =: duty_id3.5 UPDATE语句 关键字右对齐;格式如下:【推荐】UPDATE SET = , = , = 3.6 DELETE语句格式如下:【推荐】DELETE FROM table1WHERE col1 = ?3.7 游标语句格式如下:【推荐】
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号