#进阶2:条件查询
/*
select
查询列表
from
表名
where
筛选条件
分类:
一、按条件表达式筛选-条件运算符:
> < = != <> >= <=
二、逻辑表达式筛选--作用连接条件表达式
-逻辑运算符:&& || !
and or not
三、模糊查询
like
between and
in
is null
*/
#一、按条件表达式筛选
#案例一:查询工资大于12000
SELECT * FROM employees WHERE salary > 12000;
#案例二:查询部门编号不等于90号的员工名和部门编号
SELECT `first_name`,`last_name`,`department_id`FROM `employees`
WHERE `department_id`!=90;
#二、按逻辑表达式筛选
#案例1:工资在一万到两万之间
SELECT `last_name`,`salary`,`hiredate`FROM `employees`
WHERE `salary`>=10000 AND `salary`=< 20000;
#案例2:部门编号不是在90-110之间,或工资高于15000
SELECT * FROM`employees`
WHERE `department_id`<90 OR `department_id`> 110 OR`salary`>15000
#三、模糊查询
/*
like
between and
in
is null
*/
#1.like
/*一般和通配符搭配使用
通配符:%任意多个字符(包含零字符)
*/
#案例一、员工名包含字符a
SELECT * FROM`employees` WHERE `last_name`LIKE '%a%';
#案例二、员工名第三个字符为e,第五个字符为a的员工名
SELECT `last_name`,`salary` FROM `employees`
WHERE `last_name` LIKE '__n_l%';
#案例三、员工名第二个字符为_(使用转义符\)
SELECT `last_name`,`salary` FROM `employees`
WHERE last_name LIKE '_\_%';
#WHERE last_name LIKE '_s_%' escape 's'(#escape 表明转义字符)
#2.between and (在...之间)(> = and < =)
/*
提高语句简洁度
包含临界值
临界值不能调换顺序
*/
#案例1:员工编号在100到120之间的员工信息
SELECT * FROM`employees`WHERE `employee_id`BETWEEN 100 AND 120;
#3.in(=)
#判断某字段的值是否属于in列表中的一项
/*
提高语句简洁度
in列表值类型必须统一或兼容
in列表不能使用通配符
*/
#案例:查询员工编号是 IT_PROG、AD_VP中的一个员工名
SELECT `last_name`,`job_id` FROM`employees`
WHERE `job_id` IN ('IT_PROG','AD_VP');
#4.is null
/*
= 或 <> 不能用于判断null值
is null和is not null 可以判断null值
*/
#案例1:查询没有奖金的员工名和奖金率
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;
SELECT * FROM employees WHERE salary <=> 12000;
MySQL学习记录(二)--条件查询
最新推荐文章于 2024-07-25 13:36:08 发布