Oracle数据库开发规范

上传人:pu****.1 文档编号:565041284 上传时间:2022-11-23 格式:DOC 页数:32 大小:173KB
返回 下载 相关 举报
Oracle数据库开发规范_第1页
第1页 / 共32页
Oracle数据库开发规范_第2页
第2页 / 共32页
Oracle数据库开发规范_第3页
第3页 / 共32页
Oracle数据库开发规范_第4页
第4页 / 共32页
Oracle数据库开发规范_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《Oracle数据库开发规范》由会员分享,可在线阅读,更多相关《Oracle数据库开发规范(32页珍藏版)》请在金锄头文库上搜索。

1、ORACLE数据库开发规范注:本规范基于ORACLE10G。对于其他数据库以及ORACLE数据库其他的版本,本规范并不一定合适。目录目录31:字符集、字段类型411:字符集412:字段类型42:命名规范621:命名规则表622:命名规范:73:书写规范931:缩进风格与对齐932:语句书写规则933:其他114:表135:触发器146:主键和外键:157:索引1671:建立索引1672:使用索引168:视图189:存储过程和函数1910:注释规范22101:总则22102:存储过程、函数头注释22103:文件注释2311:脚本规范2512:SQL语句性能优化2713:冗余信息3114:异常处理

2、32附录33数据库三个范式331:字符集、字段类型11:字符集ORACLE的数据库实例有2个字符集设置:数据库字符集和国家字符集。l 【规则1-1-1】数据库字符集设置为ZHS16GBK,国家字符集设置为AL16UTF16。l 【规则1-1-2】不要试图修改数据库的字符集。如果需要不同字符集的数据库实例,那只能重新建立一个新的数据库实例。12:字段类型l 【规则1-2-1】定长文本型字段都要声明char,不定长文本型字段都要声明成varchar2(如果确实需要,也可以使用nvarchar2)类型。 例如:Create table t_test (name varchar2(10), depar

3、tment nvarchar2(20);请注意,在ZHS16GBK字符集下,每一个汉字是占用2个字节,而每一个英文字母和符号占用一个字节。上面的name字段可以最多存储5个汉字,或者是10个字母。而department字段可以最多保存20个字符,不论是汉字或者字母。 也可以如下声明:Create table t_test (name varchar2(10 char), department varchar2(20 char);这样的话,不论是汉字或者是字母,name字段就可以保存最多10个字符,。l 【规则1-2-2】所有的日期型都要声明成文本型,形同:yyyyMMdd。其中,yyyy是4位

4、数的年份,MM是两位数的月份,dd是两位数的日期。举例如下:表示2005年1月份12日l 【规则1-2-3】所有的时间型都要声明成文本型,形同:hh24:mi:ss。其中,hh24表示是24进制的小时,mi是分钟,ss是秒数。 举例如下:11:12:13表示11点12分13秒。l 【规则2-2-3】如果一个字段需要同时包含日期和时间,需要分成日期型和时间型两种类型的字段进行设计。l 【规则1-2-4】bool型字段一律定义成char(1)类型,0 表示false,1 表示true。同时需要在该字段上面加约束,使合法的取值只能是0,1。l 【规则1-2-5】所有的整型字段都应该声明为 numbe

5、r(n),n为整型字段有效长度。 比如 Create table t_test (age number(3)字段age能存储从-999 到 999的数字。当然,可以在这个字段上加约束,以约束它只能保存正数。不要如以下的方式定义整型:Create table t_test (age number)。因为这样定义等价于:Create table t_test (age number(38)很显然,这个字段定义得实在太大太大了。不但没有必要,而且对数据库有负面影响。l 【规则1-2-6】所有的浮点数定义为:number(p,s),其中的p是表示精度,或者总位数,取1-38中数字。S是小数位数,合法值

6、为:-84-127。 比如:Create table table1 (salary number(8,2)这个salary字段表示,精确到小数点后面2位,总共最多有8位数字,这样算来,在小数点前面,最多能有6位数字。这个字段能表示的最大正数是.99,最大负数是-.99。l 【规则1-2-7】如果一个字段保存的是一系列的编码(枚举型),则该字段必须定义成文本型。字段中保存的是大写字母。 举例如下:Customer表格有一个字段customer_type,该字段对应的是客户的类型编码,字段类型是char(1),其中,N表示普通客户,V表示VIP客户。同时必须增加约束,以保证枚举选择以外的值不能被插

7、入。l 【规则1-2-8】如无特殊需求,避免使用大字段(blob, clob, long, text, image 等)。如果需要使用大字段,可以先考虑Blob。2:命名规范21:命名规则表对象名前缀范例描叙数据库实例无sale_test表空间ts_ts_user表tablet_t_Customer表名原则上不超过24个字符分区表t_+分区描叙t_system_items_0612视图viewv_v_ Customer视图名原则上不超过24个字符序列sequences_seq_ t_Customer_id约束ckc_ckt_ckc_ t_Customer_idckt_ t_Customer对字

8、段的约束前缀为ckc.对表的约束前缀为ckt一般索引idx_idx_sample_mid位图索引mapidx _ mapidx_sample_mid唯一索引unidx_ unidx_sample_mid分区表本地索引ln_ ln1_system_item_分区表全局索引gn _ gn_system_item主键pk_ak_pk_ t_Customerak_ t_Customer存储过程up _up_InsAgentAccount函数uf _uf_SelMaxData包和包体pkg _pkg_MngClt物化视图mv _mv_ Customer数据库联接from_from_ sale_test保

9、存点spt_spt_wrp变量自定义记录类型rec_Type rec_item is ( item_id varchar2(10);游标cur_Cursor cur_items is局部变量l_l_item输入变量i_i_itme输出变量o_o_itme输入输出变量io_io_item22:命名规范:l 【规则2-2-1】所有用户自定义的数据库对象名统一使用小写字母。l 【规则2-2-2】命名尽量采用富有意义的英文词汇,不要采用汉语拼音。 示例:以下书写不符合规范t_wl_item (物料编码表) 应如下命名:t_mtl_item l 【规则2-2-3】所有名称采用英文单数名词或动词,避免出现

10、复数。l 【规则2-2-4】如果键是主键,用表格名再加前缀pk_的方式命名。如果长度超过30个字符,则对表格名进行缩写。l 【规则2-2-5】如果键是备选主键,用表格名再加前缀ak_的方式命名。如果长度超过30个字符,则对表格名进行缩写。l 【规则2-2-6】如果是主键字段,统一命名为:Id;如果是保存其他表上的主键字段则用缩写加“Id”的方法命名。举例如下:l 销售订单的编号字段命名:SalOrdId;主键则命名为:Id。l 【规则2-2-7】存储过程、函数、触发器、程序块中定义的变量和输入、输出参数在命名上有所区分。 变量名小写,局部变量名使用“l_”开头。用i_ 前缀代表输入参数变量,用

11、o_ 前缀代表输出参数变量,用io_ 前缀代表输入输出参数变量。l 【规则2-2-8】当一个单词不能够表达对象的函义时,用词组组合,如果组合太长时,采用简写或缩写,缩写要基本能表达原单词的意义。标识符应当直观且可以拼读,可望文知意。 例如,下面的命名就很合适l_minValue number;l _maxValue number;procedure up_setValue();l 【规则2-2-9】变量和参数用小写字母开头的单词组合而成 示例:l _itemNumber number;l 【规则2-2-10】变量的名字应当使用“名词”或者“形容词名词” 示例l _itemValue numbe

12、r;l 【规则2-2-11】存储过程名字应当使用“动词”或者“动词名词”(动宾词组) 示例procedure up_setValue ();l 【规则2-2-12】当一个单词不能够表达对象的函义时,用词组组合,如果组合太长时,采用简写或缩写,缩写要基本能表达原单词的意义。原则上首先要考虑的是需要清晰的表达命名所要表达的含义,其次才是考虑长度不要太长。l 【规则2-2-13】分区表的表名可以遵循普通表的正常命名规则。l 【规则2-2-14】按时间范围分区(每有一个分区),分区名字为表的主要用途的缩写+下划线+yymm。示例:库存交易分区表的分区命名可以采用如下方式: 示例trans_0611 、

13、trans_0612、trans_0701 、trans_0702 l 【规则2-2-15】最小分区名字为before_data ,最大分区名字为after_data .3:书写规范31:缩进风格与对齐l 【规则3-1-1】:程序块采用缩进风格书写,保证代码清晰易读,风格一致,缩进格数统一为4个。l 【规则3-1-2】同一条语句占用多于一行时,从第二行开始第一个关键字应当空4格。 示例:select field1,field2, from t_tablename where field1 1l 【规则3-1-3】对于Insert values 和update 语句,一行写一个字段,这段后面紧跟

14、注释(注释语句左对齐),values 和insert 左对齐,左括号和右括号与insert、values 左对齐。 示例:insert into t_user ( user_id, -用户ID, 主键 user_name, -用户名 login_name -登录名) values ( i_user_id, i _user_name, i _login_name )32:语句书写规则l 【规则3-2-1】一行代码只做一件事情,如只定义一个变量或几个同类型且密切相关的变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。 示例:以下书写不符合规范:l_count := 1; l_creation_date : = sysdate; 应写成:l_count := 1; l_creation_da

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号