1. 程式人生 > >【SQL必知必會】筆記 SQL萬用字元

【SQL必知必會】筆記 SQL萬用字元

萬用字元:

  • WHERE子句中用於篩選
  • 用來匹配值的一部分的特殊字元
  • 萬用字元只能用於文字欄位(字串),不能用於非文字資料型別的資料
  • 使用萬用字元時,必須使用LIKE操作符

1. 百分號(%)萬用字元

%表示任何字元出現任意次數

  1. 比方說,想要表中找名字以jet開頭的產品的產品id和產品名稱,用’jet%'表示
SELECT prod_id, prod_name FROM products WHERE prod-name LIKE  'jet%';
  1. 可以搜尋任意位置出現特定字元的,比如說找名字中包含文字anvi的產品的產品id和產品名稱
    ’%anvil%'表示匹配任何位置包含文字anvil的值,而不論它之前或之後出現什麼字元
SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '%anvi1%';

顯示結果如下
在這裡插入圖片描述

  1. 還可以搜尋特定開頭和特定結尾
    例如:找出以s起頭以e結尾的所有產品 ,用 's%e’表示
SELECT prod_nameFROM productsWHERE prod name LIKE 's%e';

注意:%萬用字元不能匹配NULL值。

2. 下劃線(_)萬用字元

下劃線的用途與%一樣,但下劃線只匹配單個字元而不是多個字元 。用下面兩個例子來檢視下劃線和%的差別:

SELECT prod_id, prod_name FROM products WHERE prod_name LIKE  '_ton anvil';

在這裡插入圖片描述

第一行中下劃線匹配1,第二行中匹配2。 .5 ton anvil產品沒有匹配,因為搜尋模式要求匹配1個萬用字元。對照一下,下面的SELECT語句使用%萬用字元,返回三行產品 :

SELECT prod_id, prod_name FROM products WHERE prod-name LIKE '% ton anvil';

在這裡插入圖片描述

總結:%能匹配0個,1個字元或者多個萬用字元, _總是匹配一個字元,不能多也不能少

使用萬用字元的技巧和要點

  • 配符搜尋的處理一般要比前面討論的其他搜尋所花時間更長。 所以不要過度使用萬用字元。如果其他操作符能達到相同的目的,應該使用其他操作符。
     在確實需要使用萬用字元時,除非絕對有必要,否則不要把它們用
    在搜尋模式的開始處。把萬用字元置於搜尋模式的開始處,搜尋起
    來是最慢的。
     仔細注意萬用字元的位置。如果放錯地方,可能不會返回想要的數 據 。