Java最全MySQL常用判断函数总结!!看你都用过没,阿里珍藏版Java框架体系架构手写文档

最后总结

ActiveMQ+Kafka+RabbitMQ学习笔记PDF

image.png

  • RabbitMQ实战指南

image.png

  • 手写RocketMQ笔记

image.png

  • 手写“Kafka笔记”

image

关于分布式,限流+缓存+缓存,这三大技术(包含:ZooKeeper+Nginx+MongoDB+memcached+Redis+ActiveMQ+Kafka+RabbitMQ)等等。这些相关的面试也好,还有手写以及学习的笔记PDF,都是啃透分布式技术必不可少的宝藏。以上的每一个专题每一个小分类都有相关的介绍,并且小编也已经将其整理成PDF啦

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

分组查询SQL:

SELECT

SUM(c.users_count) AS ‘用户数量’,

CASE c.city

WHEN ‘济南’ THEN ‘山东省’

WHEN ‘青岛’ THEN ‘山东省’

WHEN ‘枣庄’ THEN ‘山东省’

WHEN ‘广州’ THEN ‘广东省’

WHEN ‘深圳’ THEN ‘广东省’

ELSE ‘其他’ END AS ‘归属省’

FROM

users_area c

GROUP BY CASE c.city

WHEN ‘济南’ THEN ‘山东省’

WHEN ‘青岛’ THEN ‘山东省’

WHEN ‘枣庄’ THEN ‘山东省’

WHEN ‘广州’ THEN ‘广东省’

WHEN ‘深圳’ THEN ‘广东省’

ELSE ‘其他’ END;

查询结果:

mysql> SELECT

-> SUM(c.users_count) AS ‘用户数量’,

-> CASE c.city

-> WHEN ‘济南’ THEN ‘山东省’

-> WHEN ‘青岛’ THEN ‘山东省’

-> WHEN ‘枣庄’ THEN ‘山东省’

-> WHEN ‘广州’ THEN ‘广东省’

-> WHEN ‘深圳’ THEN ‘广东省’

-> ELSE ‘其他’ END AS ‘归属省’

-> FROM

-> users_area c

-> GROUP BY CASE c.city

-> WHEN ‘济南’ THEN ‘山东省’

-> WHEN ‘青岛’ THEN ‘山东省’

-> WHEN ‘枣庄’ THEN ‘山东省’

-> WHEN ‘广州’ THEN ‘广东省’

-> WHEN ‘深圳’ THEN ‘广东省’

-> ELSE ‘其他’ END;

±-------------±----------+

| 用户数量 | 归属省 |

±-------------±----------+

| 1230 | 其他 |

| 520 | 山东省 |

| 750 | 广东省 |

±-------------±----------+

3 rows in set (0.00 sec)


二、函数:IF(expr,if_true_expr,if_false_expr)

===========================================================================================================

在mysql中if()函数的用法类似于java中的三目表达式,具体语法如下:

IF(expr,if_true_expr,if_false_expr),如果expr的值为true,则返回if_true_expr的值,如果expr的值为false,则返回if_false_expr的值。

  • 使用场景1:IF函数通常用于真实数据被替代的列;如性别,我们在库中一般用tinyint存储,男 = 1,女 = 2;如查询时需转成字符,该场景就适用于IF函数。

原数据:

mysql> select * from student;

±—±----------±----±--------±----------+

| ID | NAME | SEX | GRADE | HOBBY |

±—±----------±----±--------±----------+

| 1 | 陈哈哈 | 1 | 9年级 | 上网 |

| 2 | 扈亚鹏 | 1 | 9年级 | 美食 |

| 3 | 刘晓莉 | 2 | 9年级 | 金希澈 |

| 5 | 徐立楠 | 2 | 9年级 | 阅读 |

| 6 | 顾昊 | 1 | 9年级 | 篮球 |

| 7 | 陈子凝 | 2 | 9年级 | 看电影 |

| 14 | 朱志鹏 | 1 | 9年级 | 看小说 |

| 15 | 贾旭 | 1 | 9年级 | 吹牛逼 |

| 19 | 李昂 | 1 | 9年级 | 看片儿 |

±—±----------±----±--------±----------+

9 rows in set (0.00 sec)

处理sex字段为字符格式展示;

mysql> SELECT NAME,IF(sex = 1,‘男’,‘女’) FROM student;

±----------±------------------------+

| NAME | IF(sex = 1,‘男’,‘女’) |

