MySQL入门 DQL语言之二:条件查询

MySQL入门 DQL语言之二:条件查询

#2.条件查询
/*
语法:
    select 
        查询列表
    from
        表名
    where
        筛选条件;
        
赛选条件:最终肯定是true或者false

分类:
    一、按条件表达式筛选
    
    条件运算符:> < = != <> >= <=
    
    二、按逻辑表达式筛选
    逻辑运算符:
    作用:用于连接条件表达式
        && || ! 
        and or not
        
    &&和and:两个条件都为true,结果为true,反正为false
    ||和or:只要有一个条件为true,结果为ture,反之false
    !或not: 如连接条件的本身为false,结果为true,反之为false
    
    三、模糊查询
        关键字有
        like 
        between and
        in
        is null
        is not null
*/
#一、按条件表达式筛选
#案例1.查询工资>12000的员工信息

SELECT 
  * 
FROM
  employees 
WHERE salary > 12000 ;
#查询部门编号不等于90号的员工名和部门编号
SELECT 
  last_name,
  department_id 
FROM
  employees 
WHERE department_id <> 90 ; #货值用 !=
#二、按逻辑表达式筛选
#案例1:按查询工资在10000到20000之间的员工名,工资以及奖金
SELECT 
  last_name,
  salary,
  commission_pct 
FROM
  employees 
WHERE salary >= 10000 AND salary <= 20000 
#案例2:查询部门编号不在90到110之间,或者工资高于15000的员工信息
SELECT 

FROM
employees 
WHERE department_id NOT department_id => 90 
AND department_id <= 110 
OR salary > 15000 ;

#三、模糊查询
/*
like
特点:
①一般和通配符搭配使用
    通配符:
    % 表示任意多个字符,包含0个字符
    _ 下划线表示任意单个字符
between and
in 
is null | is not null
*/
#1.like
#案例1:查询员工名字中包含字符A的员工信息

SELECT 
  * 
FROM
  employees 
WHERE last_name LIKE '%a%' 
##案例2:查询员工名中第三个字符为e,第五个字符为a的员工名和工资
SELECT 
  last_name,
  salary 
FROM
  employees 
WHERE last_name LIKE '__e_a%'
#案例3:查询员工名中第二个字符为_的员工名
 SELECT 
  last_name
FROM
  employees 
WHERE last_name LIKE '_$_%' ESCAPE '$';
#需要使用转义符 LIKE '_\_%'
#可以指定转义符号 ESCAPE '$';

#2.between and
/*
①使用between and 可以提高语句的简洁度
②包含临界值
③两个临界值不能颠倒顺序
*/
#案例1:查询员工编号在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('T_PROG','AD_VP','AD_PRES');

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

SELECT 
  last_name,
  commission_pct 
FROM
  employees 
WHERE commission_pct IS NULL ;

#案例2:查询有奖金的员工名和奖金率
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 
  last_name,
  commission_pct,
  salary
FROM
  employees 
WHERE salary <=> 12000 ;
#is null vs <=>
/*
is null:仅仅可判断null值,可读性较高,建议使用
<=>    :既可以判断null值,又可以判断普通的数值,可读性较低,不建议使用
*/


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值