第六课 用通配符进行过滤

第六课 用通配符进行过滤
 
  1.  LIKE 操作符
最常用的通配符是百分号(*),在搜索串中,%表示任何字符出现任意次数
 
eg:
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE "Fish*";
 
使用搜索模式"Fish*",将检索任意以Fish起头的词
注意!!!如果使用的是Microsoft Access,需要使用的是*而不是%
 
eg:
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE "*bean bag*"
 
搜索模式"*bean bag*"表示匹配任何位置上包含文本bean bag的值
 
 
 
eg:
SELECT prod_name
FROM Products
WHERE prod_name LIKE "F*y"
 
需要特别注意,除了能匹配一个或多个字符外,%还能匹配0个字符,%代表搜索模式中给定位置的0个、1个或多个字符
 
包括Access在内的许多DBMS都用空格来填补字段的内容,所以使用通配符时需要注意后面所跟的空格,。简单的解决办法是给搜索模式再增加一个%号:'F%y%'
 
 
通配符*看起来像是可以匹配任何东西,但是有个例外,这就是NULL 子句WHERE prod_name LIKE “%”不会匹配产品名称为NULL的行
 
 
 
下划线(_)通配符
通配符下划线(_)用途和%一样,但是它只匹配单个字符
 
注意!!!如果使用的是Microsoft Access,需要使用?而不是_
 
eg:
SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE "?? inch teddy bear*"
 
 
 
方括号([])通配符
方括号([])通配符用来制定一个字符集,它必须匹配指定位置(通配符的位置)的一个字符
 
 
eg:
SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE "[JM]*"
ORDER BY cust_contact;
 
 
WHERE子句中的模式为"[JM]*",这一搜索模式中使用了两个不同的通配符,[JM]匹配方括号中任意一个字符,它也只能匹配单个字符
 
 
此通配符前可以用前缀字符!来否定  “[!JM]*”
 
 
 
 
posted @ 2018-08-19 13:14  我不要被你记住  阅读(188)  评论(0)    收藏  举报