SQL编程规约.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL编程规约

目录 第1章 修改履历 1 第2章 SQL书写规范 2 2.1 大小写规范 2 2.2 SELECT规范 2 2.3 INSERT规范 2 2.4 连接符规范 2 2.5 注释规范 2 2.6 缩进规范 3 第3章 书写优化性能建议 4 3.1 避免嵌套连接 4 3.2 WHERE语句过滤原则 4 3.3 IN、OR子句 4 3.4 排序操作 4 3.5 索引的使用 4 第4章 其他经验性规则 5 第1章 修改履历 编号 版本 修改说明 担当者 修改时间 1. 1.0 初版作成 葛亮 2010-9 第2章 SQL书写规范 2.1 大小写规范 1. 语句中出现的所有系统保留字、内置函数名、SQL保留字大写。 2. 语句中出现的所有表名、字段名与DB设计书保持一致性。 2.2 SELECT规范 1. 查找数据库表或视图时,严禁使用 * 来代替所有列名,如: SELECT * FROM table_name 应明确指定查询列,如: SELECT column_1, column_2, ... FROM table_name 2. 查询结果集合中严禁使用索引取列值,如: dTable.Rows[i][0].ToString() 应使用列名代替,如: dTable.Rows[i][“column_1”].ToString() 2.3 INSERT规范 语句中严禁省略列名,如: INSERT INTO table_name VALUES (value1, value2,...) 应明确指定插入列名,如: INSERT INTO table_name (column_1, column_2, ...) VALUES (value1, value2,...) 2.4 连接符规范 1. 连接符OR 、 IN 、 AND 、以及 = 、 = 、 = 等前后加上一个空格。 2. 多表连接时,使用表的别名来引用列。 2.5 注释规范 对较为复杂的SQL语句加上注释,说明算法、功能。 注释风格:注释单独成行、放在语句前面。 1. 应对不易理解的分支条件表达式加注释; 2. 对重要的计算应说明其功能; 3. 过长的函数实现,应将其语句按实现的功能分段加以概括性说明; 4. 每条SQL语句均应有注释说明(表名、字段名); 5. 常量及变量注释时,应注释被保存值的含义(必须),合法取值的范围(可选) 6. 可采用单行/多行注释。(-- 或 /* */ 方式) 2.6 缩进规范 1. 一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进; 2. WHERE子句书写时,每个条件占一行,语句令起一行时,以保留字或者连接符开始,连接符右对齐。 第3章 书写优化性能建议 3.1 避免嵌套连接 避免嵌套连接,如:A = B AND B = C AND C = D 3.2 WHERE语句过滤原则 查询的WHERE过滤原则,应使过滤记录数最多的条件放在最前面。 3.3 IN、OR子句 IN、OR子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的子句中应该包含索引。 3.4 排序操作 大量的排序操作影响系统性能,所以尽量减少ORDER BY和GRUOP BY排序操作。如必须使用排序操作,请遵循如下规则: 1. 排序尽量建立在有索引的列上。 2. 如结果集不需唯一,使用UNION ALL代替UNION。 3.5 索引的使用 1. 尽量避免对索引列进行计算。如对索引列计算较多,请建立函数索引。 2. 尽量注意比较值与索引列数据类型的一致性。 3. 对于复合索引,SQL语句必须使用主索引列。 4. 索引中,尽量避免使用NULL。 5. 对于索引的比较,尽量避免使用NOT (!=) 6. 查询列和排序列与索引列次序保持一致 第4章 其他经验性规则 1. 尽量少用嵌套查询。如必须,请用NOT EXIST代替NOT IN子句。 2. 用多表连接代替EXISTS子句。 3. 少用DISTINCT,用EXISTS代替。 4. 使用UNION ALL、MINUS、INTERSECT提高性能。 5. 使用ROWID提高检索速度。对SELECT得到的单行记录,需进行DELETE、UPDATE操作时,使用ROWID将会使效率大大提高。 6. 使用CURSOR时,显示光标优于隐式光标。

文档评论(0)

st4739288 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档