SQL LIKE操作符

1.上面講的都是針對已知值進行過濾,不管是匹配一個值還是多個值,檢驗大於還是小於已知值,或者檢查某個範圍的值,其共同點是過濾中使用的值都是已知的.

但是過濾方法不是任何時候都好用的,例如快速找到產品中包含bean bag所有產品?用簡單的比較符肯定不行,必須使用通配符,利用通配符,可以創建比較特定數據的搜索模式,在這個例子中,如果相同找出名稱包含bean bag所有產品,可以構造一個通配符搜索模式,找出產品名的任何位置出現bean bag產品.

通配符
用來匹配值的一部分的特殊字符.

搜索模式
由字面值、通配符或兩者組合構成的搜素條件.

通配符本身實際上是SQL的WHERE子句中有特殊含義的字符,SQL支持幾種通配符,爲在搜索子句中使用通配符,必須使用LIKE操作符,LIKE指示DBMS,後跟的搜素模式利用通配符而不是簡單的相等匹配進行比較.

2.百分號(%)通配符
最常使用的通配符是百分號(%),在搜素串中,%表示任何字符出現任意次數,例如,爲了找出所有以詞起頭Na的名字,SELECT語句:
此使用了"Na%",執行這條句子時,將檢索任意Na起頭的詞,%告訴DBMS接受Na之後的任意字符,不管他有多少字符.

Access通配符
如果使用Microsoft Access,需要使用*而不是%

區分大小寫的
搜索是區分大小寫的.
在這裏插入圖片描述
通配符可以在搜索模式中的任意位置使用,並且可以使用多個通配符,下面使用兩個通配符,位於模式的兩端:
不管他之前或之後出現什麼字符.通配符也可以位於搜索模式的中間,可以找出開頭和結尾的所有東西.

需要注意的是,除了能匹配一個或多個字符外,%還能匹配0個字符,%代表搜索模式中給定位置的0個、1個或多個字符.如果值後面有空格,那就再加一個%.
在這裏插入圖片描述

3.下劃線(_)通配符
下劃線(_)的用途和%一樣,但它只匹配單個字符,而不是多個字符.

DB2不支持通配符_.
Microsoft需要使用?而不是_.

與%能匹配0個字符不同,_總是剛好匹配一個字符,不能多也不能少.
在這裏插入圖片描述

4.方括號([])通配符
方括號([])通配符用來指定一個字符集,它必須指定位置(通配符的位置)的一個字符.

只支持微軟Access和SQL Server

列如,找到名字以D和M的人.

SELECT FirstName
FROM employees
WHERE FirstName LIKE '[DM]%'
ORDER BY FirstName;

[DM]匹配任何一方括號中字母開頭的聯繫人名,它只能匹配單個字符,任何多一個字符的名字都不匹配.

此通配符字符(脫字號)來否定,查詢不匹配DM起頭的,當然NOT操作符可以得出一樣的效果, 唯一有點使用多個WHERE子句可以簡化語法》

SELECT FirstName
FROM employees
WHERE FirstName LIKE '[^DM]%'
ORDER BY FirstName;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章