您所在的位置:读书频道 > 设计开发 > 数据库开发 > 6.2.1 避免使用多余的括号

6.2.1 避免使用多余的括号

2008-08-31 10:23 [美]Joe Celko 人民邮电出版社 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

《SQL编程风格》针对数据库的设计与编程提出了一系列规则和建议,内容涵盖命名规范、代码版式、键的设计、数据编码方案、编码风格、视图和存储过程的使用以及SQL中的思考方式和一些试探法等多方面。第6章讲述的是编码选择。本节说的是避免使用多余的括号。

AD:

6.2 选择紧凑格式,不要选择松散格式

“除非绝对需要,否则不要认为应该存在更多的东西。”
——William Occam (c. 1280—1349)

“每件事情都应该尽可能简单,而不仅仅是简化。”
——一般认为出自阿尔伯特•爱因斯坦

对于任何编程语言来说,以短小、简洁和紧凑的形式编写代码是一种良好的软件工程。明确地只完成一个功能的模块更容易修改和理解。模块较少的系统更容易维护。

SQL可以使用几条语句代替数百行的过程化代码。应该尽量想出短小、简洁的解决方案,而不是权宜之计。但是,老的习惯很难戒除。很多新手从他们的第一种语言中了解了布尔逻辑和简单的AND-OR-NOT表达式,他们仍旧在以这种逻辑测试的方式思考问题。

6.2.1 避免使用多余的括号

新手们认为产生的SQL代码中有多余级别的括号可以安全地执行,并认为这就是编写代码的正确方式。考虑下面这个简单的示例:

SELECT a, b, c
FROM Foobar
WHERE (a = b)
AND (c < 42);

读起来不错,但是当有5个以上的谓词和无用的嵌套括号时,代码就很难阅读了,而且很难定位丢失的括号。还是让LISP程序员使用这些括号吧,他们需要这些括号。

适度地使用括号可以使嵌套谓词更容易阅读。

SELECT application_nbr
FROM LoanApplications
WHERE years_employed > 5
OR (net_worth > loan_amt
AND monthly_expenses < 0.25 * loan_amt)
OR (collateral > 2.00 * loan_amt AND age > 25)
OR (collateral > loan_amt AND age > 30)
OR (years_employed > 2
AND net_worth > 2.00 * loan_amt
AND age > 21
AND monthly_expenses < 0.50 * loan_amt);

与下面的代码对比:

SELECT application_nbr
FROM LoanApplications
WHERE years_employed > 5 OR net_worth > loan_amt
AND monthly_expenses < 0.25 * loan_amt
OR collateral > 2.00 * loan_amt AND age > 25
OR collateral > loan_amt AND age > 30
OR years_employed > 2 AND net_worth > 2.00 * loan_amt
AND Age > 21 AND monthly_expenses < 0.50 * loan_amt;

在下一节中,我们将会看到如何使用CASE表达式处理类似这样的情况。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节

分享到:

网友评论TOP5

查看所有评论(

提交评论

栏目热门

更多>>

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点专题

更多>>

读书

SOA概念、技术与设计
在本书中,Thomas ERL呈现了第一部端对端的教程,提供了从基层开始的面向服务的建模与设计的逐步指导。通过逐步的、清晰生动的、

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 移动互联网生活门户 灵客风LinkPhone