1. 程式人生 > >MySQl資料庫(十)__2018.11.15

MySQl資料庫(十)__2018.11.15

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%';

在搜尋的時候是不區分大小寫的,當然也和我們的校驗規則有關,預設是忽略大小寫的