SQL应该避免查询方式

1、SQL在反义运算符中避免使用!

"!=": 不等于

"!>":不大于

"!<":不小于 

"="、">"、"<"可以直接加上!进行运算,虽然这样方便了开发人员的使用,很可惜只有MSSQL和DB2这两种关系数据库提供了支持。SQL提供了通用表示不等于、不小于、不大于的运算符"<>"、">="、"<="。在任何数据库系统中都可以使用。为了保证数据库的移植性和兼容性最好使用SQL提供的通用的运算法。

出了SQL通用的预算法之外,还可以用NOT 配合运算式来使用,例如:

SELECT * FROM Student WHERE Age>=20
SELECT * FROM Student WHERE NOT(Age<20)

两条语句的执行结果是一样的。

2、避免使用多个OR,使用IN语句

SLECT * FROM Student WHERE Age=21

OR Age=22 OR Age=33 OR Age=35

OR Age=40 OR Age=45

这样不仅写起来特别麻烦,而且维护起来也很麻烦,稍微不注意就丢掉一个值

SQL提供了IN关键字,上面的查询语句可以这样写

SELECT * FROM Student WHERE  Age IN (21,22,33,35,40,45)

两个查询语句的结果是相同的但是第二个更容易维护。 

3、闭区间范围查询使用BETWEEM AND 

SELECT * FROM Student WHERE Age>18 AND Age Age<60

SELECT * FROM Student WHERE Age BETWEEN 18 AND 60

数据库对BETWEEN AND 进行了查询优化所以在范围值检测时,BETWEEN应该优先考虑。 

另外BEWEEN AND 只能用于闭区间查找,如果要进行开区间或者半开区间的检测那就变通一下或者使用其他方法吧。

原文地址:https://www.cnblogs.com/accessking/p/2519454.html