T SQL 畢業生出門需知系列(六)

2022-01-12 12:24:43 字數 2757 閱讀 4995

6.1 like 操作符

前面介紹的所有操作符都是針對已知值進行過濾。但是,這種過濾方法並不是任何時候都好用。

例如:怎樣搜尋產品名中包含文字 bean bag 的所有產品?

【注意】萬用字元搜尋只能用於文字字段(字串),非文字資料型別字段不能使用萬用字元搜尋

【解析】萬用字元:用來匹配值的一部分的特殊字元

6.1.1 百分號(%)萬用字元

%:任何字元出現任意次數

例1:找出所有以詞 fish 起頭的產品

例2:可以使用多個萬用字元

搜尋包含文字 bean bag 的值

例3:找出以 f 起頭、以 y 結尾的所有產品?

【提示】根據部分資訊搜尋電子郵件

有一種情況下把萬用字元放在搜尋模式中間是很有用的,就是根據郵件的一部分來查詢電子郵件,例如:

where email like 'b%@qq.com'

【注意】除了能匹配乙個或多個字元外,%還能匹配0個字元。(0,1或多個字元)

【注意】如果產品後面有一堆空格,'f%y'應改成'f%y%';或者用函式去掉空格

【注意】where prod_name like '%' 不會匹配 null 的行

6.1.2 下劃線(_)萬用字元

_:只匹配單個任意字元

例4:

select

prod_id, prod_name

from

products

where prod_name like

'__ inch teddy bear';

--分析:like 後面跟有文字的兩個萬用字元

結果:2個

例5:觀察使用 % 和 _ 的不同

select

prod_id, prod_name

from

products

where prod_name like

'% inch teddy bear

';

6.1.3 方括號()萬用字元

:用來匹配乙個字符集,它必須匹配指定位置(萬用字元的位置)中的乙個字元

例6:找出所有名字以 j 或 m 起頭的聯絡人

select

cust_contact

from

customers

where cust_contact like

'[jm]%';

--分析:[jm] 匹配方括號中任意乙個字元,它也只能匹配單個字元。[jm]之後的 % 萬用字元匹配第乙個字元之後的所有字元

例7:查詢匹配非 j 或 m 字元開頭的任意聯絡人名

select

cust_contact

from

customers

where cust_contact like

'[^jm]%';

--分析:通過字首字元 ^(脫字型大小)來否定

方法二:使用 not

例8:

select

6.2 使用萬用字元的技巧

【技巧】

1.不要過度使用萬用字元。如果其它操作符能達到相同目的,應該使用其它操作符

2.盡量不要講它們用在搜尋模式的開始處。把萬用字元置於開始處,搜尋起來是最慢的。

3.仔細注意萬用字元的位置

6.3 小結

萬用字元的含義、使用及技巧

續集:sqlserver:《sql必知必會》一書的讀書筆記(五)

T SQL 畢業生出門需知系列(四)

4.1 使用 where 子句 過濾 只檢索所需資料需要指定搜尋條件 即過濾條件 where 子句在表名 from 子句 後給出,根據 where 子句中指定的條件過濾。select prod name,prod price from products where prod price 3.49 分...

T SQL 畢業生出門需知系列(八)

8.1 函式 名詞 可移植 所編寫的 可以在多個系統上執行 8.2 使用函式 8.2.1 文字處理函式 例1 使用 upper 函式 將文字轉換為大寫 常用的文字處理函式 8.2.2 日期和時間處理函式 例2 檢索 orders 表中 2012 年的所有訂單 select order num fro...

T SQL 畢業生出門需知系列(七)

7.1 計算字段 格式化字段 儲存在資料庫表中的資料一般不是應用程式所需要的格式,如 1.需要顯示公司名,同時還需要顯示公司的位址,但這兩個資訊儲存在不同的表列中。2.列資料是大小寫混合的,但報表程式需要把所有資料按大寫表示出來。計算欄位是在執行時在 select 語句內建立的 提示 在 sql 語...