• MySQL进阶2:条件查询


    语法
        select   查询列表
        from        表名
        where     筛选条件;

    分类:
        一,按条件表达式筛选
        条件运算符: ><= != <> >= <=


        二,按逻辑表达式筛选
        作用:用于连接条件表达式
        逻辑运算符:&& || !
            and    or  not


        三,模糊查询
                like
                between
                in
                is null

    =======================================================

     一,按条件表达式筛选

    1. #案例一, 查询工资>12000的员工信息
    2. SELECT *
    3. FROM employees
    4. WHERE salary>12000;

     

     

    1. #案例二,查询部门编号不等于90的员工编号和部门编号
    2. SELECT last_name,department_id
    3. FROM employees
    4. WHERE department_id<>90;

     

     二,按逻辑表达式筛选

    1. #案例一,查询工资在1000020000之间的员工名,工资及奖金
    2. SELECT last_name,salary,commission_pct
    3. FROM employees
    4. WHERE salary>=10000 AND salary<=20000;

     

     

    1. #案例二,查询部门编号不是在90-110之间,或者工资高于15000的员工信息
    2. SELECT *
    3. FROM employees
    4. WHERE department_id<90 OR department_id>110 OR salary>15000;

     

     三,模糊查询

    1.like
    特点:一般和通配符搭配使用
    通配符:%任意多个字符,包含0个字符
        _任意单个字符

     

    1. #案例一,查询员工名包含字符a的员工信息
    2. SELECT *
    3. FROM employees
    4. WHERE last_name LIKE '%a%';

     

    1. #案例二,查询员工中第三个字符为n,第五个字符为l的员工名和工资
    2. SELECT last_name,salary
    3. FROM employees
    4. WHERE last_name LIKE'__n_l%';

     

     

    1. #案例三,查询员工名中第二个字符为_的员工名
    2. SELECT last_name
    3. FROM employees
    4. WHERE last_name LIKE '_$_%'ESCAPE'$';
    5. #解释:$此时表示转义,后面的escape解释 其实可以直接\_,即‘_\_%

     #2.between and
    /*
    包含临界值,简洁,两个临界值不能颠倒
    */

    1. #案例一,查询员工编号在100-120之间的员工信息
    2. SELECT *
    3. FROM employees
    4. WHERE employee_id BETWEEN 100 AND 120;

     

    #3.in
    /*
    判断某字段的值是否属于in列表中的某一项
    特点:使用in比or提高语句简洁度
    in列表的值类型必须一致

    1. #案例:查询员工的工种编号是 IT_PROG,AD_VP,AD_PRES的员工员工名和工种编号
    2. SELECT last_name,job_id
    3. FROM employees
    4. WHERE job_id IN('IT_PROG','AD_VP','AD_PRES');

     

    #4.is null
    /*
    is null或is not null判断null
    */

    1. #案例1,查询没有奖金的员工名和奖金率
    2. SELECT last_name,commission_pct
    3. FROM employees
    4. WHERE commission_pct IS NULL;
    5. #案例2,查询有奖金的员工名和奖金率
    6. SELECT last_name,commission_pct
    7. FROM employees
    8. WHERE commission_pct IS NOT NULL;

     

     

    #安全等于  <=>
    #用来判断是否等于,如果等于true

    1. #案例1,查询没有奖金的员工名和奖金率
    2. SELECT last_name,commission_pct
    3. FROM employees
    4. WHERE commission_pct <=> NULL;
    5. #案例二,查询工资为12000的员工信息
    6. SELECT last_name,salary
    7. FROM employees
    8. WHERE salary<=> 12000;

    ======================================================

     

  • 相关阅读:
    【Redis GEO】3、地理位置类型的性能优化及使用限制
    从地址中如何提取或者识别街道?支持模糊地址
    MS | 使用小技巧不完全总结
    Qt-day3
    【开题报告】疫苗在线预约小程序的设计与实现
    C# 图解教程 第5版 —— 第11章 结构
    负载均衡原理分析与源码解读
    使用Go+Lua解决Redis秒杀中库存与超卖问题
    通俗解释魔法命令
    C++学习笔记(二十)
  • 原文地址:https://blog.csdn.net/weixin_61451728/article/details/125442124