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 列值为“%燕%”的记录。 
相关文章
相关标签/搜索