SQL编码规范教材
- 格式:pptx
- 大小:561.17 KB
- 文档页数:63
PLSQL开发规范Andrew.zhao1.PL/SQL编码规范1.1.使用工具Toad或PL/SQL Developer1.2.使用基表(视图)别名在SQL语句中为表或视图指定别名。
其命名规格以简短为原则,一般为基表或视图名称每一节单词的第一个字母,如mtl_system_items的别名一般指定为msi。
1.3.例外处理尽可能多的使用EXCEPTION捕捉各种例外,并返回用户可读懂的信息,如无法确定是否有其它例外,可在每个PL/SQL程序块的例外中加上WHEN OTHERS语句。
例外信息统一风格,定义统一的例外处理Package统一返回在哪个Package、Procedure中发生的例外对日志中的一些调试信息,通过参数设定是否需要输出语法如下:EXCEPTIONWHEN OTHERS THENFND_FILE.PUT_LINE(FND_FILE.OUTPUT,SQLCODE);FND_FILE.PUT_LINE(FND_FILE.OUTPUT,SQLERRM);END;1.4.注释PL/SQL有两种表示注释的方法,分别为’--’和’/*…*/’,对于多行或整段的注释一般采用后者,对于单行或行尾的注释一般采用前者。
以下从几个主要地方注释做个规定,力求统一。
注释风格:注释单独成行、放在语句前面。
应对不易理解的分支条件表达式加注释;对重要的计算应说明其功能;过长的函数实现,应将其语句按实现的功能分段加以概括性说明;常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围;可采用单行/多行注释。
(--或/**/方式)。
包、过程、函数注释(代码头信息注释规范)/*===============================================================*Copyright(C)CNC All rights reserved*===============================================================*Program Name:[Package Name]*Author:$OSUSER*Date:$DATE$TIME*Purpose:[Purpose]*Parameters:*In X--参数X的简要说明*Out Y--参数Y的简要说明*Called:*Called By:*Description:**Update History*Version Date Name Description*-----------------------------------------------------*V1.0$DATE$OSUSER Creation*===============================================================*/如增加包中的过程或函数,需在包的注释中的Update History中增加相应的信息。
SQL数据库设计,编码开发规范(转)SQL Server Database Design, Code and DevelopmentStandards1.更改Change Name Date命名原则:表意性原则(增加) DavidDong Jan/05数据库命名DavidDong Jan/05表命名DavidDong Jan/05Server/Instance命名DavidDong Jan/05JOB,复制命名DavidDong Jan/052.简介数据库设计是指对于⼀个给定的应⽤环境,构造最优的数据库模式,建⽴数据库及其应⽤系统,有效存储数据,满⾜⽤户信息要求和处理要求数据库设计和开发标准是使Newegg Support Center的数据库系统的设计和开发正式化的标准。
通过此标准,来规范数据库设计。
通过⼀致的系统解决⽅案,能给我们的系统带来以下优点:¨开发出⾼可管理性的⾼质量系统¨能够快速的进⾏开发¨减少维护代码的时间Ø ⾮常容易的把代码从⼀个项⽬拷贝⾄另⼀个项⽬Ø 节省把游标,错误处理信息从⼀个项⽬中拷贝到另⼀个项⽬中的时间Ø 使程序逻辑简单化Ø 不⽤花费时间在常规的事情上,⽐如对象名称转换等,并可允许多次设计,编程和对复杂事件的测试⼯作¨在代码出错时⼤⼤节省时间¨只要在第⼀次是有个良好的设计3.开发环境3.1数据库模型CA公司的ERwin/SQL是数据建模的⼀个⾸选⼯具.在开发经常改变的项⽬时,使⽤ERwin来⽣成表(创建/删除),索引,规则,数据类型等数据库对象的脚本,在对项⽬⽂件进⾏修改之前,请确认已经对这些脚本进⾏过备份.任何数据库的改变,不管是在开发中还是在产品服务器中,都要⽤ERwinDiagram中进⾏相应的修改.如果产品服务器上做出了更改,则⼀定要对主脚本和ERwin diagram进⾏相应更新.3.2 Diagrams使⽤Visio进⾏数据diagram,流程图,服务器拓朴和其它diagrams进⾏设计.⽂档化系统或者处理流程可以⼤⼤有利于团队间的协作.3.3版本控制推荐使⽤Visual SourceSafe(VSS)对NESE数据库对象进⾏管理.在任何项⽬中,都应该有很好的代码更改控制,初始版本⽂件应该放到VSS中并被注释.所有对这些⽂件的后继更改都应该放到VSS中管理.3.4 源码⽬录结构在项⽬刚开始时,找到⼀个所有Team成员都能够访问的共享.按照以下结构初始化VSS⽬录和数据库⼦⽬录:\CMD 包括全系统脚本的脚本⽂件,如果是⼀个多数据库的系统,应该有⼀个可能创建所有数据库的命令⽂件.\DBName 在系统中的每个数据库应该有⾃⼰的⽬录结构,如下:\CMD:⽤来创建此数据库的脚本⽂件,并且来更改数据库构架.\DAT:⽤来刷新此数据库的数据⽂件.\SP:⽤来存储存储过程的脚本\TBL:除了下⾯⼦⽬录,这个⽬录应该包括表的定义脚本,每个表应该有它⾃⼰的脚本,此脚本应该包括经表的删除,创建语句,索引,触发器,完整性参照,Check约束,默认值约束等,每个表创建语句应该包括在不同的脚本中,并被把归类到类似于下⾯的相应的⼦⽬录中.注意:本⽬录中的脚本和以下⼦⽬录的脚本应该命名为它所影响的表名,⽐如:表名.sql:\Check:为每个表创建独⽴的Check约束定义脚本,Check约束应该使⽤alter table add constraint 来创建,并且每个altertable 语句只能包括⼀个contraint。
NC SQL编程规范一、概述本手册侧重于代码编写过程中SQL语句的编写规范问题,内容涉及书写风格、性能优化、多数据适配等方面。
文档中用★标示的内容为必须遵守的条例,其余的可视为建议。
二、书写风格1.SQL语句全部使用小写。
★2.引用字符时用单引号。
如:update testable set idcol=’abcd’。
★3.连接符或运算符or、in、and、=、<=、>=,+,- 等前后加上一个空格。
4.严禁使用select * …….形式的语句,必须指出select的具体字段,即select col1,col2,… from tablea where ….★5.严禁使用insert into table values(?,?,?),必须指出具体要赋值的字段,即insert intotablea (col1, col2,…) values(?,?,…)★6.SQL语句包含多表连接时,建议对每个表命名别名,对每个字段的使用都要带上表别名,即select a.col1, a.col2, b.col3 from tablea a, tableb b where a.col4=b.col57.避免隐含的类型转换。
例如在where子句中numeric 型和int型的列的比较或相加。
★8.读取是指通过JDBC读到的数据格式,保存是指保存在VO中的数据格式,插入或者更新是指insert或者update语句中的数据格式。
a)整型字段:读取时根据字段设置保存为Integer或者Long。
b)数字型字段:读取为BigDecimal,并保存为UFDouble,插入或者更新时为BigDecimal。
c)字符型字段:读取为String,并保存为String,插入或者更新为String。
d)布尔型字段:读取为String(‘Y’ OR ‘N’),并保存为UFBoolean,插入或者更新时为String(‘Y’ OR ‘N’)。
1.引言 (1)2.命名规范 (1)2.1基本命名规则 (1)2.2定制对象命名规则 (2)2.3变量命名规则 (2)3.程序书写规范 (4)3.1大小写风格: (4)3.2注释风格: (4)3.3缩进规则: (6)3.4其他 (7)3.5例子 (7)4.SQL优化规则 (9)4.1索引的使用原则 (9)4.2其他 (11)1.引言本规范用于说明在利用PL/SQL开发Oracle数据库后台应用程序时,应遵守的某些原则。
本规范的制定主要出于以下几方面的考虑:✓效率✓可读性✓可维护性✓规范性规范中未做声明的内容,以满足开发总则为准。
2.命名规范2.1基本命名规则本规范中采用的命名规则,基本模式为:前缀_描述其中前缀根据定制对象,变量类型的不同而变化。
描述的命名规则为:信息结构通则命名规则与字母标识符命名两者相结合(1)与表中字段相对应的变量命名采取代码方式,以与字段命名相对应(2)其余用有意义的字母标识符(如:拼音——各个字汉语拼音首字母联结成的字符串,对只有两个字符的,采用名称全拼)2.2定制对象命名规则如表2-1所示表2-1 定制对象命名规则2.3变量命名规则变量命名规则中前缀由两部分组成:变量类型前缀+数据类型前缀变量类型前缀规则如下表2-2:表2-2变量类型命名规则数据类型前缀命名规则如下表2-3:表2-3数据类型前缀命名规则例:声明一全局类数值型:gn_grsxh声明一局部类:str_name说明:对于未在上述数据类型中列出的其它数据类型(包括系统提供的数据类型),其数据类型前缀的命名必须不与表3-4中的前缀重名,它们的前缀命名规则是未规定的。
3.程序书写规范3.1大小写风格:表3-1 大小写书写规范3.2注释风格:注释总是加在程序的需要一个概括性说明或不易理解或易理解错的地方。
注释应语言简炼、易懂而又准确。
3.2.1源代码文件的注释(1)在文件的头部必须标明程序名称,它所完成的主要功能。
SQL编码规范(V1.00)文 档 信 息文档名称:SQL编码规范电子文档:版本号: 1.00密级:保密文档编号:编写人:马云日期:2007-03-27校对人:日期:审核人:日期:批准人:日期:更 改 记 录更改序号更改原因更改页码更改前版本号更改后版本号更改人生效日期备注目录1注释规范 61.1.一般性注释 61.2.函数文本注释 62.排版格式 72.1.缩进 72.2.换行 82.3.空格 102.4.大小写 102.5.对齐 103.命名规则 113.1.输入变量 113.2.输出变量 113.3.内部变量 113.4.游标命名 114.编码规范 114.1.不等于统一使用"<>" 114.2.使用表的别名 114.3.使用SELECT语句时,必须指出列名 124.4.使用INSERT语句时,必须指定插入的字段名。
124.5.减少子查询的使用 124.6.适当添加索引以提高查询效率 124.7.不要在WHERE字句中对索引列施以函数 124.8.不要使用数据库的类型自动转换功能,使用显式的类型转换 12 4.9.应使用变量绑定实现SQL语句共享,避免使用硬编码 124.10.用执行计划分析SQL性能 14附录A:Oracle SQL性能优化 14A.1选用适合的ORACLE优化器 14A.2访问TABLE的方式 15A.3共享SQL语句 15A.4选择最有效率的表名顺序(只在基于规则的优化器中有效) 17 A.5WHERE子句中的连接顺序 19A.6SELECT子句中避免使用 ‘ * ‘ 19A.7减少访问数据库的次数 19A.8使用DECODE函数来减少处理时间 21A.9整合简单,无关联的数据库访问 22A.10删除重复记录 23A.11用TRUNCATE替代DELETE全表记录 23A.12尽量多使用COMMIT 23A.13计算记录条数 24A.14用Where子句替换HAVING子句 24A.15减少对表的查询 24A.16通过内部函数提高SQL效率 26A.17使用表的别名(Alias) 27A.18用EXISTS替代IN 27A.19用NOT EXISTS替代NOT IN 28A.20用表连接替换EXISTS 29A.21用EXISTS替换DISTINCT 30A.22识别'低效执行'的SQL语句 31A.23使用TKPROF 工具来查询SQL性能状态 31A.24用EXPLAIN PLAN 分析SQL语句 32A.25用索引提高效率 34A.26索引的操作 34A.27基础表的选择 36A.28多个平等的索引 37A.29等式比较和范围比较 38A.30不明确的索引等级 39A.31强制索引失效 40A.32避免在索引列上使用计算 41A.33自动选择索引 42A.34避免在索引列上使用NOT 42A.35用>=替代> 44A.36用UNION替换OR (适用于索引列) 44A.37用IN来替换OR 48A.38避免在索引列上使用IS NULL和IS NOT NULL 49 A.39总是使用索引的第一个列 50A.40ORACLE内部操作 51A.41用UNION-ALL 替换UNION ( 如果有可能的话) 51 A.42使用提示(Hints) 53A.43用WHERE替代ORDER BY 54A.44避免改变索引列的类型 56A.45需要当心的WHERE子句 57A.46连接多个扫描 58A.47CBO下使用更具选择性的索引 60A.48避免使用耗费资源的操作 60A.49优化GROUP BY 61A.50使用日期 62A.51使用显式的游标(CURSORs) 62A.52优化EXPORT和IMPORT 62A.53分离表和索引 631注释规范.1. 一般性注释.1.1. 创建每一数据库对象时都要加上COMMENT ON注释,以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENT ON注释,以说明该列和/或列取值的含义。
SQL编码规范1.书写格式 ⽰例代码: 存储过程SQL⽂书写格式例 select c.dealerCode, round(sum(c.submitSubletAmountDLR + c.submitPartsAmountDLR + c.submitLaborAmountDLR) / count(*), 2) as avg, decode(null, 'x', 'xx', 'CNY') from ( select a.dealerCode, a.submitSubletAmountDLR, a.submitPartsAmountDLR, a.submitLaborAmountDLR from SRV_TWC_F a where (to_char(a.ORIGSUBMITTIME, 'yyyy/mm/dd') >= 'Date Range(start)' and to_char(a.ORIGSUBMITTIME, 'yyyy/mm/dd') <= 'Date Range(end)' and nvl(a.deleteflag, '0') <> '1') union all select b.dealerCode, b.submitSubletAmountDLR, b.submitPartsAmountDLR, b.submitLaborAmountDLR from SRV_TWCHistory_F b where (to_char(b.ORIGSUBMITTIME, 'yyyy/mm/dd') >= 'Date Range(start)' and to_char(b.ORIGSUBMITTIME,'yyyy/mm/dd') <= 'Date Range(end)' and nvl(b.deleteflag,'0') <> '1') ) c group by c.dealerCode order by avg desc; C#中⾥的SQL字符串书写格式例 strSQL = "insert into Snd_FinanceHistory_Tb " + "(DEALERCODE, " + "REQUESTSEQUECE, " + "HANDLETIME, " + "JOBFLAG, " + "FRAMENO, " + "INMONEY, " + "REMAINMONEY, " + "DELETEFLAG, " + "UPDATECOUNT, " + "CREUSER, " + "CREDATE, " + "HONORCHECKNO, " + "SEQ) " + "values ('" + draftInputDetail.dealerCode + "', " + "'" + draftInputDetail.requestsequece + "', " + "sysdate, " + "'07', " + "'" + frameNO + "', " + requestMoney + ", " + remainMoney + ", " + "'0', " + "0, " + "'" + draftStruct.employeeCode + "', " + "sysdate, " + "'" + draftInputDetail.honorCheckNo + "', " + index + ")"; 1).缩进 对于C#⾥的SQL字符串,不可有缩进,即每⼀⾏字符串不可以空格开头 2).换⾏ 1>.Select/From/Where/Order by/Group by等⼦句必须另其⼀⾏写 2>.Select⼦句内容如果只有⼀项,与Select同⾏写 3>.Select⼦句内容如果多于⼀项,每⼀项单独占⼀⾏,在对应Select的基础上向右缩进8个空格(C#⽆缩进) 4>.From⼦句内容如果只有⼀项,与From同⾏写 5>.From⼦句内容如果多于⼀项,每⼀项单独占⼀⾏,在对应From的基础上向右缩进8个空格(C#⽆缩进) 6>.Where⼦句的条件如果有多项,每⼀个条件占⼀⾏,以AND开头,且⽆缩进 7>.(Update)Set⼦句内容每⼀项单独占⼀⾏,⽆缩进 8>.Insert⼦句内容每个表字段单独占⼀⾏,⽆缩进;values每⼀项单独占⼀⾏,⽆缩进 9>.SQL⽂中间不允许出现空⾏ 10>.C#⾥单引号必须跟所属的SQL⼦句处在同⼀⾏,连接符("+")必须在⾏⾸ 3).空格 1>.SQL内算数运算符、逻辑运算符连接的两个元素之间必须⽤空格分隔 2>.逗号之后必须接⼀个空格 3>.关键字、保留字和左括号之间必须有⼀个空格 2.不等于统⼀使⽤"<>"。
MS SQL脚本编码规范福州星网视易信息系统有限公司更新记录:目录Transact-SQL编程规范 (1)一、概述 (1)1.基本原则 (1)2.基本规范 (1)二、对象命名 (1)1. 数据库 (1)2. 数据库文件 (1)3. 数据表 (2)4. 数据视图 (2)5. 数据列 (2)6. 存储过程 (2)7. 函数 (3)8. 用户定义数据类型 (3)9. 主键、索引 (3)三、参数命名 (3)1.数据列参数 (3)2. 非数据列参数 (4)3. 常用字段命名 (4)四、SQL编写 (4)1. 大小写 (4)2. 存储格式 (4)3. 类型选择 (4)4. 默认值 (5)5. 字段长度 (5)6.使用“'” (5)7.语句缩进 (5)8.语句换行 (5)9.语句分割 (5)10.使用“*” (5)11.表名别名 (5)12.类型转换 (5)13.数值比较 (6)14.排序 (6)15.Unicode字符串 (6)16.BEGIN...END 块 (6)17.TOP子句 (6)18.TRANSACTION编写 (6)19.存储过程 (7)五、代码注释 (7)1.代码头部注释 (7)2.TRANSACTION注释 (7)Transact-SQL编程规范一、概述本规范主要规定SQL脚本在书写过程中所应遵循的规则及注意事项。
编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。
这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。
1.基本原则以大小写敏感编写SQL语句。
尽量使用Unicode 数据类型。
优先使用连接代替子查询或嵌套查询。
尽量使用参数化SQL查询代替语句拼接SQL查询。
尽量使用存储过程代替SQL语句。
禁止使用[拼音]+[英语]的方式来命名SQL对象或变量。
禁止使用触发器。
禁止在表间创建外键关系。
禁止创建自增长主键列2.基本规范采用Pascal样式命名数据库对象。
SQL代码编写指导规范项目:规范文号:COD-STA-03版本:V1.1编写者:许飞云时间:2005-11-4SQL代码编写指导规范时间版本作者/修改人变更原因2005-11-4 V1.0 许飞云初版发布2007-3-5 V1.1 刘莉添加5.4 约定规则目录1 简介 (2)1.1 目标 (2)1.2 范围 (2)1.3 基本依据 (2)1.4 使用约定 (2)1.4.1 规则 (2)1.4.2 建议 (2)1.5 术语和缩略语 (2)1.6 参考 (3)2 通用规则 (3)3 配置约定 (3)4 格式约定 (3)5 命名约定 (4)5.1 一般规则 (4)5.2 命名规则 (4)5.3 常用规则 (5)5.4 约定规则 (6)5.4.1 表名采用前缀+表名的方式,前缀定义如下: (6)6 注释 (7)6.1 SQL代码注释 (7)6.2 对象注释 (7)7 嵌入式代码 (8)1 简介开发小组在进行SQL 编程时常常会忽略所谓的编码标准,但这些标准却是开发小组顺利开展工作的关键工具。
这里介绍的编码标准是经整理出来的开发成果。
它们当然还没有得到普遍接受,而且不可否认,有些标准带有主观色彩。
整理出此规范实际上更多的是为了提高大家的意识,而不是吹捧每个人是SQL 编写方面的仲裁者:最重要的是要建立某些合理的编码标准并遵循这些标准。
您在这篇文章中会发现有关SQL 编程的一系列不同的编码标准、技巧和提示。
它们并未以任何特定的优先级或重要性顺序列出。
1.1 目标本主题提供SQL编程语言的命名指南。
希望能对下述情况有积极的作用:➢避免Errors/Bugs ,特别是难以查询的Errors/Bugs➢规范不良的编码习惯➢提高程序的可读性、可维护性和可移值性1.2 范围规范只针对SQL Server数据库中的SQL编程语言。
1.3 基本依据本文档主要依据一位具有超过25 年经验的数据库管理员和应用程序开发员Brian Walker 提出的开发成果。
密级:内部公开文档编号:NTT_SD_SSBMGF版本号:V1.0SQL Server编码规范惠州市新中新电子技术开发有限公司--------------------------------------------------------------------- 惠州市新中新电子技术开发有限公司对本文件资料享受著作权及其它专属权利,未经书面许可,不得将该等文件资料(其全部或任何部分)披露予任何第三方,或进行修改后使用。
文件更改摘要:目录1前言 (1)1.1目的 (1)1.2术语 (1)1.3参考文献 (1)2逻辑对象的命名规范 (1)2.1数据库命名 (1)2.2数据库文件及目录 (1)2.3表 (1)2.4字段/域 (2)2.5索引 (2)2.6视图 (3)2.7存储过程 (3)2.8触发器 (3)2.9函数 (3)3可编程性编码规范 (3)3.1可编程性统一规范 (3)3.1.1外部参数 (3)3.1.2内部参数 (4)3.1.3代码编写格式规范 (4)3.2存储过程 (5)3.2.1存储过程格式: (5)3.2.2存储过程标头备注 (5)3.2.3返回值 (6)3.3函数 (6)3.3.1函数格式 (6)3.3.2函数标头备注 (6)3.4触发器 (7)3.4.1触发器格式 (7)3.4.2触发器标头备注 (7)4数据库编程技巧 (8)S_CD020_SQL Server编码规范V2.11前言1.1目的为了统一公司软件开发的设计过程中关于数据库SQL SEREVR设计时的命名规范和具体工作时的编程规范,便于交流和维护,特此收集、整理公司已经积累的技术资料、参考国家规范和标准、修订和编制了本编程规范。
1.2术语暂无。
1.3参考文献版本说明和修改历史2逻辑对象的命名规范2.1数据库命名数据库的命名要求使用与数据库意义相关联的拼音首字母且以“XY”打头,例如:客户资料数据库的命名可以是XYKhzl。
SQL编码规范(V1.00)目录1注释规范 (5)1.1.一般性注释 (5)1.2.函数文本注释 (5)2.排版格式 (6)2.1.缩进 (6)2.2.换行 (7)2.3.空格 (9)2.4.大小写 (9)2.5.对齐 (9)3.变量命名规则 (9)3.1.输入变量 (9)3.2.输出变量 (10)3.3.内部变量 (10)3.4.游标命名 (10)4.BC命名规范 (10)4.1.查询类BC (10)4.2.删除类BC (10)4.3.修改类BC (11)4.4.插入类BC (11)4.5.多表联合查询类BC (12)5.编码规范 (12)5.1.不等于统一使用"<>" (12)5.2.使用表的别名 (12)5.3.使用SELECT语句时,必须指出列名 (13)5.4.使用INSERT语句时,必须指定插入的字段名。
(13)5.5.减少子查询的使用 (13)5.6.适当添加索引以提高查询效率 (13)5.7.不要在WHERE字句中对索引列施以函数 (13)5.8.不要使用数据库的类型自动转换功能,使用显式的类型转换 (13)5.9.应使用变量绑定实现SQL语句共享,避免使用硬编码 (13)5.10.用执行计划分析SQL性能 (15)附录A:Oracle SQL性能优化 (15)A.1选用适合的ORACLE优化器 (15)A.2访问TABLE的方式 (16)A.3共享SQL语句 (16)A.4选择最有效率的表名顺序(只在基于规则的优化器中有效) (18)A.5WHERE子句中的连接顺序 (19)A.6SELECT子句中避免使用‘ * ‘ (20)A.7减少访问数据库的次数 (20)A.8使用DECODE函数来减少处理时间 (22)A.9整合简单,无关联的数据库访问 (22)A.10删除重复记录 (23)A.11用TRUNCATE替代DELETE全表记录 (24)A.12尽量多使用COMMIT (24)A.13计算记录条数 (24)A.14用Where子句替换HAVING子句 (24)A.15减少对表的查询 (25)A.16通过内部函数提高SQL效率 (26)A.17使用表的别名(Alias) (28)A.18用EXISTS替代IN (28)A.19用NOT EXISTS替代NOT IN (29)A.20用表连接替换EXISTS (30)A.21用EXISTS替换DISTINCT (30)A.22识别'低效执行'的SQL语句 (31)A.23使用TKPROF 工具来查询SQL性能状态 (32)A.24用EXPLAIN PLAN 分析SQL语句 (32)A.25用索引提高效率 (34)A.26索引的操作 (35)A.27基础表的选择 (37)A.28多个平等的索引 (37)A.29等式比较和范围比较 (38)A.30不明确的索引等级 (39)A.31强制索引失效 (40)A.32避免在索引列上使用计算 (41)A.33自动选择索引 (42)A.34避免在索引列上使用NOT (42)A.35用>=替代> (44)A.36用UNION替换OR (适用于索引列) (44)A.37用IN来替换OR (48)A.38避免在索引列上使用IS NULL和IS NOT NULL (49)A.39总是使用索引的第一个列 (50)A.40ORACLE内部操作 (51)A.41用UNION-ALL 替换UNION ( 如果有可能的话) (51)A.42使用提示(Hints) (53)A.43用WHERE替代ORDER BY (54)A.44避免改变索引列的类型 (55)A.45需要当心的WHERE子句 (56)A.46连接多个扫描 (58)A.47CBO下使用更具选择性的索引 (59)A.48避免使用耗费资源的操作 (60)A.49优化GROUP BY (61)A.50使用日期 (61)A.51使用显式的游标(CURSORs) (62)A.52优化EXPORT和IMPORT (62)A.53分离表和索引 (63)1注释规范1.1. 一般性注释1.1.1.创建每一数据库对象时都要加上COMMENT ON注释,以说明该对象的功能和用途;建表时,对某些数据列也要加上COMMENT ON注释,以说明该列和/或列取值的含义。
C#编程规范Version 1.0目录第一章概述 (5)规范制定原则 (5)术语定义 (5)Pascal 大小写 (5)Camel 大小写 (5)文件命名组织 (5)1.3.1文件命名 (5)1.3.2文件注释 (5)第二章代码外观 (7)2.1 列宽 (7)2.2 换行 (7)2.3 缩进 (7)2.4 空行 (7)2.5 空格 (7)2.6 括号-() (8)2.7 花括号-{} (8)第三章程序注释 (10)3.4 注释概述 (10)3.2 文档型注释 (10)3.3 类C注释 (11)3.4 单行注释 (11)3.5 注释标签 (11)第四章申明 (15)4.1每行声明数 (15)4.2初始化 (15)4.3位置 (15)4.4类和接口的声明 (16)4.5字段的声明 (16)第五章命名规范 (17)5.1命名概述 (17)5.2大小写规则 (17)5.3缩写 (18)5.4命名空间 (18)5.5类 (19)5.6接口 (19)5.7属性(A TTRIBUTE) (20)5.8枚举(E NUM) (20)5.9参数 (20)5.10方法 (21)5.11属性(PROPERTY) (21)5.12事件 (22)5.13常量(CONST) (23)5.14字段 (23)5.15静态字段 (24)5.16集合 (25)5.17措词 (25)第六章语句 (26)6.1每行一个语句 (26)6.2 复合语句 (26)6.3 RETURN 语句 (26)6.4IF、 IF-ELSE、IF ELSE-IF 语句 (26)6.4 FOR、FOREACH 语句 (27)6.5 WHILE 语句 (27)6.7.DO - WHILE 语句 (28)6.8.SWITCH - CASE 语句 (28)6.9. TRY - CATCH 语句 (28)6.10. USING 块语句 (29)6.11. GOTO 语句 (29)第七章控件命名规则 (30)7.1 命名方法 (30)7.2 主要控件名简写对照表 (30)7.3特殊控件命名 (31)7.4控件命名前缀缩写对照表 (31)第八章验证 (32)8.1 验证方法 (32)8.2 验证提示 (32)第九章数据库设计规范 (32)9.1 数据库设计命名规则 (32)9.2 数据类型规范 (33)9.3存储过程 (34)9.4触发器 (34)9.5视图 (34)9.6索引 (34)9.7表及外键 (34)9.8SQL语句规范 (34)9.9函数规范 (35)9.10建库规范 (35)第十章其他 (35)10.1 表达式 (35)10.2 类型转换 (35)附录一:匈牙利命名法 (36)第一章概述规范制定原则1 方便代码的交流和维护。
版本历史目录1目的 (4)2范围 (4)3规范内容 (4)3.1概述PL/SQL语言的特点 (4)3.2整体风格 (4)3.3过程和函数编写风格 (5)3.4包的编写风格 (6)3.5触发器的编写风格 (7)3.6标识符命名规范 (8)3.7注释要求 (10)3.8标识符声明 (11)PL/SQL编码规范1目的为了保证所每个项目组编写出的程序都符合相同的规范,便于理解和维护,便于检查、减少出错概率,有助于成员间交流,保证一致性、统一性而建立的PL/SQL程序编码规范。
2范围该规范适用于所有使用Oracle数据库基于PL/SQL开发的项目。
3规范内容3.1概述PL/SQL语言的特点PL/SQL 是一种高级数据库程序设计语言,它是专门用于在各种环境下对Oracle数据库进行访问。
由于该语言集成于数据库服务其中,所以PL/SQL代码可以对数据进行快速高效的处理。
SQL是先进的第四代程序设计语言,使用这种语言只需对要完成的任务进行描述,而不必指定实现任务的具体方法。
PL/SQL代表面向过程化的语言与SQL语言的结合,是在SQL语言中扩充了面向过程语言中使用的程序结构,如:●变量和类型(即可以预定义也可以由用户定义)●控制语句(如IF-THEN - ELSE)和循环●过程和函数●对象类型和方法PL/SQL语言实现了将过程结构与Oracle SQL的无缝集成,从而为用户提供了一种功能强大的结构化程序设计语言。
3.2 整体风格缩进缩进建议以四个空格为单位。
例子:Declarev_loopCounter integer := 1;beginLoop…end loop;end;空格原则上变量、常量数据和函数在其类型,修饰名称之间适当空格并据情况对齐。
对齐原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。
另每一行的长度不应超过屏幕太多,必要时适当换行,换行时尽可能在","处或运算符处。
保密级别:□绝密□机密□秘密■内部公开SQL编码规范天海欧康科技信息(厦门)有限公司变更记录目录1 编写目的 (1)2 SQL书写规范 (1)3 SQL编写原则 (1)1编写目的编写本文档的目的是保证在开发过程中产出高效、格式统一、易阅读、易维护的SQL代码。
2SQL书写规范SQL语句在程序中一般以字符串的形式出现,现对程序中的SQL书写做以下约定。
1)代码中出现的SQL语句包括(字段名,表名,SQL关键字、保留字)均应采用大写形式;2)避免在代码中,使用循环语句多次执行数据库查询;3)用于查询/更新/删除的SQL,WHERE条件固定的,必须使用预编译方式;4)对SQL语句加上适当的注释,特别是对语句上出现的枚举值要标明其含义;5)合理使用空格和缩进,保证SQL语句结构清晰;●在SQL内置运算符前后加上空格;●在SQL关键字、保留字前后都要有空格;●拼接SQL时,新一行加上空格;6)SQL语句较长时,应把SQL语句放在一个方法内;●在每一个子句及逻辑判断占一行;●对子查询使用缩进,一般为4个字符;●SQL语句应该保持在80行以内;7)代码中严禁使用SELECT * 代替具体的字段名。
在做插入SQL时,必须列出要插入表的字段名。
不允许出现类似如下SQL:8)中有特殊业务含义的值的引用,要加上注释说明如:3SQL编写原则1)多表查询,要使用别名;2)多表关联效率优化●大数量的表和数据量非常小的表不宜直接做关联,可以考虑通过程序或子查询的方式先处理小表,根据获取的数据,再检索大表。
第 1 页共3页●WHERE 条件顺序SQL解析器采用自下而上的顺序解析WHERE子句,建议将表之间的连接放在其他条件之前,将可以过滤掉最大数量记录的条件放在WHERE 子句的末尾。
●FROM子句顺序(选择基础表):SQL解析器采用自右而左的顺序解析FROM子句的表名,在FROM最后的表为基础表(DRIVING TABLE),选择基础表有如下几种情况:➢如果存在交叉表,则用交叉表作为基础表。
SQL SERVER数据库命名编码规范版本记录:1、编写目的使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读、理解和继承。
2、适用范围本规范适用于公司范围内所有以SQL SERVER 2000作为后台数据库的应用系统和项目开发工作。
3、对象命名规范3.1数据库名数据库名定义为系统名+_+模块名,如“yd_df”表示用电系统的电费处理模块数据库。
数据库名全部采用小写。
3.2数据库文件数据文件命名采用数据库名+_+文件类型+[文件序号]+文件后缀,[文件序号]为1、2、3…9等数值,当数据库中某一文件类型的文件有多个时加上文件序号以区别。
只有一个时可不加。
文件后缀:主数据文件为.mdf,其它数据文件为.ndf,日志文件为.ldf文件名全部采用小写。
比如系统名为“yd_df”,则数据库数据文件命名为“yd_df_data.mdf”,日志文件命名为“yd_df_log.ldf”。
3.3表表命名要遵循以下原则:Ø采用“系统名+t_+模块名+_+表义名”格式构成Ø若数据库中只含有单个模块,命名可采用“系统名+t_+表义名”格式构成Ø整个表名的长度不要超过30个字符Ø系统名、模块名均采用小写字符Ø模块名或表义名均以其汉语拼音的首字符命名,但常用词也可使用英文单词命名(如 UserType、UserInfo等),表义名中汉语拼音均采用小写,且字符间不加分割符;单词命名的表表义名中单词的首字符大写,其它字符小写,多个单词间也不加任何分割符,单词全部采用单数形式Ø表别名命名规则:取表义名的前3个字符加最后一个字符。
如果存在冲突,适当增加字符(如取表义名的前4个字符加最后一个字符等)Ø表的命名如dft_gy_cbap:系统名(电费 df)+t_+模块名(高压 gy)+_+表义名(抄表安排 cbap)dft_cbbj: 系统名(电费 df)+t_+表义名(抄表标记 cbbj)Ø关联表命名为Re_表A_表B,Re是Relative的缩写,表A和表B均采用其表义名或缩写形式。