一步一步學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 like ‘J%‘;
例如:查詢員工姓名不是以J開頭的員工
mysql> select ename from employee where not ename like ‘J%‘;
(2) 帶有“_”萬用字元的查詢
例如:查詢員工姓名中第二個字母為o的員工
mysql> select ename from employee where ename like ‘_o%‘;
例如:查詢員工姓名中第二個字母不為o的員工
mysql> select ename from employee where not ename like ‘_o%‘;