Mysql的条件查询

一、

语法:

        select

                    查询列表

         from

                   表名

        where

                    筛选条件;

筛选条件的分类:

        1.按条件表达式筛选   ——————   e.g.条件运算符:> <  = !=或<> >= <=

        2.按逻辑表达式筛选  ——————  e.g. 逻辑运算符:&&或and  ||或or  !或not 

        3.模糊查询  —————— e.g. like 、  between and   、  in  、    is null

2.执行顺序:①表名,先看库里面有没有表

                     ②筛选

                     ③查询列表

二、例子

#查询employees库里的员工工资在10000到20000之间的员工姓氏和工资和奖金率
SELECT
	last_name,
	salary,
	commission_pct
FROM
	employees
WHERE
	salary<=20000 AND salary>=10000;
  

模糊查询:

①、LIKE

#查询员工名中包含字符段a的员工信息
SELECT
	*
FROM
	employees
WHERE
	last_name LIKE '%a%';

运算符like的特点:一般和通配符搭配使用

                                通配符:% 任意多个字符,包含零个

                                               _ 任意单个字符

LIKE的效果和  last_name REGEXP='[a]';相同

#查询员工中第三个字母为e第五个字母为a的员工名
SELECT
    last_name
FROM
    employees
WHERE
    last_name LIKE'__e_a%';
#查询员工名第二个字符为_的员工信息
SELECT
    *
FROM 
    employees
WHERE
    last_name LIKE '-\-%';  #\是转义字符

②、BETWEEN  AND

#查询员工编号在100到200之间的员工信息(用between and可以避免重复写employee_id,提高语言简洁度)
SELECT
       *
FROM
    employees
WHERE
    employee_id<200 AND employee>100;
或
SELECT
       *
FROM
    employees
WHERE
    employee_id BETWEEN 100 AND 200;

运算符BETWEEN AND的特点:1.提高语言简洁度

                                                    2.包含界值

                                                    3.两个临界值不要调换顺序(大于等于左边的值,小于等于右边的值)

③、

#查询员工的工种编号是IT_PROG、AD_VP中的员工名和工种编号
SELECT
        last_name,
        job_id
FROM
        employees
WHERE
        job_id='IT_PROG' OR job_id='AD_VP';

用IN:
SELECT
        last_name,
        job_id
FROM
        employees
WHERE
        job_id IN('IT_PROG' , 'AD_VP');

关键词IN特点:1.判断某字段的内容是否属于IN列表中的某一项

                         2.提高简洁度

                         3. IN列表的值类型要统一(或兼容)。

                         4.不支持通配符

④、IS NULL

#查询没有奖金的员工名和奖金率
SELECT
	last_name,
	commission_pct
FROM
	employees
WHERE
	commission_pct IS NOT NULL;

关键词IS NULL特点:1.< 、> 、 =这三个符号不能用于判断null值

⑤、安全等于 <=>

可以判断null和数值,但可读性低

非条件查询的ifnull的用法

#查询员工姓名,部门号,年薪(salary是月薪)
SELECT
	last_name,
	department_id,
	salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM
	employees;

如果commision_pct为null,则返回0.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值