【MySQL】MySQL函数学习和总结

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

💫个人格言:"没有罗马,那就自己创造罗马~"
ask for the moon异想天开

文章目录

函数

流程函数

流程函数:可在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函数

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

ifnull函数

sql 复制代码
-- ifnull
select  ifnull('ok','default');
sql 复制代码
select  ifnull('','default');
sql 复制代码
select  ifnull(null, 'default');

case函数

sql 复制代码
-- case when then else end
-- 需求: 查询emp 表的员工姓名和工作地址(北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

-- 首先将员工姓名和工作地址先筛选出来
select name,WORKADDRESS from emp;

-- 再根据需求进行条件筛选
 select
       name,
       case WORKADDRESS when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end
from emp;

case函数

将分数转换为等级

sql 复制代码
-- 案例: 统计班级各学员的成绩,展示的规则如下:
-- >= 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;



函数总结


Exercises

计算我加入CSDN的时间

sql 复制代码
select datediff('2024-2-12','2023-3-14');

相关推荐
DolphinDB10 小时前
集成 Prometheus 与 DolphinDB 规则引擎,构建敏捷监控解决方案
数据库
IvorySQL10 小时前
PostgreSQL 技术日报 (3月10日)|IIoT 性能瓶颈与内核优化新讨论
数据库·postgresql·开源
DBA小马哥14 小时前
时序数据库是什么?能源行业国产化替换的入门必看
数据库·时序数据库
爱可生开源社区16 小时前
某马来西亚游戏公司如何从 SQL Server 迁移至 OceanBase?
数据库
小瓦码J码18 小时前
PostgreSQL表名超长踩坑记
数据库·postgresql
yhyyht18 小时前
InfluxDB入门记录(三)flux-dsl
数据库·后端
IvorySQL1 天前
PostgreSQL 技术日报 (3月9日)|EXPLAIN ANALYZE 计时优化与复制语法讨论
数据库·postgresql·开源
用户8307196840822 天前
Java 告别繁琐数据统计代码!MySQL 8 窗口函数真香
java·sql·mysql
stark张宇2 天前
MySQL 核心内幕:从索引原理、字段选型到日志机制与外键约束,一篇打通数据库任督二脉
数据库·mysql·架构
倔强的石头_2 天前
融合数据库架构实践:关系型、JSON与全文检索的“一库多能”深度解析
数据库