条件查询

过滤:使用WHERE 子句,将不满足条件的行过滤掉。

比较运算符>、< 、>=、<=、= 、<> !=大于、小于、大于等于、小于等于、等于、不等于、不等于
-BETWEEN …AND…显示在某一区间的值(含头含尾) [ ]
-IN(set)显示在in列表中的值,例:in(100,200)
-LIKE 通配符模糊查询,Like语句中有两个通配符:% 用来匹配多个字符;例first_name like ‘a%’;_ 用来匹配一个字符。例first_name like ‘a_’;
-IS NULL判断是否为空is null; 判断为空;is not null; 判断不为空
逻辑运算符and (&&)多个条件同时成立
-or ( || )多个条件任一成立
-not (!)不成立,例:where not(salary>100);

案例

按条件表达式筛选
1.查询工资>12000的员工信息

SELECT 
    *
FROM
    employees
WHERE
    salary>12000;

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

SELECT 
 *
 FROM
 `employees`
 WHERE
 !(`manager_id`>=90 AND `manager_id`<=110) 
 OR
 `salary`>=15000

按逻辑表达式筛选

1.查询工资在10000到20000之间的员工名、工资以及奖金

SELECT
	CONCAT (`last_name`," ",`first_name`) AS 姓名,
	`salary` 工资,
	IFNULL(`commission_pct`,0) AS 奖金率
FROM
	`employees`
WHERE
	`salary`>=10000
AND
	`salary`<=20000

模糊查询

  • 一般和通配符搭配使用:
    通配符:
    %任意多字符,包含0个字符
    _任意单个字符,

1.查询员工名中包含字符a的员工信息

 SELECT
 *
 FROM
 `employees`
 WHERE
 `first_name` 
 LIKE
 '%a'

2.查询员工名中第三个字符为e,第五个字符为a的员工名和工资

select
    last_name,
    salary
FROM
    employees
WHERE
    last_name LIKE '__e_a%';

特殊案例:
查询员工名中第二个字符为_的员工名
ESCAPE:定义转义标识

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

或者直接使用:

 last_name LIKE '_\_%' ;

between and的用法:

SELECT
   CONCAT (`last_name`," ",`first_name`) AS 姓名,
   `salary` 工资,
   IFNULL(`commission_pct`,0) AS 奖金率
FROM
   `employees`
WHERE
   `salary`>=10000
AND
   `salary`<=20000

可以改为

SELECT
	CONCAT (`last_name`," ",`first_name`) AS 姓名,
	`salary` 工资,
	IFNULL(`commission_pct`,0) AS 奖金率
FROM
	`employees`
WHERE
`salary` BETWEEN 10000 AND 12000

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

SELECT
    last_name,
    job_id
FROM
    employees
WHERE
    job_id = 'IT_PROT' OR job_id = 'AD_VP' OR JOB_ID ='AD_PRES';

修改为

SELECT
    last_name,
    job_id
FROM
    employees
WHERE
    job_id = 'IT_PROT' OR job_id = 'AD_VP' OR JOB_ID ='AD_PRES';

体现了上述第二点
但是与Java中不同的是“=”可以作为判断符使用,而不是“==”

IS NULL

.=或<>不能用于判断null值 is null或is not null 可以判断null值
1.查询没有奖金的员工名和奖金率

SELECT
	`first_name`,
	`commission_pct`
FROM
	`employees`
WHERE
	`commission_pct`
IS NULL

安全等于<=>

1.判断是否等于

SELECT
    last_name,
    salary
FROM
    employees

WHERE 
    salary <=> 12000;

判断是否为null亦可以使用下面的方法

SELECT
	`first_name`,
	`commission_pct`
FROM
	`employees`
WHERE
	`commission_pct`
<=> NULL

IS NULL:仅仅可以判断NULL值,可读性较高,建议使用 <=> :既可以判断NULL值,又可以判断普通的数值,可读性较低

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值