±----------±------------------------+

| 陈哈哈 | 男 |

| 扈亚鹏 | 男 |

| 刘晓莉 | 女 |

| 徐立楠 | 女 |

| 顾昊 | 男 |

| 陈子凝 | 女 |

| 朱志鹏 | 男 |

| 贾旭 | 男 |

| 李昂 | 男 |

±----------±------------------------+

9 rows in set (0.00 sec)

如果将(1,2)格式数据改为(‘男’,‘女’)也可以通过IF函数修改(记得先修改列类型),SQL如下:

mysql> UPDATE student set sex = IF(sex = 1,‘男’,‘女’);

Query OK, 9 rows affected (0.06 sec)

Rows matched: 9 Changed: 9 Warnings: 0

修改后数据:

mysql> select * from student;

±—±----------±----±--------±----------+

| ID | NAME | SEX | GRADE | HOBBY |

±—±----------±----±--------±----------+

| 1 | 陈哈哈 | 男 | 9年级 | 上网 |

| 2 | 扈亚鹏 | 男 | 9年级 | 美食 |

| 3 | 刘晓莉 | 女 | 9年级 | 金希澈 |

| 5 | 徐立楠 | 女 | 9年级 | 阅读 |

| 6 | 顾昊 | 男 | 9年级 | 篮球 |

| 7 | 陈子凝 | 女 | 9年级 | 看电影 |

| 14 | 朱志鹏 | 男 | 9年级 | 看小说 |

| 15 | 贾旭 | 男 | 9年级 | 吹牛逼 |

| 19 | 李昂 | 男 | 9年级 | 看片儿 |

±—±----------±----±--------±----------+

9 rows in set (0.00 sec)

  • 使用场景2:沿用上面的班级表,查询男生和女生的总人数;SQL如下:

(sex='男’的返回1,然后用SUM相加得出男生人数,女生同理。)

SELECT SUM(IF(sex = ‘男’,1,0)) as boyNum, SUM(IF(sex = ‘女’,1,0)) as girlNum from student;

mysql> SELECT SUM(IF(sex = ‘男’,1,0)) as boyNum,SUM(IF(sex = ‘女’,1,0)) as girlNum from student;

±-------±--------+

| boyNum | girlNum |

±-------±--------+

| 6 | 3 |

±-------±--------+

1 row in set (0.00 sec)


三、函数:IFNULL(expr1,expr2)

=======================================================================================

IFNULL函数是MySQL控制流函数之一,它有两个参数,两个参数可以是真实值或表达式,如果expr1不是NULL,则返回第一个参数(expr1)。 否则,IFNULL函数返回第二个参数。

原始数据:

mysql> select * from student;

±—±----------±-----±--------±----------+

| ID | NAME | SEX | GRADE | HOBBY |

±—±----------±-----±--------±----------+

| 1 | 陈哈哈 | 男 | 9年级 | 上网 |

| 2 | 扈亚鹏 | 男 | 9年级 | 美食 |

| 3 | 刘晓莉 | 女 | 9年级 | 金希澈 |

| 5 | 徐立楠 | 女 | 9年级 | 阅读 |

| 6 | 顾昊 | 男 | 9年级 | 篮球 |

| 7 | 陈子凝 | 女 | 9年级 | 看电影 |

| 14 | 朱志鹏 | NULL | 9年级 | 看小说 |

| 19 | 李昂 | NULL | 9年级 | 看片儿 |

±—±----------±-----±--------±----------+

8 rows in set (0.00 sec)

将SEX为NULL的数据展示为:‘未知’:

mysql> SELECT NAME,IFNULL(sex,‘未知’) from student;

±----------±---------------------+

| NAME | IFNULL(sex,‘未知’) |

±----------±---------------------+

| 陈哈哈 | 男 |

| 扈亚鹏 | 男 |

| 刘晓莉 | 女 |

| 徐立楠 | 女 |

| 顾昊 | 男 |

| 陈子凝 | 女 |

| 朱志鹏 | 未知 |

| 李昂 | 未知 |

±----------±---------------------+

8 rows in set (0.00 sec)


附、一张有故事的照片(九)

============================================================================

在这里插入图片描述

最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

e_16,color_FFFFFF,t_70#pic_center)

[外链图片转存中…(img-dtxXjiz7-1715320815527)]

最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分

[外链图片转存中…(img-jRRkz2Xy-1715320815527)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值