码迷,mamicode.com
首页 > 其他好文 > 详细

5.2 进阶2:条件查询

时间:2021-06-02 15:18:07      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:lse   简介   条件过滤   替换   提高   ast   表达   字符   类型   

5.2 进阶2:条件查询

条件查询:根据条件过滤原始表的数据,查询到想要的数据

5.2.1 语法

select #第三步
	要查询的字段|表达式|常量值|函数
from #第二步
	表明
where #第一步
	条件语句;

5.2.2 查询的分类

  • 条件表达式
    示例:salary>10000
    条件运算符:> < >= <= = != <>(不等于)

  • 逻辑表达式

    ? 示例:salary>10000 && salary<20000

    ? 逻辑运算符:

    		and(&&):两个条件如果同时成立,结果为true,否则为false
    		or(||):两个条件只要有一个成立,结果为true,否则为false
    		not(!):如果条件成立,则not后为false,否则为true
    
  • 模糊查询

    • like
      • %任意多个字符,包含0个字符
      • _ 任意单个字符
    • between and
      • 提高语句的简洁度
      • 包含临界值
      • 两个临界值不能替换
    • in
      1. 使用in函数提高语句简介度
      2. in列表的值要求是同样的类型或兼容
      3. 不支持%或_等任意字符
    • is null(专门用于null的判断)
      • =或<>不能用于判断null值
      • is null或is not null可以判断null值
    • 安全等于:<=>
      • 既可以判断NULL,可以判断相等=

5.2.3 案例

  • 案例1:使用条件表达式,查询工资>12000的员工信息

    SELECT
    *
    FROM 
    employees
    WHERE
    salary>12000
    
  • 案例2:使用条件表达式,查询部门编号不等于90号的员工名和部门编号

    SELECT
    	last_name,
    	department_id
    FROM
    	employees
    WHERE
    	department_id <> 90
    
  • 案例3:使用逻辑表达式,查询工资在10000dao 20000之间的员工名、工资以及奖金

    SELECT
    	last_name,
    	salary,
    	commission_pct
    FROM
    	employees
    WHERE
    	salary>=10000 AND salary<=20000
    
  • 案例4:使用逻辑表达式,查询部门编号不是在90到110之间的,或者工资高于15000的员工信息

    SELECT
    	*
    FROM
    	employees
    WHERE
    	department_id<90 OR department_id>110 OR salary>15000;
    # 或者可以写成	
    SELECT
    	*
    FROM
    	employees
    WHERE
    	NOT(department_id>=90 AND department_id<=110) OR salary>15000;
    
  • 案例5:使用like,查询员工名中包含字符a的员工信息

    #%代表通用的字符,包含0个字符,- _ 任意单个字符
    SELECT
    	*
    FROM
    	employees
    WHERE
    	last_name LIKE ‘%a%‘ 
    
  • 案例6:使用like,查询员工名中第三个字符为n,第五个字符为l的员工名称

    SELECT
    	last_name,
    	salary
    FROM 
    	employees
    WHERE
    	last_name LIKE ‘__n_l%‘
    
  • 案例7:查询员工名中第二个字符为_的

    SELECT
    	last_name
    FROM
    	employees
    WHERE
    	last_name LIKE ‘_\_%‘
    
  • 案例8:使用between and 查询员工编号在100到120之间的员工信息

SELECT
	*
FROM
	employees
WHERE
	employee_id BETWEEN 100 AND 120
  • 案例9:使用in,查询员工的工种编号是 IT_PROG, AD_VP,AD_PRES的一个员工名和工种编号

    SELECT
    	last_name,
    	job_id
    FROM
    	employees
    WHERE
    	job_id = ‘IT_PROT‘ OR job_id = ‘AD_VP‘ OR job_id = ‘AD_PRES‘
    # 或者可以使用In函数
    WHERE
    	job_id IN (‘IT_PROT‘,‘AD_VP‘,‘AD_PRES‘)
    
  • 案例10:使用 is null,查询没有奖金的员工名和奖金率

    SELECT
    	last_name
    	commission_pct
    FROM
    	employees
    WHERE
    	commission_pct IS NOT NULL
    

5.2 进阶2:条件查询

标签:lse   简介   条件过滤   替换   提高   ast   表达   字符   类型   

原文地址:https://www.cnblogs.com/qifanren/p/14814318.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!