- 博客(17)
- 收藏
- 关注
原创 MySQL中的窗口函数
在MySQL中,窗口函数(Window Functions)是一类特殊的SQL函数,它对与当前行相关的多行(这个“窗口”)进行计算。总而言之,窗口函数是现代SQL中一个极其强大的工具,尤其适用于需要进行复杂分析、排名和比较的场景。而使用窗口函数,你可以在一个查询中就完成所有操作,代码更清晰,执行效率也更高。: 你可以在同一个查询中使用多个不同的窗口函数,每个函数都可以有自己独立的。子句是窗口函数的核心,它定义了函数操作的数据范围(即“窗口”)。函数的第三个参数是默认值,用于处理分区内没有前一行的情况。
2025-09-06 13:33:59
797
原创 Mysql查询语句中的HAVING
记住,HAVINGFROM:从哪个表中获取数据。WHERE按行过滤数据,去除不符合条件的行。GROUP BY:将剩下的行按照指定的列进行分组。HAVING按分组过滤数据,去除不符合条件的组。SELECT:选择要显示的列。ORDER BY:对最终结果进行排序。理解这个流程,你就能够正确地判断一个条件应该放在WHERE还是HAVING中。只要条件是针对分组的聚合结果(如COUNTSUM等),就用HAVING;否则,如果条件是针对每一行记录的,就用WHERE。
2025-09-06 12:55:09
448
原创 当事务失败时,究竟是回滚还是恢复
简单来说,完成了提交指的是一个事务的所有操作都被数据库视为一个永久性的、不可撤销的整体,并且数据库承诺即使系统崩溃也不会丢失这些更改。但是,这个“完成”不是一个单一的时间点,而是一个包含几个重要步骤的过程。理解这个过程,有助于我们理解为什么Redo Log在这里起着关键作用。
2025-09-05 21:27:28
842
原创 Undo Log 和 Redo Log
可以将Undo Log和Redo LogUndo Log用于撤销(或回滚),它记录的是过去。Redo Log用于重做(或恢复),它记录的是未来。它们是 InnoDB 引擎实现事务可靠性的两大支柱,Undo Log保证了事务的“反悔能力”,而Redo Log保证了事务的“不朽性”。
2025-09-05 21:17:54
421
原创 InnoDB 和 MyISAM的区别
InnoDB 和 MyISAM 都是 MySQL 数据库中常用的存储引擎。它们决定了数据在内存和磁盘上的存储方式、索引的实现方式以及事务处理能力等特性。理解它们之间的区别对于优化数据库性能至关重要。
2025-09-05 18:38:40
250
原创 遍历Java中的HashMap
遍历方式适用场景优点缺点推荐度entrySet()同时需要键和值最高效,一次性获取键值对无明显缺点★★★★★keySet()只需要键,或需要根据键进行其他操作简单直接每次获取值都需要额外查找,性能稍差★★★☆☆values()只需要值简单,只遍历值无法获取对应的键★★★☆☆综上所述,大多数情况下,使用 entrySet()是最明智的选择,因为它能提供最佳的性能和便利性。
2025-09-05 13:49:57
171
原创 mysql的日期函数:DATEDIFF、TIMESTAMPDIFF
DATEDIFF()是计算两个日期之间完整天数差的利器,适合统计、筛选、排序等场景,但不适合精确时间差计算。是的,DATEDIFF()只能计算两个日期之间的“天数”差单位固定为天,不能换成月、年、小时、分钟等。
2025-09-02 16:04:15
558
原创 SQL 的逻辑执行顺序,MySQL 的扩展行为
按组再过滤,可以使用聚合函数(如 COUNT、SUM)。先确定数据来源,做表连接,生成一张“大表”。(MySQL、PostgreSQL 等方言)在大表上逐行过滤条件(不能使用聚合函数)。选择最终要显示的列或表达式,并可起别名。把剩下的行按指定列分组,每组一行。取前 N 行或跳过若干行。
2025-08-30 21:45:27
269
原创 Java中的码点
在 Java 里是指。:每个字符(不管是汉字、英文字母、emoji 等)都有一个唯一的编号,这个编号就是码点(code point)。'A''中'charcharintIntStream👉 可以看到😀这个 emoji 在charAt时占了两个位置,但它其实是一个码点 U+1F600。
2025-08-29 11:12:19
383
原创 在Controller类中为什么有的参数前有@RequestBody有的没有
场景数据位置Spring MVC 注解适用请求接收零散参数或自动封装POJOURL 查询字符串或无注解GET等接收完整的结构化数据请求体 (Request Body)POSTPUT等因此,你的参数前面没有是完全正确的,因为它是在一个GET请求中,通过 URL 查询字符串自动组装的。
2025-07-23 18:52:13
1331
原创 从请求到查询:Spring Boot、枚举转换与 MyBatis-Plus 动态查询
/ ... 查询逻辑这里,表示我们希望通过 URL 参数type来筛选LabelInfo,并且type是一个自定义的 ItemType枚举。意味着这个参数是可选的。当用户发起一个类似type=1的请求时,Spring Boot 默认并不知道如何将字符串"1"转换为我们的ItemType枚举实例(例如如果不进行特殊处理,这里会抛出类型转换异常。为了解决这个问题,我们需要借助 Spring 的类型转换机制。Spring Framework 提供了接口,允许我们定义如何将一种类型转换为另一种类型。
2025-07-19 09:41:56
1764
原创 mysql有多个密码?
这个IP地址连接到MySQL数据库,但是MySQL中虽然存在。从您提供的MySQL命令行截图可以看出,当您在服务器上使用。的密码不一致,并且您的Java程序尝试连接时使用的是。(允许从任何主机连接)的权限,那么最大的可能性是。然而,您的Java程序报错信息是。(允许从任意主机连接),但很可能您。这意味着您的MySQL数据库中,您的Java程序试图以。综上所述,最有可能的原因是。
2025-07-18 14:16:23
511
原创 如何重置mysql的密码
问:我的mysql没有mysqld_safe,如何重置mysql的密码答:这很可能是因为你使用的是较新版本的 MySQL(例如 MySQL 5.7.6+ 或 MySQL 8.0 及更高版本)并且你的 Linux 发行版(如 CentOS 7+, Ubuntu 16.04+)使用来管理服务。在这些现代的 MySQL 和 Linux 环境中,脚本已经被服务管理机制所取代,它不再被默认安装或使用。这意味着我们不能再使用来重置密码了。我们需要一种新的方法,直接通过systemd。
2025-07-17 16:17:24
1350
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