DQL语言2:条件查询

本文详细介绍了SQL查询中的条件表达式、逻辑表达式和模糊查询等高级用法,包括>、<、=等条件运算符,and、or、not等逻辑运算符,以及like、between and、in、is null等模糊查询技巧。通过多个案例展示了如何筛选特定数据,提升SQL查询效率。
摘要由CSDN通过智能技术生成

进阶2:条件查询

语法: (括号里是执行顺序)

select
		查询列表(3)
	from
		表名(1)
	where
		筛选条件(2);

分类:

一、按条件表达式筛选

条件运算符:> < = != <>(不等于) >= <=
#按条件表达式筛选
-- 案例1:查询 工资>12000的员工信息
SELECT * FROM employees WHERE salary>12000;

-- 案例2:查询部门编号不等于90号的员工名和部门编号
 SELECT
  CONCAT (last_name, first_name) AS 员工姓名,
  department_id
FROM
  employees
WHERE department_id <> 90;

二、按逻辑表达式筛选

逻辑运算符:
	&& || !
	and or not
#二、按逻辑表达式筛选
 -- 案例1:查询工资在10000~20000之间的员工名、工资以及奖金率
 SELECT
  CONCAT (last_name, ' ', first_name) AS 员工姓名,
  salary,
  commission_pct
FROM
  employees
WHERE salary >= 10000
  AND salary <= 20000;

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

三、模糊查询

like(一般和通配符搭配使用)
between and
in 
is null, is not null
安全等于 <=>	
1.  like
①一般和通配符搭配使用
通配符: 
	% 表示任意多个字符,包含0个字符
	_ 便是任意单个字符  
	\ 转义字符

-- 案例一:查询员工名中包含字符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 '_\_%';


2.  between   and
①使用between and 可以提高语句的简洁度
②包含临界值
③两个临界值不能颠倒
-- 案例一:查询员工编号在100到120之间的员工信息
SELECT * FROM employees WHERE employee_id BETWEEN 100 AND 120;


3.  in
含义:判断某字段的值是否属于in列表中的某一项
特点:
	①使用in提高简洁度
	②in列表的值类型必须一致或兼容
-- 案例:查询工种编号在 IT_PROG, AD_VP, AD_PRES 中的员工的员工名和工种编号
SELECT last_name,job_id FROM employees
	WHERE job_id IN ('IT_PROG', 'AD_VP', 'AD_PRES');


4.  is nullis not null
-- 案例一:查询 没有 奖金率的员工名和奖金率
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;


5.   安全等于 <=>
1.可作为普通运算符的=
2.也可以用于判断是否是NULL 
	如:where salary is NULL/(is not NULL) -> where salary <=>NULL 
	
-- 案例一:查询 没有 奖金的员工名和奖金率
SELECT last_name,commission_pct FROM employees 
	WHERE `commission_pct` <=> NULL;
	
-- 案例二:查询工资为12000的员工信息
SELECT * FROM employees WHERE salary <=> 12000;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值