【page】mysql笔记(二) 条件查询

进阶2:条件查询

(1):语法:
SELECT
查询列表
FROM
表名
WHERE
筛选条件;

(2):执行顺序
表名>筛选条件>查询列表

(3):分类

一:按条件表达式筛选
	条件运算符:>  <  =  <>(不等于)  >=  <=
	
二:按逻辑表达式筛选
	逻辑运算符:
		作用:用于连接条件表达式
		and(并) or(或) not(非)
	&&或and:两个条件都为true,结果为true,反之为false
	||或or:只要有一个为true,结果就为true,反之false
	!或not:如果连接的表达式本身为false,结果为true,反之为false
	
三:模糊查询
	like
	between and
	in
	is null
USE myemployees;

一、按条件表达式查询

案例1:查询工资>12000的员工信息

SELECT
	*
FROM
	employees
WHERE
	salary>12000;

案例2:查询部门编号不等于90号的员工名和部门编号

SELECT
	last_name,
	department_id
FROM
	employees
WHERE
	department_id<>90;

二、按逻辑表达式查询

案例1:查询工资在10000到20000之间的员工名,工资以及奖金

SELECT
	last_name,
	salary,
	commission_pct
FROM 
	employees
WHERE
	salary>=10000 AND salary<=20000;

案例2:查询编号部门不是在90到100之间,或者工资高于15000的员工信息

SELECT
	*
FROM
	employees
WHERE
	NOT(department_id>=90 AND department_id<=100) OR salary>15000;

三、模糊查询

1.like

特点:
(1)一般和通配符搭配使用
通配符:
%:任意零个或多个字符
_:任意一个字符

between and
in
is null 或者 is not null

案例1:查询员工名中包含字符a的员工信息

SELECT
	*
FROM
	employees
WHERE
	last_name LIKE '%a%';

案例2:查询员工名中第三个字符为o,第五个字符为l的员工名和工资

SELECT
	last_name,
	salary
FROM
	employees
WHERE
	last_name LIKE '__o_l%';

案例3:查询员工名中第二个字符为_的员工名

SELECT
	last_name
FROM
	employees
WHERE
	last_name LIKE '_\_%';

或者

SELECT
	last_name
FROM
	employees
WHERE
	last_name LIKE '_$_%' ESCAPE '$';

/:系统定义的转义符号
自定义转义符号时,使用 ESCAPE 关键字

2.between and

1.提高简洁度
2.包含临界值
3.两个临界值不要调换顺序

案例1:查询员工编号在100到120之间的员工信息
SELECT
*

FROM
	employees
WHERE
	employee_id>=100 AND employee_id<=120;

#-----------------------------------------------

SELECT
	*
FROM
	employees
WHERE
	employee_id BETWEEN 100 AND 120;

3.in

含义:判断某字段的值是否属于in列表中的一项
特点:
(1).使用in提高语句简洁度
(2).in列表的值类型必须一致或者兼容
(3).不能使用通配符

案例1:查询员工工种编号是 IT_PROG,AD_VD,AD_PRES中的员工名和工种编号

SELECT
	last_name,
	job_id
FROM
	employees
WHERE
	job_id='IT_PROG' OR job_id='AD_VD' OR job_id='AD_PRES';

#---------------------------------------------------------------

SELECT
	last_name,
	job_id
FROM
	employees
WHERE
	job_id IN('IT_PROG','AD_VD','AD_PRES');

4.is null

=或<>不能判断null值
is null或is not null 可以判断null值

案例1:查询没有奖金的员工和奖金率

SELECT
	last_name,
	`commission_pct`
FROM
	employees
WHERE
	commission_pct IS NULL;

5.补充(安全等于 <=>)

is null仅仅可以判断null值,可读性高,建议使用
<=>:既可以判断null值,也可以判断普通数值,可读性低

案例1:查询没有奖金的员工和奖金率

SELECT
	last_name,
	`commission_pct`
FROM
	employees
WHERE
	commission_pct <=> NULL;

案例2:查询工资为12000的员工信息

SELECT
	*
FROM
	employees
WHERE
	salary<=>12000;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值