mysql條件查詢

皮蛋是个小邋遢發表於2024-04-06

條件查詢

語法:
select 查詢條件 (III)
from 表名 (I)
where 篩選條件 (II)

分類:
1、按條件表示式篩選
條件運算子: <、>、=、<>(不等於)、!=、<=、>=。
2、按邏輯表示式篩選
邏輯表示式: &&、||、!、and、or、not。

&&和and:全真為真,一假全假
||和or:全假為假,一真全真
!和not:取反

3、模糊查詢(複雜的條件查詢)
like、between and、in、is (not) null。

#like:一般和萬用字元(%、_)搭配使用。
      與 % 搭配:任意多個字元,包含0個字元
      與 _ 搭配:任意單個字元
between and:包含臨界值,臨界值不能顛倒。
 in:判斷某欄位的值是否屬於in列表中發某一項。in列表的值型別必須一致或相容。
is(not)null:!=或<>不能判斷null值,is null和is not null可以判斷null值,不可以判斷數值。
#安全等於 <=>:既可以判斷null值又可以判斷普通數值。

例如:
查詢部門編號不等於90號的員工名和部門編號
SELECT last_name,depaerment_id FROM employees WHERE department_id <> 90;(建議使用)
或者
SELECT last_name,depaerment_id FROM employees WHERE department_id != 90;

查詢部門編號不是在90到110之間或者工資高於15000的員工資訊
SELECT * FROM employees WHERE NOT(department_id>=90 AND department_id<=110) OR salary>15000;
或者
SELECT * FROM employees WHERE NOT(department_id BETWEEN 90 AND 110) OR salary>15000;
或者
SELECT * FROM employees WHERE department_id<90 OR department_id>110 OR salary>15000;

查詢員工名中包含字元a的員工資訊

SELECT * FROM employees WHERE last_name LIKE '%a%';

查詢員工名中第三個字元為n,第五個字元為l的員工名和工資

SELECT last_name, salary FROM employees WHERE last_name LIKE '__n_l%';

查詢員工名中第二個字元為_的員工名

SELECT last_name FROM employees WHERE last_name LIKE '_%'; (\:跳脫字元)
或者
SELECT last_name FROM employees WHERE last_name LIKE '
$_%' ESCAPE $; (escape $:將$變成 跳脫字元,$可以寫成任意字元)

查詢員工的工種編號是IT_PROG、AD_VP中的一個員工名和工種編號

SELECT last_name,job_id FROM employees WHERE job_id='IT_PROG' OR job_id='AD_AP';
或者
SELECT last_name,job_id FROM employees WHERE job_id IN ('IT_PROG' , 'AD_AP');

查詢沒有獎金的員工名和獎金率
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL;
或者
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL;

查詢員工號為176的員工姓名,部門編號和年薪(commission獎金率可能為null值,需要用ifnull將null值轉換成0)

SELECT last_name,department,salary12(1+ IFNULL (commission_pct,0)) AS 年薪 FROM employees WHERE job_id<=>176;

相關文章