相关推荐recommended
【MySQL】MySQL函数学习和总结
作者:mmseoamin日期:2024-02-20

【MySQL】MySQL函数学习和总结,](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center),第1张

🌈个人主页: Aileen_0v0

🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法

💫个人格言:“没有罗马,那就自己创造罗马~”

文章目录

  • `函数`
    • `流程函数`
    • `if函数`
    • `ifnull函数`
    • `case函数`
    • `case函数`
    • `函数总结`
      • `Exercises`

        函数

        流程函数

        流程函数:可在SQL语句中实现条件筛选,提高语句效率。

        函数功能
        if(value,t,f)如果value为true,则返回t,否则返回f
        ifnull(value1,value2) 如果value1不为空,则返回value1,否则返回value2
        case when [ val1 ] then [ res1 ] ... else [ default ] end 如果val1为true,返回
        case [ expr ] when [ val1 ] then [ res1 ] ... else [ default ] end 如果expr的值等于val1,返回res1,… 否则返回default默认值

        if函数

        -- 流程控制函数
        -- if
        select if(false,'Aileen','Betty');
        

        【MySQL】MySQL函数学习和总结,在这里插入图片描述,第2张

        ifnull函数

        -- ifnull
        select  ifnull('ok','default');
        

        【MySQL】MySQL函数学习和总结,在这里插入图片描述,第3张

        select  ifnull('','default');
        

        【MySQL】MySQL函数学习和总结,在这里插入图片描述,第4张

        select  ifnull(null, 'default');
        

        【MySQL】MySQL函数学习和总结,在这里插入图片描述,第5张


        case函数

        -- case when then else end
        -- 需求: 查询emp 表的员工姓名和工作地址(北京/上海 ----> 一线城市 , 其他 ----> 二线城市)
        -- 首先将员工姓名和工作地址先筛选出来
        select name,WORKADDRESS from emp;
        -- 再根据需求进行条件筛选
         select
               name,
               case WORKADDRESS when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end
        from emp;
        

        【MySQL】MySQL函数学习和总结,在这里插入图片描述,第6张


        case函数

        将分数转换为等级

        -- 案例: 统计班级各学员的成绩,展示的规则如下:
        -- >= 85, 展示优秀
        -- >= 60, 展示及格
        -- 否则, 展示不及格
        create table score(
            id int comment  'ID',
            name varchar(20) comment '姓名',
            math int comment  '数学',
            english int comment '英语',
            chinese int comment '语文'
        ) comment '学员成绩表';
        insert into score(id, name, math, english, chinese) values (1,'Tom',67,88,95),(2,'Rose',23,66,90),(3,'Jack',56,98,76);
        select
            id,
            name,
            (case when chinese >= 85 then '优秀' when chinese >= 60 then '及格' else '不及格' end ) '语文',
            (case when english >= 85 then '优秀' when english >= 60 then '及格' else '不及格' end ) '英语',
            (case when math >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end ) '数学'
        from score;
        

        【MySQL】MySQL函数学习和总结,在这里插入图片描述,第7张

        【MySQL】MySQL函数学习和总结,在这里插入图片描述,第8张


        函数总结

        【MySQL】MySQL函数学习和总结,在这里插入图片描述,第9张


        Exercises

        计算我加入CSDN的时间

        select datediff('2024-2-12','2023-3-14');
        

        【MySQL】MySQL函数学习和总结,在这里插入图片描述,第10张【MySQL】MySQL函数学习和总结,](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center),第11张

        【MySQL】MySQL函数学习和总结,](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center),第12张