2.MYSQL-DQL查询语言学习-条件查询

2.条件查询

#进阶1:条件查询
/*
语法:
运行顺序:
SELECT 查询列表   3
FROM 表名    1
WHERE 筛选条件;   2

分类:
1.按条件表达式筛选 条件运算符:>,<,=,<>,>=,<=
2.按逻辑表达式筛选
逻辑运算符:&&,||,!,AND,OR,NOT
3.模糊查询
LIKE,BETWEEN AND,IS NULL,IN
*/#1按条件表达式筛选
#案例1:查询员工工资大于12000的员工信息
SELECT
	* 
FROM
	employees 
WHERE
	salary > 12000;#案例2:查询部门编号不等于90的员工名和部门编号
SELECT
	first_name,
	department_id 
FROM
	employees 
WHERE
	department_id <> 90;#2.按逻辑表达式筛选
#案例1:工资在10000-20000之间的员工名
SELECT
	first_name 
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;#3.模糊查询
/*LIKE,
特点:1.一般和通配符搭配使用 通配符:% 任意多个字符(包含0个字符)
通配符:_任意单个字符
2.
BETWEEN AND,
IN,
IS NULL,
IS NOT NULL*/#案例1:查询员工信息中包括字符a的员工信息
SELECT
	* 
FROM
	employees 
WHERE
	last_name LIKE '%a%';#%表示通配符
#案例2:查询员工名中第三个字符为E,第五个字符为A的员工名
SELECT
	first_name 
FROM
	employees 
WHERE
	last_name LIKE '__N_L%';#案例3:查询员工名中第二个字符为_的员工名
SELECT
	last_name 
FROM
	employees 
WHERE
	last_name LIKE '_$_%' ESCAPE '$';#3.in
/*含义:判断某字段的值是否属于in列表中的某一项
特点:1.使用in提高语句简洁度
2.in列表的值类型必须统一或者兼容
3.in后小括号内不支持通配符
*/#案例:查询员工的工种编号是 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可以判断NULL值,不能用IS等同于=使用
*/
#案例1:查询有奖金的员工名和奖金率
SELECT
	last_name,
	commission_pct 
FROM
	employees 
WHERE
	commission_pct IS NOT NULL;#安全等于<=>
#案例1:查询没有奖金的员工名和奖金率
SELECT
	last_name,
	commission_pct 
FROM
	employees 
WHERE
	commission_pct <=> NULL;
#案例2:查询工资为12000的员工信息
SELECT
	* 
FROM
	employees 
WHERE
salary <=> 12000;
#IS NULL PK <=>
IS NULL :仅仅可以判断NULL值,可读性较高,建议使用
<=>:既可以判断NULL值,又可以判断普通的数值,可读性较低,不建议使用
发布了13 篇原创文章 · 获赞 2 · 访问量 4300

猜你喜欢

转载自blog.csdn.net/qq_41644888/article/details/104589139
今日推荐