MySQL学习 (二)条件查询

MySQL学习 (二)条件查询

语法:

select
	查询列表 
from
	表名
where
	筛选条件;

分类:
一、按条件表达式筛选
条件运算符:> < = != <> >= <=
二、按逻辑表达式筛选
逻辑运算符:&& || ! 对应 and or not
三、模糊查询
like 、between and 、in 、is null


一、按条件表达式筛选

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

SELECT
	*
FROM
	employees
WHERE
	salary > 12000;

案例2: 查询部门编号不等于90号的员工名和部门编号
SELECT
	last_name,
	department_id
FROM
	employees
WHERE
	department_id != 90;

二、按逻辑表达式筛选

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

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

案例4: 查询部门编号不是在90到110之间,或者工资高于15000的员工信息
SELECT
	*
FROM
	employees
WHERE
	NOT (
		department_id >= 90
		AND department_id <= 110
	)
OR salary > 15000;

三、模糊查询

1.like

特点:一般和通配符搭配使用
通配符:
(1)% 代表任意多个字符,也包含0个字符
(2)_ 代表任意单个字符


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

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

案例6: 查询员工名中第三个字符为n,第五个字符为l的员工名和工资
SELECT
	last_name,
	salary
FROM
	employees
WHERE
	last_name LIKE '__n_l%';

案例7: 查询员工名中第二个字符为_的员工名(用转义)
SELECT
	last_name
FROM
	employees
WHERE
	last_name LIKE '_\_%'; # 转义 LIKE '_$_%' ESCAPE '$'

2.between and

案例8: 查询员工编号在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列表中的某一项
特点:
使用in提高语句简介度
in列表中的值类型必须一致或兼容,不能出现带有通配符的值


案例9: 查询员工的工种编号是IT_PROG、AD_VP、AD_PRES中的一个的员工名和工种编号

SELECT 
	last_name,job_id
FROM 
	employees
WHERE 
	job_id = 'IT_PROG' OR job_id = 'AD_VP' OR job_id = 'AD_PRES';
#--------------------------------------------------
SELECT 
	last_name,job_id
FROM 
	employees
WHERE 
	job_id IN ('IT_PROG','AD_VP','AD_PRES');

4.is null

注意: =或<>不能用来判断null
is null 或 is not null可以

案例10: 查询没有奖金的员工名

SELECT 
	last_name
FROM 
	employees
WHERE 
	commission_pct IS NULL;


案例11: 查询有奖金的员工名
SELECT 
	last_name
FROM 
	employees
WHERE 
	commission_pct IS NOT NULL;

5.补充: 安全等于 <=>

案例12: 查询没有奖金的员工名

SELECT 
	last_name
FROM 
	employees
WHERE 
	commission_pct <=> NULL;

案例13: 查询工资为12000的员工名
SELECT 
	last_name
FROM 
	employees
WHERE 
	salary <=> 12000;

is null VS <=>

is null: 仅仅可以判断null,可读性较高,建议使用
<=>: 既可以判断null,又可以判断普通的数值,可读性较低
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值