SQL查询的一些小技巧

 1.当使用AND时,将很可能不为真的条件放在前面.

      因为数据库系统从左到右计算条件,并遵守运算符的优先级.如果一个条件中存在两个或多个AND运算符,则左边的一个条件首先被计算.
   
      例子:
      
1SELECT Language 
2FROM Computer
3WHERE ComeFrom = 'USA' AND  Date = '1990-09-01' 

    这个查询可被正确执行,但是日期为1990-09-01的语言较少可能,所以应将Date放在ComeForm前,这样当第一个条件不为真时,就不需要再去验证第二个条件

1SELECT Language 
2FROM Computer
3WHERE Date = '1990-09-01' AND  ComeFrom = 'USA'

   2.当使用OR运算符时,将最可能为真的条件放在前面.

   根据上面AND例子,可以推测得原因,使用OR运算符时,若一条为真,则为真.其后的都不需要再去验证

1SELECT Language 
2FROM Computer
3WHERE ComeFrom = 'USAOR  Date = '1990-09-01' 

   3.对子查询使用IN运算符

   考虑下面两个例子

1SELECT CategoryName 
2FROM Categories
3WHERE CategoryID = (SELECT CategoryID FROM Products WHERE ProductID = 10)
4
5SELECT CategoryName 
6FROM Categories
7WHERE CategoryID IN (SELECT CategoryID FROM Products WHERE ProductID = 10)

   如果使用IN运算符重新编写这个查询,则数据库系统仅需要得到与子查询所返回的值匹配的结果,就可以结束搜索;
posted @ 2007-02-06 23:51  Nicky(花仔)  阅读(229)  评论(0编辑  收藏  举报