sql中where條件裡的or與and的關係

2022-09-09 04:06:05 字數 1150 閱讀 3772

在sql中的where條件裡,or與and的關係相當於小學裡的加法與除法(或者乘法)的關係

1、例如   select * from user a where a.id=123  or  a.id=456    相當於

select * from user a where a.id=123    的結果集    加上    select * from user a where a.id=456   的結果集

2、例如  select  * from user a where a.***='男' and a.age<18  相當於

select * from user a  的結果集  除以  條件「***=『男』」 的結果集 

再用上面的結果集 接著除以  條件「age<18」  最後得到的結果集

3、例如  select * from user a where  a.***='男' and a.age<18 or a.id=123

就是 先算乘除法   再算加減法

select * from user a  除以 條件(***='男'  and  age<18)  

再加上select * from user a where a.id=123   

最後得到的結果集

4、例如 select * from user a where a.***='男' and (a.age<18 or a.id=123)

這裡就是有括號 先算括號裡面的   select * from user a where a.age<18  的結果集  加上   select * from user a where a.id=123   得到的和     

再除以條件「***='男'」  最後得到的結果集

5、例4可以通過乘法分配率改寫成   select * from user a where a.***='男' and a.age<18   or   a.***='男' and a.id=123

6、例5可以通過提取公因式改寫成例4的形式   

select * from user a where a.***='男' and (a.age<18 or a.id=123)   

或者   select * from user a where  (a.age<18 or a.id=123) and a.***='男'    (運用乘法交換律)

SQL中on條件與where條件的區別

資料庫在通過連線兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給使用者。在使用left jion時,on和where條件的區別如下 1 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。2 where條件是在臨時表生成好後,再對臨時表...

SQL 中 on 條件與 where 條件的區別

資料庫在通過連線兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給使用者。在使用left join時,on和where條件的區別如下 1 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。2 where 條件是在臨時表生成好後,再對臨時...

SQL中on條件與where條件的區別

資料庫在通過連線兩張或多張表來返回記錄時,都會生成一張中間的臨時表,然後再將這張臨時表返回給使用者。在使用leftjion時,on和where條件的區別如下 1 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。2 where條件是在臨時表生成好後,再對臨時表進...