MySQl資料庫(十)__2018.11.15
阿新 • • 發佈:2018-11-22
where條件指定範圍的查詢:[not]between...and
#測試範圍 between and
#查詢年齡在18~30之間的使用者
SELECT id,username,age,sex FROM user1
WHERE age BETWEEN 18 AND 30;
#應用到範圍的形式
#查詢薪水在10000到50000之間的使用者
SELECT id,username,age,salary FROM user1
WHERE salary BETWEEN 10000 AND 50000;
#查詢薪水不在10000到50000之間的使用者 SELECT id,username,age,salary FROM user1 WHERE salary NOT BETWEEN 10000 AND 50000;
優質男女,月薪都很高。
指定集合:[not]IN{值...}只要出現在括號裡面的值,就篩選出來。
#測試指定範圍(集合)IN
#查詢編號為1,3,5,7,9的使用者
SELECT id,username,age FROM user1
WHERE id IN (1,3,5,7,9);
它只會查詢在括號中的記錄。
使用字串型的也可以
#測試指定範圍(集合)IN
SELECT id,username,age FROM user1
WHERE username IN ('king','queen','rose');
那麼接下來還有兩個可以作為我們的where條件,一個呢是邏輯運算子,常用的邏輯運算子包括:邏輯與和邏輯或and、or
#測試邏輯運算子
#查詢性別為男並且年齡>=20的使用者
SELECT id,username,age,sex FROM user1
WHERE sex='男'AND age>=20;
#測試邏輯運算子
#查詢性別為男並且年齡>=20的使用者
SELECT id,username,age,sex FROM user1
WHERE sex='男'AND age<=30 AND id>=5;
#要求sex='女' 並且addr='北京' SELECT id,username,age,sex,addr FROM user1 WHERE sex='女'AND addr='北京';
#查詢薪水範圍在60000~10000並且性別為男 addr='北京'
SELECT id,username,age,sex,salary,addr FROM user1
WHERE salary BETWEEN 60000 AND 100000 AND sex='男'AND addr='北京';
或者or
#有任何記錄滿足都會查詢出來
SELECT id,username,age FROM user1
WHERE id=1 OR username='queen';
where條件查詢:模糊查詢[not]like
#測試模糊查詢
SELECT id,username,age FROM user1
WHERE username='king';
SELECT id,username,age FROM user1
WHERE username LIKE 'king';
#效果是一樣的
想使用模糊查詢得配上“萬用字元”來使用
1.%:可以代表任意長度(0、1、2...)的字串
2._:可以代表一個任意字元
有了它們兩個就可以實現簡單的模糊查詢了
#要求使用者名稱中包含X三X
SELECT id,username,age,sex FROM user1
WHERE username LIKE '%三%';
這叫查詢包含誰的。
#要求查詢出姓張的使用者
SELECT id,username,age,sex FROM user1
WHERE username LIKE '張%';
#要求查詢以風結尾的使用者
SELECT id,username,age,sex FROM user1
WHERE username LIKE '%風';
#要求查詢以風結尾的使用者
SELECT id,username,age,sex FROM user1
WHERE username LIKE '%';
#要求查詢使用者名稱為三位的使用者
SELECT id,username,age,sex FROM user1
WHERE username LIKE '___';
#用_起一個佔位的作用就可以了
_就是這麼一個佔位符。
%和_可以結合起來使用
#%和_結合起來使用
SELECT id,username,age,sex FROM user1
WHERE username LIKE '張_%';
#查詢包含K的使用者
SELECT id,username,age,sex FROM user1 WHERE username LIKE '%k%';
在搜尋的時候是不區分大小寫的,當然也和我們的校驗規則有關,預設是忽略大小寫的