美文网首页
SQL杂记_day02

SQL杂记_day02

作者: 感觉变强了 | 来源:发表于2018-04-17 10:42 被阅读0次

    书接SQL杂记_day01,继续WHERE部分内容:

    6)WHERE中使用 IN:

    SELECT prod_name, prod_price

    FROM Products

    WHERE vend_id IN ( 'DLL01', 'BRS01' )

    ORDER BY prod_name;

    执行结果

    IN的功能和OR的功能是相同的,只是阅读起来语义更加的明确,和如下代码意义相同:

    SELECT prod_name, prod_price

    FROM Products

    WHERE vend_id = 'DLL01' OR vend_id = 'BRS01'

    ORDER BY prod_name;

    还有一个优点是可以在 IN 里包含其他的SELECT语句!

    7)NOT:

    用来否定WHERE子句内的内容

    SELECT prod_name

    FROM Products

    WHERE NOT vend_id = 'DLL01'

    ORDER BY prod_name;


    通配符总结了解一下

    首先要明确,通配符搜索只能用于文本字段(字符串),非文本类型数据字段不能使用!

    为了在搜索中能使用通配符,则需要使用LIKE来进行操作(LIKE被称为谓词)

    1、%:

    用来在任意位置匹配任意数量的字符,0,1 或者更多和字符都可以

    SELECT prod_id, prod_name

    FROM Products

    WHERE prod_name LIKE 'Fish%';

    SELECT prod_id, prod_name

    FROM Products

    WHERE prod_name LIKE '%bean bag%';

    关于大小写问题,是可以做到区分大小写的,当前使用的环境就是区分大小写!

    注意:关于前面或者后面存在空格的出现空格问题,一般匹配时,需要去除字符串两端无用的空格,之后再进行匹配操作,例如匹配: F%y

    那么如果字符串后部有很多空格,则就不是以y结尾,就无法匹配到;还有就是无法匹配NULL。

    2、" _ "(在Microsoft Access中使用的是" ? ")

    下划线“ _ ”通配符只能匹配一个字符

    SELECT prod_id, prod_name

    FROM Products

    WHERE prod_name LIKE '__ inch teddy bear';  (此处使用了两个下划线)

    3、方括号([ ])通配符(以下规则适用于MySql):

    用来匹配指定位置的一个字符

    SELECT cust_contact

    FROM Customers

    WHERE cust_contact RLIKE '[JM]'

    ORDER BY cust_contact;

    匹配首字母为J或者M的字符串(也可以使用 REGEXP 或者 NOT REGEXP, 能有同样效果)

    注意:切勿过度使用通配符,匹配效率不高

    相关文章

      网友评论

          本文标题:SQL杂记_day02

          本文链接:https://www.haomeiwen.com/subject/hjcukftx.html