0


SQL语句中的条件查询

条件查询:
* 什么是条件查询?不是将表中所有数据都查出来,而是查询出符合条件的。
* 语法格式:
select
字段1,字段2,...
from
表名
where
条件;

    * 具体条件有:
   【=、<、<=、>=、>、!=或<>、between..and..、is null(is not null)、and、or、in(not in)】
 
 实例:
     [= 等于]
         **查询薪资等于800的员工编号、姓名及薪资:**
         select empno,ename,sal from emp where sal = 800;
         **查询SMITH员工的编号及薪资:**
         select empno,sal from emp where ename = 'SMITH';(字符串使用单引号括起来)

    [< 小于]
         **查询薪资小于等于2000的员工编号、姓名及薪资:**
         select empno,ename,sal from emp where sal < 2000;

    [<= 小于等于]
         **在员工信息表中查询薪资小于等于3000的员工编号、姓名及薪资:**
         select empno,ename,sal from emp where sal <= 3000;

    [> 大于]
         **在员工信息表中查询薪资大于2500的员工编号、姓名及薪资:**
         select empno,ename,sal from emp where sal > 2500;

    [>= 大于等于]
         **在员工信息表中查询薪资大于等于3000的员工编号、姓名及薪资:**
         select empno,ename,sal from emp where sal >= 3000;

    [<>或!= 不等于]
         **在员工信息表中查询薪资不等于3000的员工编号、姓名及薪资:**
         select empno,ename,sal from emp where sal != 3000;
         select empno,ename,sal from emp where sal <> 3000;

    [between..and..   等同于   >= and <=   两个值之间]
         **查询薪资在2450到3000之间的员工编号、姓名和薪资:**
         select empno,ename,sal from emp where sal >= 2450 and sal <= 3000;
         select empno,ename,sal from emp where sal between 2450 and 3000;

            注意:between..and.. 这个语句必须遵循左小右大
 
     [is null 为空(is not null  不为空)]

    **关于MySQL中的null:
     在MySQL中null表示不确定的意思,表示一个不确定的值,这个值既然是不确定的,因此无法进行任何运算。**
 **查询哪些员工的津贴/补助为空(null):**
 select empno,ename,sal,comm from emp where comm = null;(这是错误写法)
 select empno,ename,sal,comm from emp where comm is null;(这是正确写法)

**【注意:在数据库当中null不能使用等号进行衡量,需要使用is null。
       因为数据库中的null代表什么也没有,它不是一个值,所以不能使用等号衡量。】**

** 查询哪些员工的津贴/补助不为空(null)**(null 和 0 是两回事):
select empno,ename,sal,comm from emp where comm is not null;

[and 并且]  
         **查询工作岗位是MANAGE并且工资大于2500的员工信息:**
         select empno,ename,job,sal from emp where job = 'MANAGER' and sal > 2500;

[or 或者]
         **查询工作岗位是MANAGE或者是SALESMAN的员工:**
         select empno,ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';

   **注意:and 和 or 同时出现 ,有优先级的问题  (and 的优先级高于 or)**
         **查询工资大于2500并且部门编号为10或者20的所有员工:**
         select * from emp where sal > 2500 and (deptno = 10 or deptno = 20);

[in 包含,相当于多个or(not in 不在这个范围中)]    
         **查询薪资是800或者薪资是5000的员工:(以下两种写法都行)**
         select * from emp where sal = 800 or sal = 5000;
         select * from emp where sal in (800,5000);(这个表示的不是800~5000的区间,而是两个值。)

        **查询工作岗位是MANAGER或者工作岗位是SALESMAN的员工:(下面两种写法都行)**
         select * from emp where job = 'MANAGER' or job = 'SALESMAN';
         select * from emp where job in ('MANAGER','SALESMAN');

[not in不是/不包括括号中的几个值]
         **查询薪资不是800、3000、5000的所有员工:**
         select * from emp where sal not in (800,3000,5000);

 【not 取反,主要用在 is 或 in 中;   比如:is null (**是 null**)---> is not null(**不是 null**)
                             in(**包含**) --------> not in(**不包含**)】
标签: 数据库 sql mysql

本文转载自: https://blog.csdn.net/heliuerya/article/details/128575783
版权归原作者 heliuerya 所有, 如有侵权,请联系我们删除。

“SQL语句中的条件查询”的评论:

还没有评论