Mysql条件查询

时间:2020-03-21 14:08:16   收藏:0   阅读:52

#条件查询
/*

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

分类:
1.按条件表达式筛选
条件运算符:> < = !=(<>) <= >=
2.按逻辑表达式筛选
逻辑运算符:&& || !
and or not
3.模糊查询:like between and in is null
*/

#按条件表达式筛选
#查询工资>12000的员工信息
SELECT * FROM employees WHERE salary > 12000;
#部门编号不等于90号的员工名和部门编号
SELECT last_name,department_id FROM employees WHERE department_id != 90;
#查询工资在10000到20000之间的员工名,工资以及奖金
SELECT last_name,salary,commission_pct FROM employees WHERE salary>=10000 AND salary<=20000;
#查询部门编号不是在90到110之间的,或者工资高于15000的员工信息
SELECT * FROM employees WHERE department_id<90 OR department_id>110 OR salary>15000;

#模糊查询
/*
like: 1.一般和通配符搭配使用,通配符:% 任意多个字符包含0个 _任意单个字符

between and:1.提高语句简洁度,包含边界值
in :判断某字段的值是否属于in列表中的某一项 2.不支持通配符
is null | is not null:= <>不能判断null值
*/

#查询员工命中包含字符a的员工信息
SELECT * FROM employees WHERE last_name LIKE ‘%a%‘;
#查询员工名中第三个字符为e,第五个字符为a的员工名和工资
SELECT last_name,salary FROM employees WHERE last_name LIKE ‘__e_a%‘;

#查询员工名中第二个字符为_的员工名
SELECT last_name FROM employees WHERE last_name LIKE ‘_\_%‘;


#查询员工编号在100到120之间的员工信息
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;

#in
#查询员工的工种编号是IT_PROG AD_VP AD_PRES中的一个员工名和工种编号
SELECT last_name,job_id FROM employees WHERE job_id IN (‘IT_PROG‘,‘AD_VP‘,‘AD_PRES‘);

#查询没有奖金的员工名和奖金率
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NULL;
#有奖金
SELECT last_name,commission_pct FROM employees WHERE commission_pct IS NOT NULL;

#安全等于 <=> 判断是否等于
SELECT last_name,commission_pct FROM employees WHERE commission_pct <=> NULL;

-- is null 仅仅只能判断null值,<=>既可以判断null值也可以判断普通数值,但可读性差

经典面试题:SELECT * FROM employees;和SELECT * FROM employees WHERE commission_pct
LIKE ‘%%‘ AND last_name LIKE ‘%%‘;
不一样!如果判断的字段有NULL值,LIKE ‘%%‘ 表示查询列有不为NULL的全部值

原文:https://www.cnblogs.com/enoch-m/p/12539054.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!