1. 程式人生 > >一步一步學MySQL----9 條件資料記錄查詢

一步一步學MySQL----9 條件資料記錄查詢

9.1 帶關係運算符和邏輯運算子的條件資料查詢

MySQL支援的關係運算符有:>、<、=、!=(<>)、>=、<=

MySQL支援的邏輯運算子有:AND(&&)、OR(||)、XOR、NOT(!)

例如1:檢視崗位為銷售人員的名單

mysql> select ename from employee where job=’Salesman’; //這裡設定了條件查詢

這裡寫圖片描述

例如2:檢視崗位為銷售人員,並且薪水大於等於3000的人員名單

mysql> select ename from employee where

job=’Salesman’&& salary>=3000; //這裡設定了多條件查詢

等價於:

mysql> select ename from employee where job=’Salesman’and salary>=3000;

這裡寫圖片描述

9.2 帶between and關鍵字的範圍查詢

語法:

select field1 field2 …… fieldn from table_name where field between value1 and value2;

例如1:查詢薪水3000到5000之間的員工

mysql> select ename from employee where

salary between 3000 and 5000;

這裡寫圖片描述

例如2:查詢薪水不在3000到5000之間的員工

mysql> select ename from employee where salary not between 3000 and 5000;

這裡寫圖片描述

9.3 帶in關鍵字的集合查詢

語法:

select field1 field2 …… fieldn from table_name where field in(value1, value2 …, valuen);

例如1:查詢工號為1002,1004,1006,1008的員工

我們可以這樣來查詢:

mysql> select ename from employee where

empno=1002 or empno=1004 or empno=1006 or empno=1008;

這裡寫圖片描述

也可以採用帶有in關鍵字的集合查詢

mysql> select ename from employee where empno in(1002, 1004, 1006, 1008);

這裡寫圖片描述

例如2:查詢工號不是1002,1004,1006,1008的員工

mysql> select ename from employee where empno not in(1002, 1004, 1006, 1008);

這裡寫圖片描述

注意:
在具體使用關鍵字in時,查詢的集合中如果存在NULL,則不會影響查詢;如果使用關鍵字not in時,查詢的集合中如果存在NULL,則不會有任何的查詢結果。如下:

mysql> select ename from employee where empno in(1002, 1004, 1006, 1008, NULL);

這裡寫圖片描述

mysql> select ename from employee where empno not in(1002, 1004, 1006, 1008, NULL);

Empty set (0.00 sec)

9.4 帶like關鍵字的模糊查詢

like關鍵字用來實現判斷欄位的值是否與指定的值相匹配。

語法:

select field1 field2 …… fieldn from table_name where field like value;

說明:

由於like關鍵字可以實現模糊查詢,所以該關鍵字後面的字串引數除了可以是一個完整的字串外,還可以包含萬用字元。

  • “_”萬用字元,該萬用字元值能匹配單個字元
  • “%”萬用字元,該萬用字元值可以匹配任意長度的字串,既可以是0個字元,1個字元,也可以是多個字元。

(1) 帶有“%”萬用字元的查詢

例如:查詢員工姓名以J開頭的員工

mysql> select ename from employee where ename likeJ%‘;

這裡寫圖片描述

例如:查詢員工姓名不是以J開頭的員工

mysql> select ename from employee where not ename likeJ%‘;

這裡寫圖片描述

(2) 帶有“_”萬用字元的查詢

例如:查詢員工姓名中第二個字母為o的員工

mysql> select ename from employee where ename like_o%‘;

這裡寫圖片描述

例如:查詢員工姓名中第二個字母不為o的員工

mysql> select ename from employee where not ename like_o%‘;

這裡寫圖片描述