SQL基础(2)——条件查询

本文详细解读SQL查询中的条件表达式、逻辑表达式及模糊查询技巧,包括案例演示,如筛选高薪员工、逻辑组合查询和使用LIKE、IN和ISNULL进行高级搜索。适合深入理解SQL查询的开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

条件查询

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

一、按条件表达式:>;<;>=;<=;<>;!=

在这里插入图片描述

在这里插入图片描述

#一、按条件表达式筛选
#案例1:查询工资>12000的员工信息
SELECT *
FROM 
     employees
WHERE 
     salary>12000
#案例2:查询部门编号不等于90号的员工名和部门编号
SELECT 
    department_id, last_name
FROM 
    employees
WHERE
    department_id <>90;

二、按逻辑表达式筛选


#二、按逻辑表达式筛选
#案例1:查询工资在10000早20000之间的员工名,工资奖金
SELECT 
     last_name,commission_pct,salary
FROM 
     employees
WHERE
     salary>=10000 AND slary<=20000;
#案例二、查询部门编号不是在100-110之间或者工资高于15000的员工信息
#写法1
SELECT 
      *
FROM 
    employees
WHERE 
     department_id>110 OR department_id<100 or   salary > 15000
#写法2
SELECT 
      *
FROM 
    employees
WHERE 
     NOT(department_id>100 AND department_id<110) or salary > 15000

三、模糊查询

like;in;is null;between and;

#三、模糊查询
#案例1:查询员工名中包含字符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 '_\_%'
#\为转译字符
#同样可以使用其它字符进行转译
SELECT 
		last_name
FROM
		employees
WHERE 
		last_name LIKE '_$_%' ESCAPE '$'
#between and 
#案例1:查询员工编号在100-120之间的员工信息
#写法一
SELECT 
		*
FROM 
		employees
WHERE
		employees_id>=100 AND employees_id<=120;
#写法二
SELECT 
		*
FROM 
		employees
WHERE
		employees_id between 100 AND 120;

在这里插入图片描述

#3.in:用于判断某字段的值是否属于in列表中的某一项——提高语句简洁度,in列表的值类型必须兼容或一致,不支持通配符的使用
#案例:查询员工的工种编号 IT_PROG,AD_VP,AD_PRES的一个员工名和工种编号
#写法1
SELECT 
		last_name,job_id
FROM
		employees
WHERE
		job_id ='IT_PROG' OR job_id ='AD_VP' OR job_id ='AD_PRES' ;
#写法2
SELECT 
		last_name,job_id
FROM
		employees
WHERE
		job_id in('IT_PROG','AD_VP','AD_PRES') ;
#4.is null
#案例1:查询没有奖金的员工名和奖金率
SELECT 
		last_name,commission_pct
FROM
		employees
WHERE
		commission_pct is NULL
#案例2 查询工资为12000的员工信息
SELECT
		*
FROM
		employees
WHERE
		salary <=> 120000;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#查询员工号为176的员工姓名和部门号和年薪
SELECT
		last_name,department_id,salary*12*(1+ifnull(commission_pct,0)) AS 年薪
FROM
		employees
WHERE
		employees_id=176

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值