語法的超生活應用(咦)
BETWEEN:「我想調早上九點到十二點的監視器!」by 憤怒的被偷光全家的民宅主人
LIKE:「你幫我找那個什麼什麼節目!就是那個綜藝什麼熱門的,啊我不記得名字了啦!」by 要求你幫他找綜藝節目可是又不記得節目名字的老媽
NULL:「把有沒有打卡紀錄的員工通通找出來(拍桌)!」by 想要縮編人力的腦闆
資料篩選趴三,是基礎的最後一趴,
我們來想辦法應付上面這些奇怪人士的需求,
之後還會介紹比較進階一點的子查詢,
條件篩選的水很深吶吶吶,
上面例子看不懂沒關係,可以學完再來回頭看!
今天要介紹的是BETWEEN、LIKE與NULL,
一樣用我們的student資料當範例,
直接開始講解,GOGO!
BETWEEN 算是比較好理解,就是在......期間,
或是在......之間,常常常用在篩選時間或數字,
用法是BETWEEN 條件一 AND 條件二,
選出來的資料會包含條件一和條件二喔!
篩選時間
選出在2019年暑假報名的學生
SELECT * FROM Education.student WHERE start_date between '2019/07/01' AND '2019/08/31';
篩選數字
選出第6個到第10個報名的學生
SELECT * FROM Education.student WHERE id between 6 AND 10;
LIKE就是「像」,%是萬用字元,
例如下面的語法就是找到名字長的像'J%'的學生,
'J%'的意思是J開頭,後面隨便什麼字都沒關係,
只要長的像JXXXX的,都可以接受!
SELECT * FROM Education.student WHERE full_name like 'J%';
'%y'就是什麼開頭無所謂,要用y結尾就對了。
SELECT * FROM Education.student WHERE full_name like '%y';
'%e%'就是前面後面都不重要,中間一定要有個e。
SELECT * FROM Education.student WHERE full_name like '%e%';
NULL就是NULL,NULL不是空。
NULL是尚未有值,是沒有設定,
空值是'',是欄位裡面裝空白,
如果今天要撈空白欄位,
我們會where 欄位=''。
如果要撈尚未設定的欄位,
就會用WHERE 欄位IS NULL,
反之,則是用WHERE 欄位IS NOT NULL。
還記得我們創建student表的時候,
class那欄都沒有填東西?
這代表每個學生的class都沒設定過,
我們用IS NULL和IS NOT NULL選看看。
SELECT * FROM Education.student WHERE class IS NOT NULL;
SELECT * FROM Education.student WHERE class IS NULL;