5.2 进阶2:条件查询
Posted qifanren
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.2 进阶2:条件查询相关的知识,希望对你有一定的参考价值。
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
- 使用in函数提高语句简介度
- in列表的值要求是同样的类型或兼容
- 不支持%或_等任意字符
- is null(专门用于null的判断)
- =或<>不能用于判断null值
- is null或is not null可以判断null值
- 安全等于:<=>
- 既可以判断NULL,可以判断相等=
- like
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:条件查询的主要内容,如果未能解决你的问题,请参考以下文章
Mysql查询相关知识(进阶一 基础查询 select,进阶二 where(条件查询))
MySQL 进阶 索引 -- 索引使用原则(验证索引效率最左前缀法则范围查询索引失效情况SQL提示覆盖索引前缀索引单列索引与联合索引)索引设计原则