重拾資料庫04

makerjack001發表於2020-10-31

重拾資料庫04

上期文章我提到了模糊查詢 傳送門.
在我們平時的查詢中大多都是模糊查詢,以一個值來搜尋與其相關的資料並返回
本文就具體講一下這個 模糊查詢

本質

模糊查詢本質為比較運算子

運算子語法描述
IS NULLa is null若欄位為null,則結果為真
IS NOT NULLa is nut null如果欄位不是null,則結果為真
BETWEEMa between b and ca在b和c中間,則結果為真
LIKEa like bSQL匹配,如果a匹配b,則結果為真
INa in (a1,a2,a3……)若a是a1,a2,a3……中的某一個值,則結果為真

怎麼樣,是不是一頭霧水在這裡插入圖片描述

例項應用

這是測試用的表

INSERT INTO `student`(`studentno`,`loginpwd`,`studentname`,`sex`,`gradeid`,`phone`,`address`,`borndate`,`email`,`identitycard`)
VALUES
(1003,'123456','張偉',0,2,'13800001234','北京朝陽','1980-1-1','text123@qq.com','123456198001011234'),
(1004,'123456','趙強',1,3,'13800002222','廣東深圳','1990-1-1','text111@qq.com','123456199001011233'),
(1005,'123456','張飛',0,3,'13800001238','陝西咸陽','1980-12-1','text123@qq.com','123456198001011239')(1006,'123456','王志強',0,3,'13800001239','貴州遵義','1980-12-11','text123@qq.com','123456198001011241');

那麼執行查詢語句

SELECT studentno,studentname FROM student

結果就是在這裡插入圖片描述
如果加上以上模糊查詢的幾個語句
前兩個null就不贅述了,是否為空一眼就看出來了
between講吧

SELECT studentno,studentname FROM student
WHERE studentno BETWEEN 1004 AND 1005

結果為
在這裡插入圖片描述
篩選兩個數值之間的,且包含端點值

like
這裡要講個匹配方式
%代表0個或者n個任意字元
_代表1個任意字元

比如說17_ 可以代表任何17開頭的 長度為3的字串 175 179 17a 17B 17*這些都是
%17%可以表示任何包含17的字串

回到資料庫
執行

SELECT studentno,studentname FROM student
WHERE studentname LIKE '張_'

結果為在這裡插入圖片描述

SELECT studentno,studentname FROM student
WHERE studentname LIKE '%強%'

結果為在這裡插入圖片描述

in
執行以下語句

SELECT studentno,studentname FROM student
WHERE studentno IN (1002,1003);

在這裡插入圖片描述
執行語句

SELECT studentno,studentname FROM student
WHERE address IN ('廣東深圳','貴州遵義');

結果在這裡插入圖片描述
以上為本次總結

相關文章