Mysql數(shù)據(jù)庫基礎(chǔ)第二章:(二)條件查詢
Mysql數(shù)據(jù)庫基礎(chǔ)系列
軟件下載地址
提取碼:7v7u
數(shù)據(jù)下載地址
提取碼:e6p9
mysql數(shù)據(jù)庫基礎(chǔ)第一章:(一)數(shù)據(jù)庫基本概念
mysql數(shù)據(jù)庫基礎(chǔ)第一章:(二)mysql環(huán)境搭建
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(一)基礎(chǔ)查詢
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(二)條件查詢
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(三)排序查詢
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(四)常見函數(shù)
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(五)分組查詢
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(六)連接查詢
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(七)子查詢
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(八)子查詢經(jīng)典案例
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(九)分頁查詢
mysql數(shù)據(jù)庫基礎(chǔ)第二章:(十)連接查詢
mysql數(shù)據(jù)庫基礎(chǔ)第三章:DML語言
mysql數(shù)據(jù)庫基礎(chǔ)第四章:DDL(數(shù)據(jù)定義語言):庫表的管理、數(shù)據(jù)類型與約束條件
mysql數(shù)據(jù)庫基礎(chǔ)第五章:(一)事務(wù)
mysql數(shù)據(jù)庫基礎(chǔ)第五章:(二)視圖
mysql數(shù)據(jù)庫基礎(chǔ)第六章:變量、存儲過程與函數(shù)
mysql數(shù)據(jù)庫基礎(chǔ)第七章:流程控制結(jié)構(gòu)
mysql數(shù)據(jù)庫基礎(chǔ)第八章:窗口函數(shù)和公用表達式(CTE)
文章目錄
一、基礎(chǔ)語法
條件查詢:根據(jù)條件過濾原始表的數(shù)據(jù),查詢到想要的數(shù)據(jù)
select column
from table
where condition;
二、分類:
(一)按條件表達式篩選
簡單條件運算符:> < = != <> >= <=
(二)按邏輯表達式篩選
邏輯運算符:
作用:用于連接條件表達式
&& || !
and or not
&&和and:兩個條件都為true,結(jié)果為true,反之為false
||或or: 只要有一個條件為true,結(jié)果為true,反之為false
!或not: 如果連接的條件本身為false,結(jié)果為true,反之為false
(三)模糊查詢
like
between and
in
is null條件表達式刪選
三、實例
(一)按條件表達式刪選
#1:查詢工資>12000的員工信息
SELECT
*
FROM
employees
WHERE
salary>12000;
#2:查詢部門編號不等于90號的員工名和部門編號
SELECT
last_name,
department_id
FROM
employees
WHERE
department_id<>90;
(二) 按邏輯表達式刪選
# 1.查詢工資z在10000到20000之間的員工名、工資以及獎金
SELECT
last_name,
salary AS z,
commission_pct
FROM
employees
WHERE z >= 10000 AND z <= 20000 ;
#2查詢部門編號不是在90到110之間,或者工資高于15000的員工信息
SELECT
*
FROM
employees
WHERE
NOT(department_id>=90 AND department_id<=110) OR salary>15000;
(三)模糊查詢
1.like
like一般與通配符搭配使用:
- %表示任意多個字符,包括0個字符
- _表示任意單個字符。
#1.查詢員工名包含字符a的員工信息
select
*
from
employees
where
last_name like '%a%'
#案例2:查查詢員工名中第二個字符為_的員工名 轉(zhuǎn)義字符\,此時需要對_進行轉(zhuǎn)義
SELECT
last_name
FROM
employees
WHERE last_name LIKE '_\_%';
#3.指定轉(zhuǎn)義字符 escape 指定轉(zhuǎn)義字符
SELECT
last_name
FROM
employees
WHERE last_name LIKE '_$_%' ESCAPE '$';
2. between and
①使用between and 可以提高語句的簡潔度
②包含臨界值
③兩個臨界值不能調(diào)換順序
#查詢員工編號100-120之間的員工信息
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 120; #兩個順序不能顛倒,等價于100=<x<=120
3 in
判斷某個字段的值是否在in列表中
/*
不能使用通配符,因為in實質(zhì)上相等于等于號,通配符需要用like
in列表的值類型必須一致或兼容`123`,123
*/
#案例:查詢員工的工種編號是 IT_PROG、AD_VP、AD_PRES中的一個員工名和工種編號
SELECT
*
FROM
employees
WHERE job_id IN
('IT_PROG','AD_VP','AD_PRES');#似于多個等于號
4. is null 查詢
=或<>不能用于判斷null值
is null或is not null 可以判斷null值
只能用is 或 is not
#查詢無獎金的員工
SELECT
salary
FROM
employees
WHERE commission_pct IS NULL ;
# 查詢有獎金的員工
SELECT
salary
FROM
employees
WHERE commission_pct IS NOT NULL ;
# ------------ is和null搭配 以下代碼錯誤
SELECT salary
FROM employees
WHERE Salary IS 12000;

浙公網(wǎng)安備 33010602011771號