其他-java大礼包itqb2-15sql代码开发_第1页
其他-java大礼包itqb2-15sql代码开发_第2页
其他-java大礼包itqb2-15sql代码开发_第3页
其他-java大礼包itqb2-15sql代码开发_第4页
其他-java大礼包itqb2-15sql代码开发_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

文档介 文档目 文档范 定 参考资 公共命名规 一般规 公共编码规 一般性规 CREATE语 SELECT语 INSERT语 UPDATE语 DELETE语 游标语 IF语 程序块规 语 设计规 一般表设 触发 视图设 性能优 书写规 缩进风 空格及换 注释说 一般性注 ORACLESQL最佳实 异常规 DB2SQL最佳实 CreateTable细 、、文档介绍文档目的范,使数据库对象命名及编码风格标准化,可增加程序的可读性,增强系统的可性,提高文档范围 定义参考资料一般规则一般性规定2OR、IN、AND、以及=、<=、>=等前后各加上一个空格。当语句中出现括号时,括号的4、对较为复杂的sql语句加上注释,说明算能5、使用空行将逻辑相关的代码段之间分隔开6、程序块采用缩进风格书写,保证代码清晰易读,风格一致。必须使用空格,不允许使用TAB7、一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进。8whereCREATE语句CREATECREATETABLEBUSINOVARCHAR2(20)NOT,TRANDATE,DESC,CONSTRAINTpk_dksz_yhbsPRIMARYKEY)SELECT语句 col1>GROUPBYcol1,col2ORDERBYcol1;sb_sbqkxxsbqINNERJOINsb_ ONsbq.czwdbh=sbb.czwdbhsbq.swdjbh=avc_swdjbhAND bsssq=INSERT语句INSERTINTO<要的表名>,),)INSERTINTOsm_user))INSERTINTOsm_duty_bak)duty_id=:UPDATE语句格式如下:【】UUPDATE要更新的表名SET要更新的列列值,<要更新的列列值,<要更新的列列值DELETE语句格式如下:【DELETEDELETEFROMtable1WHEREcol1=游标语句格式如下:【FETCHcur_into…EXITWHENENDLOOP;CLOSEIF语句IFENDIF;需要加BEGIN和ENDIFIF(v_count=1orv_count=2v_countv_count=5orv_count=6)THENSELECTSYSDATE ENDIF;IFIF(v_count=0)THENELSIF(v_count=1)THENENDIFIF(v_count=1)THENELSIF(v_count=0)THENENDIFv_count=0THENIFIFv_count=0THENIFv_flag=0THENENDELSEIFv_count=1THENIFv_flag=0THENENDENDIFIF(v_count=0)AND(v_flag=0)THENELSIF(v_count=0)AND(v_flag=1)THENELSIF(v_count=1)AND(v_flag=0)THENELSIF(v_count=1)AND(v_flag=1)THENEND简单循环语句EXITWHEN条件表达式>ENDLOOP;FORENDLOOP;FORIN变量取值范围WHILE循环语句ENDLOOP;WHILE条件表达式程序块规范sqlbegin...end如CREATECREATEORREPLACEPROCEDURE……CREATE语wdj.status=wdj.status=isnullisnotnull或nvl函数进行比较。IFIFv_user_name=nulldbms_output.put_line(‘usernameisENDIFv_user_nameisnulldbms_output.put_line(‘usernameisEND的,对于复杂的一些sql可以考虑使用程序实现,原则上遵循一句话只做一件事情。过程中变量的应集中在as和begin关键字之间,不允许在代码中随意定义变量,定义可读性。(ORACLE适用)orderbyorderby要让orderby唯一,最佳方案是增加一pk,如实在没办法则可以追加rowid,orderby后尽量避免使用rowid。in、outoutnesttable、record,尽量都带上nocopy,提高程序的运行效率。函数maxminsum在没有记录得符合查询条件的情况下返回nullINTOv_user_nameFROMfnd_userWHEREfu.user_id=p_user_id;来更方便,避免了含议模糊的,其中能够别名中清晰地判断出表名。别名命名时,尽量避逸使用无意义的代号a、b、c…,而应该有意义(如表system_items_b对应别名为msi,po_headers_all别名对应为pha)。SELECTSELECT INNERINNERJOINwip.wip_discrete_jobs b.wip_entity_id=a.wip_entity_idWHEREa.status_type=3 te_released>SELECTSELECT INNERJOINwip.wip_discrete_jobs we.wip_entity_id=wdj.wip_entity_idWHEREwdj.status_type=3 wdj.date_released>一般表设计schemaschemanameindex。如:schemaINV,则默认的表空间应该为INV,所对应的索引空间为INVINDEX建立在system空间上,导致性能问题。对于事务比较繁忙的数据表,必须存放在在该表特殊表设计原则按某些字段进行增长,则采用按字段值范进行分区;如果表按某个字段的几个关键值进行分布,则采用列表分区;对于静态表,则采用hash分区或列表分区;在范围分区中,如果数索引设计原则每个索引在创建时,必须指定表空间,不要采用默认表空间,以防止索引建立在system空间和非索引空间,以减少IO,提高性能。完整性设计原则触发器视图设计distinct/groupby)、无函数。性能优化INSERTINTOsm_usersINSERTINTOsm_usersv_user_idsm_users.user_id%type;v_user_namesm_users_user_name%type;INSERTINTOsm_usersFROMaWHEREEXISTS(select1frombwherea.column=FROMaWHEREa.column(SELECTb.columnFROMb)andwhereFROMdeptWHEREdeptnoNOTIN(SELECTdeptnoFROMemp)】FROMdeptLEFTJOINempONdept.deptno=emp.deptnoWHEREemp.deptnoISNULLFROMcityWHEREcity_nameFROMcityWHEREcity_nameLIKEFROMcityWHEREcity_nameLIKEselect**selectcoun(*).例如:以下SELECT*FROM SELECTduty_idINTOv_duty_idFROMsm_dutySELECTduty_idINTOv_duty_idFROMsm_dutyFROMsm_dutyWHERErownum=2;SELECTduty_id,duty_nameSELECTduty_id,duty_nameFROMsm_dutyWHERE缩进风格特殊要求可根据项目自行定义,但项目内必须保持。空格及换行v_countv_count:=1;v_creation_date:=v_count:=1;v_creation_datev_count:=1;v_creation_date:=SYSDATE;超过beginnull;exceptionbeginnull;exceptionwhenothersthennull;EXCEPTIONWHENOTHERSTHEN一般性注释函数文本注释修 CREATE[ORREPLACE]PROCEDURE…例如l_sfhCHAR(11)--号码。异常规范my_errEXCEPTION;…RAISEmy_err;…WHENmy_errWHENno_data_foundTHEN…WHENothersWHENno_data_foundTHENINSERTINTO …WHENothersTHENINSERTINTO验证异常信息规范SQL语句细则SELECT*。SELECTSELECT*FROM如果表table有100个字段,使用SELECT*会 磁盘中的所有列并返回,会对IO造成浪费,尽量仅SELECT需要的字段,不仅速度快而且不浪费资源INSERTINTOtable_aSELECTINSERTINTOtable_aSELECT*FROMtable_b;INSERTINSERTINTOtable_aRIGHTJOINtable_a.key=table_a.keyistable_bLEFTJOINtable_a a.key= a.keyisALEFTJOINBWHEREB.XISNULLA.XNOTIN(SELECTXFROMDDLALTERUSERXXDEFAULTTABLESPACECreateTable细则目前仓库生产环境正常使用的用户自定义的表空间主要有7个:LINDEXTS01/LINDEXTS02

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论