mysql查询职位大于3_4、MySQL查询(控制行)
1、概要
在之前的簡單查詢中,是將所有的記錄進行顯示,但是現在可以對顯示的記錄進行過濾的操作,而這就屬于限定查詢的工作了,限定查詢就是在之前語法的基礎上增加了一個WHERE子句,用于指定限定條件
在使用 WHERE 子句操作的時候可以進行條件的判斷,而對于條件的判斷主要有以下幾類操作
關系運算
>、=、<=、!=(<>)
范圍判斷
BETWEEN AND
判斷是否為空
IS NULL
IS NOT NULL
指定范圍的判斷
IN
NOT IN
模糊查詢
LIKE
NOT LIKE
2、語法格式
SELECT [DISTINCT] * | 列名 [別名] ,列名 [別名] , --3、 控制要顯示的數據列
FROM 表名稱 [別名] --1、 確定數據來源
[WHERE 條件(s)] ; -- 2、 根據判斷條件選擇參與的數據行
3、限定操作符
3.1、關系運算(>、=、<=、<>、!=)
3.1.1、等于(=)、不等于(!=或者<>)
查詢出所有職位是辦事員的雇員信息
1.錯誤的寫法
SELECT *
FROM emp
WHERE job='clerk'(所有的數據都是區分大小寫的)
2.正確的寫法
SELECT *
FROM emp
WHERE job='CLERK'
查出員工工資不等于1500的員工信息
SELECT *
FROM EMP
WHERE sal !=1500;
查詢所有職位不是銷售人員的信息
SELECT *
FROM emp
WHERE job<>'SALESMAN' ;
3.1.2、小于
查詢出基本工資不大于1500
SELECT *
FROM emp
WHERE sal <= 1500;
3.1.3、大于>、 大于等于>=
找出獎金高于工資的員工
SELECT *
FROM empWHERE comm>sal;
找出工資大于或等于3000的員工
SELECT ename ,sal
FROM emp
WHERE sal>=3000;
查詢81年以后入職的員工所有信息
# Navicat中的寫法:
SELECT *
FROM EMP
WHERE HIREDATE > date '1981-01-1'
# 或者
SELECT *
FROM EMP
WHERE HIREDATE > '1-1月-81';
3.2、邏輯運算(AND OR)
說明
在使用where 語句的時候可能會存在編寫多個條件的情況,那這個時候就必須使用邏輯運算符了
語法格式
AND:條件 AND 條件 AND 條件; ?所有條件都要同時滿足
OR:條件 OR 條件 OR 條件;所有條件只要有一個滿足即可
示例代碼
1、查詢工資在1500~3000之間的全部雇員信息
SELECT *
FROM emp
WHERE sal
>=1500 AND sal<=3000;
2、查詢出職位是辦事員(job='CLERK'),或者是銷售人員(job='SALESMAN')的全部信息
SELECT *
FROM emp
WHERE job='CLERK' OR job='SALESMAN';
3、查詢出職位是辦事員(job='CLERK'),或者是銷售人員(job='SALESMAN')的全部信息,并且要求這些雇員的工資大于1200
SELECT *
FROM emp
WHERE (job='CLERK' OR job='SALESMAN') AND sal>1200;
3.3、范圍判斷(BETWEEN AND)
說明
表示的是一個范圍的判斷過程
語法格式
BETWEEN 最小值 AND 最大值”,
示例代碼
1、查出工資在1000~2000之間的員工
SELECT *
FROM emp
WHERE sal BETWEEN 1000 AND 2000;
2、查出在1985年1月20至1987年5月20之間入職的員工
SELECT *
FROM emp
WHERE hiredate BETWEEN '20-1月 -85' AND '20-5月 -87';
SELECT *
FROM emp
WHERE hiredate
BETWEEN '1985-01-01'
AND '1987-05-20';
3.4、判斷是否為空(IS [NOT] NULL)
查詢出所有領取獎金的雇員信息
SELECT *
FROM emp
WHERE comm IS NOT NULL;
SELECT *
FROM emp
WHERE NOT comm IS NULL;
查詢出所有不領取獎金的雇員
SELECT *
FROM emp
WHERE comm IS NULL
3.5、指定范圍的判斷([NOT] IN)
說明
IN操作符表示的是指定一個查詢的范圍
語法格式
字段 IN (數值,數值,…)
示例代碼
1、查詢出雇員編號是7369、7566、7799的雇員信息
SELECT *
FROM emp
WHERE empno=7369 OR empno=7566 OR empno=7799
SELECT *
FROM emp
WHERE empno IN (7369,7566,7799);
2、查詢出姓名為 SMITH,ALLEN,KING的雇員信息
SELECT *
FROM emp
WHERE ename in ('SMITH','ALLEN', 'KING');
3、查詢出雇員編號不是7369、7566、7799的雇員信息
SELECT *
FROM emp
WHERE not empno IN (7369,7566,7799);
注意事項
關于NOT IN的問題
如果現在使用了IN操作符,查詢的范圍之中存在了null,不影響查詢;
SELECT * FROM emp WHERE empno IN(7369,7566,null);
empno in (7369,7566,null)可以等價于empno=7369 or empno=7566 or empno=null,
如果現在使用的是NOT IN操作符,如果查詢范圍之中有了null則表示的就是查詢全部數據但實際上不返回任何數據。SELECT * FROM emp WHERE empno NOT IN(7369,7566,null);
empno not in (7369,7566,null)可以等價于not(7566=7369 or 7566=7566 or empno=null)
或empno!=7566 and empno!=7566 and empno=null。
為什么都是or拼接,in可以而not in不可以呢,可以把not in理解為后面的and表達式就知道了,因為empno=null為null,
也就相當于false,導致整個表達式為false,無論傳何值都為false,自然無法返回數據
3.6、模糊查詢
說明
LIKE子句的功能是提供了模糊查找的操作,程序里出現的搜索操作,都屬于LIKE子句的實現,但是要想使用LIKE子句則必須認識兩個匹配符號
匹配單個字符:_ --匹配任意一個字符
匹配任意多個字符:% --匹配 0 個、1 個或多個任意字符
語法
字段 LIKE 關鍵字
示例代碼
1、查詢出雇員第二個字母為“L”的雇員信息
select *
from emp
WHERE ename like '_L%';
2、查詢出雇員姓名以字母“S”開頭的雇員信息
SELECT *
FROM emp
WHERE ename like 'S%'
3、查詢出雇員姓名包含字母“S”的雇員信息
SELECT *
FROM emp
WHERE ename like '%S%'
4、查詢入職年份為81年的雇員信息
SELECT *
FROM emp
WHERE hiredate like '%81'
5、查詢工資值中包含數字5的雇員信息
SELECT *
FROM emp
WHERE sal like '%5%'
6、查詢所有員工中ename 包含數字1 ,或者入職日期中包含數字1或者工資中含有數字5
SELECT *
FROM emp
WHERE ename LIKE '%1%' OR hiredate LIKE '%1%' OR sal LIKE '%5%'
查詢名為SCOTT 的員工的所有信息
select * from emp where ename = 'SCOTT';
等同于 select * from emp where ename like 'SCOTT';
3.7、總結
作用:對SQL語句返回的數據集進行篩選
位置:緊跟在FROM子句后
內容:由一至多個限定條件組成,限定條件由表達式, 比較符, 字面值組成。所有字符串和日期要用單引號括起來,數值不需要單引號。
總結
以上是生活随笔為你收集整理的mysql查询职位大于3_4、MySQL查询(控制行)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hive mysql 删除表_Hive-
- 下一篇: 安卓后端mysql_后端Spring B