SQL执行顺序
按惯例先上SQL Server查询顺序,小括号()里面的数字代码数据库引擎在执行查询语句时候的先后顺序,从1开始:
(8)SELECT(9)DISTINCT (11)<top Num><select list>
(1)FROM [left_table]
(3)<join_type>JOIN<right_table>
(2) ON <join_condition>
(4)WHERE <where_condition>
(5)GROUP BY <group_by_list>
(6)WITH <CUBE |RollUP>
(7)HAVING <having_condition>
(10)ORDER BY <order_by_list>
AND和OR的用途比较广泛,在SQL执行顺序过程中很多地方都会使用到,上面红色部分是经常使用到的部分。
AND 和 OR 作用
AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。
AND 和 OR 使用
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
原始的表Customers (用在例子中的):
AND 运算符实例
使用 AND 来显示姓名为 "张三" 并且城市为 "上海" 的人:
SELECT * FROM Customers WHERE 姓名='张三' AND 城市='上海'
结果:
AND就是要所有条件都满足才显示数据
OR 运算符实例
使用 OR 来显示所有姓名为 "张三" 或者城市为 "北京" 的人:
SELECT * FROM Customers WHERE 姓名='张三' OR 城市='北京'
结果:
OR则是只要满足其中一个条件即显示数据
结合 AND 和 OR 运算符
我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):
Order表里的数据:
AND和OR结合后查询订单表中,客户ID是1或者3并且两个客户的发货ID都是4的订单信息:
SELECT * FROM Orders WHERE (客户ID=3 OR 客户ID=1) AND 发货ID=4
结果:
批注
AND和OR其实很好理解,他们一个是并且逻辑运算符,一个是或者逻辑运算符,想象成我们日常生活中的并且和或者就可以了。