語法
select
查詢列表
from
表明
where
篩選條件
先執(zhí)行from 表明
再執(zhí)行篩選條件
再執(zhí)行查詢列表
分類
1.按條件表達(dá)式篩選
條件運(yùn)算符: > < = != <> <= >=
2.按邏輯表達(dá)式篩選(用于連接條件表達(dá)式)
邏輯運(yùn)算符:
&& and
|| or
! not
3.模糊查詢
like
between and
in
is null
is not null
like:
通配符
% 任意多個(gè)字符(0個(gè)到多個(gè))
_ 任意單個(gè)字符
如果查詢的字符中需要使用 % _ 等, 可以使用 \ 來進(jìn)行轉(zhuǎn)義
也可以自己來指定轉(zhuǎn)義的字符
查詢名字中第二個(gè)字符是下劃線的員工
select * from employees
where
last_name like '_$_%' ESCAPE '$';
這里就是指定'$'為轉(zhuǎn)義符
3-1.png
3-2.png
between and
包含左右的臨界值 [100,120]
兩個(gè)臨界值不能換位置, 必須是小的在前面
in 特點(diǎn)
1. 使用 in 提高語句的簡介度
2. in 列表的值類型必須統(tǒng)一或者兼容
= 或者<> 不能用于判斷null值
is null 或 is not null 可以判斷null值
安全等于 <=>
可以用來判斷null 也可以用來判斷數(shù)值。 可讀性不好
# 沒有獎(jiǎng)金的員工
SELECT *
from employees
where commission_pct <=> null;
# 工資為12000的員工
select *
from employees
where salary <=> 12000;
案例
查詢工資>12000的員工信息
SELECT
*
FROM
employees
WHERE
salary > 12000;
查詢部門編號(hào)不等于90號(hào)的員工名和部門編號(hào)
SELECT
concat(first_name, ' ', last_name) `name`,
department_id
FROM
employees
WHERE
department_id <> 90
查詢工資在10000到20000之前的員工名,工資以及獎(jiǎng)金
SELECT
concat(first_name, ' ', last_name) `name`,
salary,
commission_pct
FROM
employees
WHERE
salary >= 10000
AND salary <= 20000
查詢部門編號(hào)不是在90到110之間的,或者工資高于15000的員工信息
SELECT
*
FROM
employees
WHERE
salary > 15000
OR department_id < 90
OR department_id > 110;
SELECT
*
FROM
employees
WHERE
salary > 15000
OR NOT (
department_id >= 90
AND department_id <= 110
);
SELECT
*
FROM
employees
WHERE
salary > 15000
OR (
department_id < 90
OR department_id > 110
);
查詢員工名字中包含字符a的員工信息
select * from employees
where last_name like '%a%'
查詢員工名字中第三個(gè)字符為e,第五個(gè)字符為a的員工信息
select * from employees
where last_name like '__e_a%'
查詢員工名字中第二個(gè)字符為下劃線的員工信息
SELECT
*
FROM
employees
WHERE
last_name LIKE '_\_%';
查詢員工編號(hào)在100到120之間的員工信息
SELECT
*
FROM
employees
WHERE
employee_id BETWEEN 100 AND 120;
in 查詢員工的工種編號(hào)是 IT_PROG AD_VP AD_PRES 中的一個(gè)員工名和工種編號(hào)
SELECT last_name, job_id
from employees
where job_id in ('IT_PROG', 'AD_VP', 'AD_PRES')