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