SQL语句中的条件查询

条件查询用于从数据库中选取满足特定条件的数据,基本语法是SELECT...FROM...WHERE,涉及的比较运算符包括=,<,>,<=,>=,!=,BETWEEN,ISNULL等。例如,查询薪资等于800的员工,使用WHERE子句:SELECTempno,ename,salFROMempWHEREsal=800。ISNULL和ISNOTNULL用于检查字段是否为空。AND和OR用于组合多个条件,IN和NOTIN用于匹配列表中的值。
摘要由CSDN通过智能技术生成

条件查询:
    * 什么是条件查询?不是将表中所有数据都查出来,而是查询出符合条件的。
        * 语法格式:
                    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(不包含)】

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值