02-DQL语言-02条件查询

在这里插入图片描述

理论

一、语法

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

二、筛选条件的分类

1、简单条件运算符

> <   =   <>  !=  >=   <=   <=>#安全等于

2、逻辑运算符

&&  and
||  orNot

3、模糊查询

like#一般搭建通配符使用,可以判断字符型数值或数值型
通配符:%任意多个字符,_任意单个字符
between and
in
is null/is not null

is null PK <=>

普通类型的数值Null可读性
Is null×
<=>×

案例

语法:
select 查询列表
from 表名
where 筛选条件; 分类:

一、按条件表达式筛选
条件运算符:> < = != <> >= <=

二、按逻辑表达式筛选
逻辑运算符:
作用:用于连接条件表达式
    && || !
    and or not

%%和and:两个条件都为true,结果为true,反之为false
||或or:只要有一个条件为true,结果为true,反之为false
!或not:如果连续的条件本身为falase,结果为true,反之为false

三、模糊查询
    like
    beteen and
    in
    is null

一、按条件表达式筛选

#案例1;工资大于12000的员工信息

SELECT *
FROM employees
WHERE salary>12000;

#案例2:部门编号不等于90的员工和部门编号

SELECT
    `last_name` AS 名字,
    `department_id` AS 部门编号
FROM employees
WHERE department_id <> 90;

二、按逻辑表达式筛选

#案例1:查询工资在10000到20000之间的员工和奖金

SELECT
    last_name AS 名字,
    salary AS 工资,
    `commission_pct` AS 奖金
FROM employees
WHERE salary>=10000 AND salary<=20000 

#案例2:查询部门编号不是在90到110之间,或者工资高于15000的员工信息

SELECT *
FROM employees
WHERE
    NOT(`department_id`>=90 AND `department_id`<=100) OR salary>15000

三、模糊查询

like 特点: ①一般和通配符使用
通配符:
% 任意多个字符
_ 任意单个字符 between and in is null | is not null

#1.like
#案例1:查询员工中包含字符a的员工信息

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

#案例2:查询员工名中第三个字符为u,第五个字符为l的员工信息

SELECT *
FROM employees
WHERE last_name LIKE '__u_l%'

#案例3:查询员工中第二个字符为_的员工名(escape 转意字符)

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

#2.between and

①使用between and可以提高语句的简洁度
②包含临界值
③两个临界值不能调换顺序employees

#案例1:查询员工编号在100到120之间的员工信息

SELECT *
FROM employees
WHERE `department_id`>=100 AND `department_id`<=120;
    
#-------------------------------
SELECT *
FROM employees
WHERE `department_id` BETWEEN 100 AND 120;

#3.in

含义:判断某字段的值是否属于in列表中的某一项 特点:
①使用in提高语句简洁度
②in列表的值类型必须一致或兼容

#案例:查询工种编号AD_VP、IT_PROG的员工信息

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

#4.is null
#案例1:查询没有奖金的员工名和奖金率

SELECT last_name ,`commission_pct`
FROM employees
WHERE `commission_pct` IS NULL;
#-------------不为0----------
SELECT last_name ,`commission_pct`
FROM employees
WHERE `commission_pct` IS NOT NULL;

#案例2:查询工资为12000的员工信息

SELECT last_name ,`commission_pct`
FROM employees
WHERE salary <=> 12000;
#-----------错误示范—----------
SELECT last_name ,`commission_pct`
FROM employees
WHERE `commission_pct` IS 12000;

#is null pk <=>
IS NULL:仅可以判断NULL值,可读性较高,建议使用
<=> :既可以判断NULL值,又可以判断普通的数值,可读性较低
#案例讲解
#2.查询员工号为123的员工的姓名和部门号和年薪

SELECT last_name, `department_id`,`salary`
FROM employees
WHERE `manager_id` <=> 123;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值