Mysql条件查询语句(二)
一、between……and……操作符
1、查詢薪水為1600到3000的員工(第一種方式:采用>= 、<=)
例如:select empno,ename,sal from emp where sal >= 1600 and sal <= 3000;
2、查詢薪水為1600到3000的員式(第二種方式:采用between…and…)
例如:select empno,ename,sal from emp where sal between 1600 and 3000;
注:關亍between … and … 它是包含最大值和最小值的
3、between … and … 同樣也可用在字符上,用在字符上區間為:前閉后開;
例如: select ename from emp where ename between “A”and “F”;
二、is null
Null 為空,它不是一個數值,不是一個空串,為null可以設置這個字段不填值,如果查詢為null的字段,采用is null。
1、查詢津貼為空的員工
錯誤: select empno,ename,comm from emp where comm = null;
原因:以上無法查詢出符合條件的數據,因為null類型比較特殊,必須使用 is 來比較
正確:select empno,ename,comm from emp where comm is null;
2、查詢津貼不為空的員工
例如:select empno,ename,comm from emp where comm is not null;
三、and:表示并且,表示所有查詢條件必須滿足
1、查詢工作崗位為“MANAGER”并且薪水大于2500的員工
例如:select empno,ename,job,sal from emp where job =?MANAGER? and sal > 2500;
四、or:只要滿足條件即可,相當于包含
1、查詢出 job 為 SALESMAN 和 job為MANAGER的員工
例如: select ename,job from emp where job = “SALESMAN”or job = “MANAGER”;
五、and不or表達式的優化級
and的優先級高于or
1、查詢薪水大于1800,并且部門編號為20或30的員工
例如: 錯誤:select * from emp sal>1800 and deptno=20 or deptno = 30;
分析:以上輸出的結果不是是我們預期的結果,薪水小于1800的也查出來了,原因是表達式的優先級導致的,首先SQL語句過濾了 sal > 1800 and deptno = 20,然后再將deptno = 30的員工合并過來,所以是不正確的
正確: select * from emp where sal>1800 and (deptno=20 or deptno=30);
注: 關亍運算符的問題不用死記硬背,沒有把握的盡量采用括號;
六、 in:表示包含的意思,完全可以采用or來表示,采用in會更簡潔一些。
1、. 查詢出Job為 SALESMAN 和 Job為 MANAGER 的員工
例如: select ename,job from emp where job in (“SALESMAN”,“MANAGER”);
2、查詢出薪水為1600和3000的員工
例如: select ename,sal from emp where sal in (1600,3000);
3、查詢出薪水不是1600和3000的員工
例如: select ename,sal from emp where sal not in (1600,3000);
七、not
1、第一種寫法:查詢出薪水不是1600和薪水不是3000的員工
例如: select ename,sal from emp where sal <> 1600 and sal <> 3000;
2、第二種寫法:查詢出薪水不是1600和薪水不是3000的員工
例如: select ename,sal from emp where not (sal = 1600 or sal = 3000);
3、第三種寫法:查詢出薪水不是1600和薪水不是3000的員工
例如: select ename,sal from emp where sal not in (1600,3000);
4、查詢出津貼不為null的員工
例如: select * from emp where comm is not null;
八、Like :可以實現模糊查詬,like支持%和下劃線匹配
1、查詢以姓名以 M 開頭的所有員工‘M%’
例如: select ename from emp where ename like “M%”;
2、查詢姓名以N結尾的所有員工‘%N’
例如: select ename from emp where ename like “%N”;
3、查詢姓名中包含O的所有員工‘%O%’
例如: select ename from emp where ename like “%O%”;
4、查詢姓名中第二個字符為A的所有員工‘_A%’
例如: select ename from emp where ename like “_A%”;
5、查詢姓名中倒數第二個字符為E的所有員工‘%E_’
例如: select ename from emp where ename like “%E_”;
6、查詢姓名中第三個字符為N的所有員工姓名‘__R%’
例如: select ename from emp where ename like “R%”;
總結
以上是生活随笔為你收集整理的Mysql条件查询语句(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于软件设计那些事---正交设计
- 下一篇: linux cmake编译源码,linu