SQL中的等号、IN、LIKE三者的比较

 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]    www.dedecms.com    

 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]    www.dedecms.com  

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 列值为“%燕%”的记录。      

 

 

posted @ 2016-06-28 19:52  dy9776  阅读(1423)  评论(0编辑  收藏  举报