SQL中的等號、IN、LIKE 三者的比較

 SQL 中等號、IN、LIKE 三者均可以用來進行數據匹配 。但三者並不相同。等號是用來查找與單個值匹配的全部數據;IN 是 用來查找 與多個值匹配的全部數據;而 LIKE用來查找與一個模式匹配的全部數據。 
1.等號 
確切知道所要查找的內容,且爲單一值時,能夠使用等號運算符來進行數據比較。等號運算符中能夠使用字符串、日期或數字。例如,查找名爲「王靜」的工做人員,能夠使用等號進行匹配: 

SELECT name, sex, id, salary 
FROM Employee 
WHERE name = ’王靜’ 

Results 
name         sex       id     salary 
—————    ———    ——   ———— 
王靜         女       3004    3000.00 
[1row] 

2 IN  
當確切知道所要查找的內容,且爲多個值時,能夠使用 IN 子句來進行數據比較。IN 子句中也能夠使用數字、字符串或日期。例如,查找名爲「王靜」、「王力剛」、「王亞鵬」的工做人員,能夠使用 IN 子句進行匹配: 

SELECT name, sex, id, salary 
FROM Employee 
WHERE name IN(’王靜’, ’王力剛’, ’王亞鵬’) 

Results 
name         sex       id     salary 
—————    ———    ——   ———— 
王靜          女      3004    3000.00 
王力剛        男      5003    3000.00 
王亞鵬        男      4004    6000.00 
[3rows]

3.LIKE 子句 
當沒法確切知道所要查找的值,而是知道所要查找的數據符合的模式時,能夠使用LIKE 子句進行匹配。通常來講,LIKE 子句僅在字符串類型時使用,有些系統也支持在日期數據中使用,但對數字類型數據是不能使用 LIKE 子句的。例如,查找名字中都包含漢字「燕」的工做人員,能夠使用 LIKE 子句進行匹配: 

SELECT name, sex, id, salary 
FROM Employee 
WHERE name LIKE ’%燕%’ 

Results 
name         sex      id     salary 
—————    ———   ——   ———— 
劉燕          女     2002    3000.00 
張敏燕        女     4002    4000.00 
[2rows] 

須要注意的是,通配符只有在 LIKE 子句中使用時才具備通配符的含義。不在 LIKE子句中使用時, 就不具備特殊的含義,僅表示其自己的值。 例如, 在等號中使用字符 「%」,將上例修改成: 

SELECT name, sex, id, salary 
FROM Employee 
WHERE name = ’%燕%’ 

Results 
name         sex       id     salary 
—————    ———    ——   ———— 
[0row] 

則沒法找到任何數據,由於使用等號時字符 「%」 僅表示其自己的含以, 而 Employee表中並無 name 列值爲「%燕%」的記錄。 
相關文章
相關標籤/搜索