数据库编程规范(oracle)

数据库编程规范(oracle)

ID:9925987

大小:94.93 KB

页数:12页

时间:2018-05-15

数据库编程规范(oracle)_第1页
数据库编程规范(oracle)_第2页
数据库编程规范(oracle)_第3页
数据库编程规范(oracle)_第4页
数据库编程规范(oracle)_第5页
资源描述:

《数据库编程规范(oracle)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Oracle数据库编程规范声明:....1范围和简介1.1范围本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作。1.2简介使用统一的OracleSQL编程规范,使Oracle数据库库编程风格标准化,以便于阅读、理解和继承及项目组成员相互交流。本规范的制定主要出于以下几方面的考虑:效率,可读性,可维护性,规范性规范中未做声明的内容,以满足开发总则为准。Ps:优秀的应用:良好的硬件配置;正确合理的数据库及中间件参数配置;合理的数据库设计;良好的sql编程;运行期的性能优化2文件格式以及命名规范2

2、.1文件格式及脚本l过程文件:prc_xxx.prclSql脚本文件:xxx.sqll视图文件:vw_xxx.sqll脚本都置于xxx目录对应子目录下1.1命名以及一些原则l过程:prc_开头,必须有异常捕获,行数限制,事物提交,不要使用动态游标l函数:fn_开头,l视图:vw_开头l表:用户.模块名(最多三级).对象名创建时都必须带上用户名如.mposx.m_trans_info,且每个表必须创建索引,考虑数据增长l字段:主语+宾语,如user表的user_id,user_status而不是id,status便于字段扩

3、展命名,日期字段使用_date结尾,时间字段使用_time结尾,备注统一remark(varchar2(500),考虑非空选项,默认值l主键:pk_+对象+字段名,默认主键长度16位为日期格式+4位循环sequence:如YYYYMMddHH24miss+seq_xxxxl索引:idx_开头,l序列:seq_开头2Sql书写规范写SQL的时候请注意大小写一致。因为sql执行的第一步是将其转化成ASCII编码,而大写和小写的ASCII编码是不同的。ORACLE会认为select*fromdual和SELECT*fromDU

4、AL是两个不同的SQL,这会造成额外的硬分析。开发人员要使用统一的beautifier格式规范:Oracle保留字大写,其余小写sql格式关键是对齐,方便识别,参考如下insert:Delete:Update:Select:Selectc1,C2,C3FromTbxxWherec1=1Andc2=2Andc3=3Select子句记得先写关联条件再条件等于,其余的固定的重要的走索引的写前面,查询表一定要有别名别人写的:http://blog.itpub.net/11990065/viewspace-702148/1sql优

5、化以及提高1.1绑定变量1.2分析函数分析函数是oracle816引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有相当大的提高.分析函数的主要包含:自动汇总函数rollup,cube,rank函数,rank,dense_rank,row_numberlag,lead函数um,avg,的移动增加,移动平均数ratio_to_report报表处理函数fi

6、rst,last取基数的分析函数具体应用可参考一个比较详细的文章,URL地址:http://www.cnblogs.com/sunsonbaby/archive/2004/09/29/47876.aspx1.3很方便的一些关键字With,level,Merge1.4临时表频繁dml操作处理1.5注意的地方避免字段计算如:Selectsalaryfromdeptwheresalary/2=1000;Sql拆分,尤其是复杂更新,复合查询,(使用unionall)索引列不用like开头查询如SELECTUSER_NO,USER

7、_NAME,ADDRESSFROMUSER_FILESWHEREUSER_NOLIKE'%109204421';//全表扫多使用正向匹配,如exists而非notexists,(易导致逻辑错误)避免isnull和isnotnull使用decode减少处理时间SELECTCOUNT(*),SUM(SAL)FROM EMPWHEREDEPT_NO=0020ANDENAMELIKE ‘SMITH%’;SELECTCOUNT(*),SUM(SAL)FROM EMPWHEREDEPT_NO=0030ANDENAMELIKE ‘SM

8、ITH%’;SELECTCOUNT(DECODE(DEPT_NO,0020,’X’,NULL))D0020_COUNT,COUNT(DECODE(DEPT_NO,0030,’X’,NULL))D0030_COUNT,SUM(DECODE(DEPT_NO,0020,SAL,NULL))D0020_SAL,SUM(DEC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。