SQL Server编码规范.doc_第1页
SQL Server编码规范.doc_第2页
SQL Server编码规范.doc_第3页
SQL Server编码规范.doc_第4页
SQL Server编码规范.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

密级 内部公开密级 内部公开 文档编号 文档编号 NTT SD SSBMGFNTT SD SSBMGF 版本号 版本号 V1 0V1 0 SQLSQL ServerServer编码规范编码规范 惠州市新中新电子技术开发有限公司惠州市新中新电子技术开发有限公司 编制 生效日期 审核 批准 惠州市新中新电子技术开发有限公司对本文件资料享受著作权及其它专属权 利 未经书面许可 不得将该等文件资料 其全部或任何部分 披露予任何 第三方 或进行修改后使用 SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 1 页 共 12 页 文文件件更更改改摘摘要要 日期日期版本号版本号修订说明修订说明修订人修订人审核人审核人批准人批准人 2008 06 28V0 1创建 2008 08 22V1 0正式版本 SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 2 页 共 12 页 目录目录 1 1前言前言 1 1 1目的 1 1 2术语 1 1 3参考文献 1 2 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 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 4数据库编程技巧数据库编程技巧 8 S CD020 SQL Server 编码规范 V2 1 1 1前言前言 1 11 1目的目的 为了统一公司软件开发的设计过程中关于数据库 SQL SEREVR 设计时的命名规范和具体 工作时的编程规范 便于交流和维护 特此收集 整理公司已经积累的技术资料 参考国 家规范和标准 修订和编制了本编程规范 1 21 2术语术语 暂无 1 31 3参考文献参考文献 版本说明和修改历史 2 2逻辑对象的命名规范逻辑对象的命名规范 2 12 1数据库命名数据库命名 数据库的命名要求使用与数据库意义相关联的拼音首字母且以 XY 打头 例如 客 户资料数据库的命名可以是 XYKhzl 2 22 2数据库文件及目录数据库文件及目录 数据库文件存放路径 d xydata 数据库主数据文件命名 DBName Data XX mdf 文件组名称 PRIMARY 数据库事务日志文件命名 DBName log XX ldf 数据库文件组命名 主文件组 PRIMARY 次文件组 DBName FileGroup XX 其中 DBName 为数据库实际名称 XX 为从 00 开始的数字编号 2 32 3表表 SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 5 页 共 12 页 表的命名以业务品种为第一前缀 加下划线 业务模块为第二个前缀 其后紧接与表 意义相关联的汉语拼音首字母 加下划线 存储性质为后缀 业务品种说明存储性质说明后缀说明 SA 深圳 A 股 JY 交易 LS 历史表类 SB 深圳 B 股 RL 认领 NULL 无头帐 HA 上海 A 股 JK 接口类 清算数据源 NOTNULL 无头帐已 认领 HB 上海 B 股 XT 系统类 系统维护使用 ST 特别转让 系统 CW 财务系统接口 ZJ 资金清算 YH 银行系统接口 QS 清算结果类 预处理结果用 于股份清算 ZJ 资金清算类 预处理结果用 于资金清算 除系统管理库中表的命名可不用业务品种为第一前缀外 其他库中必须使用第一前缀必须使用第一前缀 第二前缀业务模块和后缀存储性质可根据需要使用 如存储性质是业务处理的 可使用业 务模块前缀区分业务模块 示例 HB JK BC1 ST RL GFYE 关联表的关联域使用相同的命名方法 使各表之间关联关系显而易见 2 42 4字段字段 域域 字段的命名必须字段意义相关联的汉语拼音首字母 例如 ZQDM 证券代码 交易所接口表字段与 DBF 表一致 采用字段字典 统一公用字段的定义 见附表 1 数值型字段定义 长度以 numeric 19 3 为限 varchar 型用于非关键字段 如 地址 营业部全程等备注型字段 2 52 5索引索引 针对数据库表中一个或多个字段建立的索引的命名规范可以如以下格式所定 IDX TableName ColumnName1 ColumnName2 上面格式中 IDX 是必需具备的 表示该对象为索引 TableName 是数据库表的名称或名称简写 ColumnName1 是数据库表中 第一个 索引字段的名称或名称简写 ColumnName2 是数据库表中 第二个 索引字段的名称或名称简写 其他 有几个字段 就可以进行几个字段的名称或名称简写的追加 下划线 可以考虑保留或删除 索引名的总长必需符合数据库的规定 SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 5 页 共 12 页 2 62 6视图视图 视图的命名必须以 VW View 缩写 开头 加下划线 紧接与视图用途相关联的汉 语拼音首字母 例如 VW gfcx 2 72 7 存储过程存储过程 存储过程的命名必须符合 P 调用分类 功能分类 详细名称格式 其中 P 表示是存储过 程 详细名称是与存储过程意义相关联的汉语拼音首字母 按调用者分类 总部 ZB 营业部 YB 公用类 GY 内部用 NB 按功能分类 查询类 CX 数据维护类 WH 业务处理类 YW 例 P ZB YW GFQS 存储过程的详细规范参见 SQL Server 存储过程编写规范 2 82 8触发器触发器 触发器的命名以 Tr 开头 其他参考存储过程命名 2 92 9函数函数 函数的命名以 Fun 开头 其他参考存储过程命名 3 3可编程性编码规范可编程性编码规范 3 13 1可编程性统一规范可编程性统一规范 3 1 13 1 1 外部参数外部参数 变量取名请遵守命名规范 对使用频繁 关键变量 为了便于阅读和修改 请在定义时加 上注释标明其含义 为了便于阅读和调试 尽量少用单字母变量 禁止使用诸如 i l 等作 为变量名 同时注意小写字母 l 和数字 1 之间的区别使用 SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 5 页 共 12 页 参数命名约定 a 变量类型 名称 变量类型和名称用小写 变量类型前缀 Integer ai Smallinteger asi Tinyint ati Varchar avc Char ac Numeric an Datetime adt Smalldatetime asdt 3 1 23 1 2 内部参数内部参数 内部变量命名约定 变量类型 名称 变量类型和名称用小写 变量类型前缀 Integer i Smallinteger si Tinyint ti Varchar vc Char c Numeric n Datetime dt Smalldatetime sdt 3 1 33 1 3 代码编写格式规范代码编写格式规范 1 一般设置 TAB 4 并将 TAB 自动转换为空格 2 每行最大限度为 80 个字符 3 单行注释采用 多行注释采用 注释内容 的形式 4 多个 Begin End 语句嵌套时采用如下方式 BEGIN 1 BEGIN 1 1 BEGIN 1 1 1 END 1 1 1 BEGIN 1 1 2 END 1 1 2 END 1 1 END 1 其中 1 表示第一级嵌套 1 1 表示第二级嵌套 1 1 1 表示第三级嵌套 1 1 2 表示第三级的 SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 5 页 共 12 页 第二个嵌套 一般不要超过三级嵌套 3 23 2存储过程存储过程 3 2 1存储过程格式 use go if exist drop PROCEDURE go set set CREATE PROCEDURE parameter name datatype OUTPUT parameter name datatype OUTPUT AS Begin SQL statements End Go Set Set 3 2 2 存储过程标头备注 过程前应有文字说明 说明本过程是做什么的 调用者是谁 返回值的含义 参数的 含义 输入数据库 输出数据库 每一步操作前有文字说明 说明该操作达到的目的 格式为 概要说明 中文名称 用 途 数 据 库 语法信息 输入参数 输出参数 调用举例 外部联系 上级调用 下级调用 输 入 表 输 出 表 功能修订 SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 5 页 共 12 页 简要说明 修订记录 修改内容简要说明 续简要说明 修改内容简要说明 续简要说明 3 2 33 2 3 返回值返回值 1 使用输出参数返回过程执行的相关信息 2 过程结束前应调用 return 返回代码 作为存储过程的执行状态 3 33 3函数函数 3 3 13 3 1 函数格式函数格式 use go if exist drop FUNCTION go create function dbo Function Name returns as begin end 3 3 23 3 2 函数标头备注函数标头备注 函数前应有文字说明 说明本函数是做什么的 调用者是谁 返回值的含义 参数的 含义 输入数据库 输出数据库 每一步操作前有文字说明 说明该操作达到的目的 格式为 概要说明 中文名称 用 途 数 据 库 语法信息 输入参数 输出参数 SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 5 页 共 12 页 调用举例 外部联系 上级调用 下级调用 输 入 输 出 功能修订 简要说明 修订记录 修改内容简要说明 续简要说明 修改内容简要说明 续简要说明 3 43 4触发器触发器 3 4 13 4 1 触发器格式触发器格式 IF EXISTS SELECT name FROM sysobjects WHERE name N AND type TR DROP TRIGGER GO CREATE TRIGGER ON INSTEAD OF INSERT AS BEGIN RAISERROR 50009 16 10 END GO 3 4 23 4 2 触发器触发器标头备注标头备注 触发器前应有文字说明 说明本触发器是做什么的 作用表是哪些 触发器类型等 每一 步操作前应有文字说明 说明该操作达到的目的 格式为 触发器名称 SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 5 页 共 12 页 用途 作者 时间 数据库 作用表名 触发器类型 版本说明 修订说明宜采用如下格式 修改内容简要说明 续简要说明 修改内容简要说明 续简要说明 4 4数据库编程技巧数据库编程技巧 子查询与联结查询之比较 子查询与联结查询一般能互相替换 只不过子查询的效率较低 但是可读性比较好 而联接查询效率较高 可读性差 但有一种情况不能使用联接查询 即比较之间涉及到聚 合函数 如使用 avg sum 等函数时 只能使用子查询 例 select titles title titles price from titles JOIN sales ON sales title id titles title id where sales qty select avg qty from sales 大数据表联结查询技巧 大数据表间的联结查询通过一个 SQL 查询完成的效率较低 且联结条件和查询条件 多间可读性比较差 可由一个或两个大数据表按最大过滤条件生成一个临时表 然 后由此临时表联结生成 示具体情况甚至可一层层往下过滤 联结 过滤 联结 最终生 成所须的结果集 聚类索引和非聚类索引之比较 返回范围内的数据 返回如姓名范围或日期范围的订货量 一般使用聚类索引 因为聚类索引已经包含了 经过分类排序的数据 聚类索引只需找到要检索的所有数据中的开头和结尾数据 列中有一个或极少的不同值 一般不使用任何索引 例 select from FewUniques WITH Index 0 where Status Inactive SQL Server 编码规范 V1 0 XXXX 公司 版权所有 第 5 页 共 12 页 Status I O from table scan access comment was Added Scan count 1 logical reads 45 physical reads 0 select from FewUniques WITH Index inFewUniquesStatus where Status Inactive Status I O from table scan access comment was Added Scan count 1 logical reads 5018 physical reads 0 小数目的不同值 一般采用聚类索引 select from FewUniques WITH Index 0 where Status Inactive Status I O from table scan access comment was Added Scan count 1 log

温馨提示

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

评论

0/150

提交评论