oraclesql编写规范(v1.1)

oraclesql编写规范(v1.1)

ID:36302581

大小:1.55 MB

页数:48页

时间:2019-05-08

oraclesql编写规范(v1.1)_第1页
oraclesql编写规范(v1.1)_第2页
oraclesql编写规范(v1.1)_第3页
oraclesql编写规范(v1.1)_第4页
oraclesql编写规范(v1.1)_第5页
资源描述:

《oraclesql编写规范(v1.1)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、ORACLESQL编写规范v1.12012年11月武明明技术规划部数据库组wumingming@boco.com.cn21.SQL(PL/SQL)编码格式规范统一的SQL编码格式规范不但可以使阅读者感到清晰明了,而且可以最大程度上避免同一SQL语句在不同地方处理时由于书写格式的不统一,而造成无法共享从而增加SQL解析负担的问题。比如,如下的三条SQL,其达到的目的是一样的,但是在ORACLE看来这是三条完全不同的语句,所以要进行三次硬解析。select*fromemployeeswheredep

2、artment_id=60;SELECT*FROMEMPLOYEESWHEREDEPARTMENT_ID=60;select/*+PARALLEL*/*fromemployeeswheredepartment_id=60;对于联机交易型系统来说,SQL的软解析率是非常关注的一个指标。而引起SQL不能共享的主要因素包括:大小写、空格、注释、提示等。31.SQL(PL/SQL)编码格式规范一些第三方开发工具,例如TOAD等,都有比较好的格式化功能,大家可以用其做风格统一和美化使用,以下是自定义的一套

3、规范,可以供大家参考。大小写风格所有数据库的关键字和保留字均使用大写,对象名称、列名称则使用小写。缩进风格程序块以及SQL均采取统一的缩进风格书写,保持代码的清晰易懂,风格一致,缩进格式保持2到4个。缩进使用空格,而不要使用【Tab】键。当一条SQL中的谓词和子句比较多时,尽量断开成多行,可以采用使子句开头保持一行的方式,谓词关键字保持右侧对齐,左侧缩进的方式。IFflag=1THENSELECTusernameINTOv_userinfoFROMuserinfoWHEREuserid=:ius

4、erid;ENDIF;空格及换行不允许把多个语句写在一行,即一行只写一条语句;避免将复杂的语句写在同一行,建议在谓词和关键字处换行;相对独立的程序块之间必须加空行;BEGIN、END独立成行;太长的表达式应在低优先级操作符处换行,操作符或关键字放在新行之首,划分出新行应适当地缩进,使排列整齐,语句可读;1.SQL(PL/SQL)编码格式规范1.SQL(PL/SQL)编码格式规范不同类型的操作符混合使用时,建议使用括号进行隔离,以使代码清晰;减少控制语句的检查次数,例如,在IF…ELSE控制语句中

5、,应将最常用的符合条件前置以被检查到。DECLARE--定义局部变量vFlagVARCHAR2(10);--判断标志...BEGINIF((a=bANDa=cANDa=d)OR--在OR处断行,可使得逻辑更为清晰(a=eANDe=f))THEN--处理部分IFvFlag=1THEN--vFlag=1为经常出现的条件,可有效减少判断检查次数--处理部分ELSIFvFlag=2THEN--vFlag=2为次之出现的条件--处理部分ELSE--处理部分ENDIF;END;2.ANSISQL标准规范19

6、89年,美国国家标准协会(ANSI)第一次发布了SQL标准规范,92年被修订,简称SQL-92,目前这个标准为SQL-99。各主要数据库厂商均宣布支持该标准,但因历史遗留问题,大多也有一些各自的特性在产品中。如果我们在SQL编写规范上面做到符合ANSI的标准,在产品向不同的数据库平台移植的过程中就不会遇到由于某一产品的特殊语法与其他产品不兼容而需要调整的问题。ORACLE由于早于ANSI有一套SQL语法定义方式,其与ANSI的不同主要体现在“关联”(JOIN)语句的书写方式上。一些使用过ORAC

7、LE老版本的SQL编码人员还是非常习惯于ORACLE那套老的书写方式。是否使用ANSISQL规范并非强制,可以由项目管理人员决定。如果考虑向不同数据库平台做移植时减少兼容性带来的问题,可以参考一下此规范。2.ANSISQL标准规范为了对比上的清晰,分别列出ORACLE老版本上的书写方式(也称ORACLE方言)与ANSI规范的主要不同之处。交叉连接(CROSSJOIN),也称笛卡尔连接,是指不限定关联条件的连接ORACLE方言写法:SELECT*FROMinstructor,course;ANSI

8、写法:SELECT*FROMinstructorCROSSJOINcourse;2.ANSISQL标准规范等价连接(EQUIJOIN),也称内连接(INNERJOIN)或规则连接(REGULARJOIN),是指表间有等价连接条件的连接方式。ORACLE方言写法:SELECTs.first_name,s.last_name,z.zip,z.city,z.stateFROMstudents,zipcodezWHEREs.zip=z.zip;ANSI写法1:SELECTs.first_name,s.l

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

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

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