自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 Java 中实体类、VO 与 DTO 的深度解析:定义、异同及实践案例

在 Java 开发中,实体类(Entity)、VO(Value Object,值对象)和 DTO(Data Transfer Object,数据传输对象)是三个高频出现的概念。在主流的 ORM(对象关系映射)框架(如 MyBatis、JPA)中,实体类的每一个字段通常对应数据库表的一列,字段类型也与表字段类型一一对应。三者本质上都是 “数据容器”,通过类的字段存储数据,通过getter/setter方法访问数据,不包含复杂的业务逻辑(实体类可能包含简单的 ORM 逻辑,但无核心业务逻辑)。

2025-08-14 16:43:10 572

原创 CentOS 7安装MySQL 5.7脚本

【代码】CentOS 7安装MySQL 5.7脚本。

2025-08-07 17:15:20 94

原创 Linux命令-top

【代码】Linux命令-top。

2025-07-31 17:24:33 645

原创 解决 SQL 错误 [1055]:深入理解 only_full_group_by 模式下的查询规范

上述查询中,create_time是第 4 个字段(对应报错中的 “Expression #4”),它既没有出现在 GROUP BY 子句中,也没有使用聚合函数(如 MAX (create_time))。在only_full_group_by模式下,MySQL 无法确定每个用户分组应返回哪个create_time(一个用户可能有多个订单,对应多个下单时间),因此直接抛出[1055]错误。only_full_group_by是 MySQL 的sql_mode中的一项配置,其核心作用是。

2025-07-24 17:49:49 997

原创 ClickHouse 多表 JOIN 时 SELECT * 语法错误解析与解决方案

这个错误是由于 ClickHouse 在特定版本(如 19.5.3.1)中对多表 JOIN 操作的语法限制导致的。ClickHouse 在早期版本(如 19.5.3.1)中对多表 JOIN 操作有严格的语法限制。较新版本(如 20.x 及以上)对多表 JOIN 的支持更加完善,可能已经移除了这个限制。在 ClickHouse 19.5.3.1 版本中,这个查询会报错,因为存在多个 JOIN 子句且使用了。在使用 ClickHouse 数据库进行多表 JOIN 操作时,你可能会遇到这样的错误。

2025-07-17 17:33:21 591

原创 达梦数据库不兼容 SQL_NO_CACHE 报错解决方案

摘要:达梦数据库不支持MySQL的SQL_NO_CACHE关键字,执行相关SQL时会报错。原因是达梦数据库采用Oracle语法体系,未实现MySQL的查询缓存机制。解决方案包括:1)直接删除SQL_NO_CACHE关键字;2)通过应用层配置禁用缓存;3)修改SQL添加随机参数绕过缓存;4)使用达梦自带的缓冲池管理机制。建议开发者在迁移MySQL应用时,注意语法兼容性问题并进行相应调整。

2025-07-10 17:14:27 410

原创 MyBatis 中的 resultType 与 resultMap:区别、使用场景及示例详解

摘要: MyBatis提供resultType和resultMap两种结果映射方式。resultType适用于简单查询(字段名与Java属性名一致),自动完成映射,支持基本类型、POJO和Map。resultMap用于复杂场景(字段不一致、嵌套对象、关联查询),需手动配置映射关系,支持一对一、一对多等高级特性。对比而言,resultType简洁高效,resultMap灵活强大。实际开发中,简单查询用resultType,复杂映射(如多表关联、字段名不一致)用resultMap。本文通过代码示例详细展示了两种

2025-06-25 16:32:40 1010

原创 SQL 中整数除法陷阱:为什么你的百分比总是 0%?

在 SQL 数据库操作中,我们经常会遇到需要计算百分比或比率的场景。然而,一个常见的陷阱是,当分子和分母都是整数类型时,数据库会执行“整数除法”,这可能导致计算结果意外地为 0,即使实际结果应该是一个小数。

2025-06-12 09:52:37 402

原创 Java 实现下拉框树状结构接口的核心思路

首先,需要一个数据模型来表示树中的每一个节点。这个节点应该包含至少以下信息:- id :节点的唯一标识符。- parentId :父节点的标识符,用于建立层级关系。根节点的 parentId 通常为 null 或特定值(如 0 )。- label 或 name :节点显示文本。- children :一个列表,用于存储当前节点的子节点。通过 TreeService 中的 buildTree 方法,我们可以高效地将从数据库查询到的扁平化数据转换为前端所需的树形结构。

2025-06-05 14:11:33 498

原创 MySQL中高内聚原则的实践:如何设计清晰、可维护的数据库结构

高内聚指的是一个模块或组件内部的功能高度相关,职责单一明确。在MySQL中,这意味着:每张表只负责一类数据;每个视图专注于一个业务维度;存储过程完成特定任务,不混杂多个逻辑;函数功能单一,便于复用。与之相对的是“低内聚”,即一张表承载太多无关字段,一个视图包含多个维度,一个函数做太多事情,导致系统难以维护。在MySQL数据库开发中,遵循高内聚原则有助于我们构建出结构清晰、职责明确、易于维护的数据模型。具体建议如下:表结构设计:按业务实体拆分,避免大宽表;视图设计:按维度划分,职责单一;

2025-05-30 08:24:09 693

原创 数据库设计

创建数据库的过程,包括定义数据结构、数据之间的关系以及数据的约束。

2025-05-15 15:37:27 307

原创 数据库设计三范式

下面这个表格就是不符合第一范式的例子:因为学时数能够拆分为讲课和实验。所以他并不是每一列都是原子值。满足2NF,并且所有非主键列只依赖于主键,不依赖于其他非主键列。(非主属性对主属性不存在传递依赖)满足1NF,并且所有非主键列完全依赖于主键(不存在部分依赖),只存在完全依赖和传递依赖。不仅要考虑列是否是原子值,还需要考虑每列的值是否可拆分。例如,下面这张表不满足第二范式。每个表中的每一列都是原子值。每个表中的每一行都是唯一的。注:部分依赖是什么?

2025-05-08 17:09:30 265

原创 Doris 中聚合函数使用常见问题及解决方案

在 Doris 中使用聚合函数时,需要注意以下几点:数据类型匹配:确保过滤条件中的数据类型与表中的数据类型匹配。聚合函数要求:确保所有非聚合列都包含在 GROUP BY 子句中,或者所有列都必须是聚合函数的结果。使用 MAX() 聚合函数:在某些情况下,使用 MAX() 可以避免重复累加问题,同时保持数据的准确性。

2025-04-22 17:22:33 786

原创 窗口函数over()

PARTITION BY + ORDER BY → 分组内排序计算(如累计值)PARTITION BY + 窗口范围 → 分组内指定计算范围(如移动平均)

2025-04-17 08:47:27 1224

原创 数据库主从复制学习笔记

简单来说,它像一台摄像机,忠实记录所有对数据库进行修改的 SQL 语句(如 INSERT/UPDATE/DELETE)或表结构变更(如 CREATE/ALTER)等操作。),而非底层数据页的物理修改细节(这是 redo log 的特性)。其核心思想是通过将主库(Master)的数据变更异步/同步复制到从库(Slave),使从库与主库保持数据一致。GTID(全局事务标识符)是 MySQL 主从复制中用于唯一标识事务的机制,它解决了传统复制依赖 binlog 文件名和位置的痛点。记录原始 SQL 语句。

2025-04-10 17:51:49 657

原创 动态SQL拼接中百分比字段的实现与问题修复

动态SQL开发规范所有动态条件前必须包含空格使用参数化查询代替字符串拼接显式处理NULL和除零情况。

2025-04-02 16:44:56 221

原创 使用 SQL CTE(公共表表达式)优化数据查询的实践

公共表表达式(CTE)是一种临时结果集,可以在 SQL 查询的执行过程中使用。CTE 通过 WITH 关键字定义,允许开发者在主查询中引用该结果集。CTE 的主要优点在于它可以使复杂的查询更易于理解和维护,同时提高查询的可读性。

2025-03-27 10:32:00 572

原创 MySQL到达梦数据库迁移中的JSON_CONTAINS不兼容问题及解决方案

”SQL 错误 [42000]: [DM_SQL] 语法分析错误: 第5行第12列附近出现错误: 未找到对应的函数 'JSON_CONTAINS'“

2025-03-21 10:47:45 641

原创 多维数据聚合方案:SQL GROUPING SETS深度解析

GROUPING SETS是SQL标准中的多维聚合运算符,允许在单个查询中实现多维度组合的分组统计。相较于传统UNION ALL方案,性能可提升3-10倍(TPC-DS基准测试)。

2025-03-11 17:58:12 836

原创 MySQL字符串处理神器:SUBSTRING_INDEX函数深度解析

SUBSTRING_INDEX 是MySQL中用于按分隔符截取字符串的核心函数,特别适合处理包含固定分隔符的文本数据(如日志、路径、标签等)。

2025-03-11 16:40:48 711

原创 CodeGeeX实操

CodeGeeX是一个具有130亿参数的多代码生成编程语言预训练模型,使用超过二十种编程语言训练得到。基于CodeGeeX开发的插件可以实现通过描述生成代码、补全代码、代码翻译等一系列功能。CodeGeeX同样提供可以定制的提示模式(Prompt Mode),构建专属的编程助手。

2025-03-06 19:17:20 456

原创 mysql中union all和WITH ROLLUP实现汇总的两种方式

维度UNION ALL实现复杂度高(需写多个查询低(自动生成层级执行性能多次全表扫描单次扫描优化结果可读性维度区分清晰需要处理NULL标识灵活支持任意维度组合层级关系固定版本兼容性所有MySQL版本MySQL 5.0+

2025-02-20 18:00:05 450

原创 MySQL 索引失效案例:为什么你的 GROUP BY 没有走索引?

通过合理的设计索引和使用方法,90%的 GROUP BY 性能问题都能得到有效解决。

2025-02-13 17:36:51 680

原创 【LeetCode-27】移除元素

暴力解法。

2025-02-07 10:27:32 930

原创 ClickHouse SQL 查询中别名导致报错的问题分析与解决方案

在使用ClickHouse数据库进行数据查询时,SQL语句中的别名使用是常见的优化手段之一。但是,不当的别名使用可能会引发解析错误,影响查询结果的正确性。下面将通过实例详细探讨因别名使用而导致报错的原因,并提供相应的解决方案

2025-01-23 14:08:48 897

原创 MySQL 数据库中左连接导致数据统计变多的问题及解决方法

左连接在数据处理中非常有用,但不当的连接操作可能导致数据统计结果异常。通过确保连接条件唯一、使用子查询或聚合函数、以及谨慎使用 DISTINCT 关键字,可以有效解决左连接导致的数据统计变多问题。在实际操作中,建议先备份数据,然后在低峰时段执行这些操作,以确保数据的安全性和一致性。希望本文能帮助你更好地理解和解决左连接导致的数据统计问题。

2025-01-17 10:52:05 1741

原创 二分查找学习

二分查找(Binary Search)是一种在有序数组中查找特定元素的搜索算法每次查找都将搜索范围缩小一半,时间复杂度为 O(log n)基本思路:将目标值与数组中间位置的元素比较,根据比较结果决定在哪一半继续查找。

2025-01-09 13:43:19 306

原创 详细教程:如何从前端查看调用接口、传参及返回结果(附带图片案例)

作为一名后端工程师,理解前端如何调用接口、传递参数以及接收返回值是非常重要的。下面将详细介绍如何通过浏览器开发者工具(F12)查看和分析这些信息,并附带图片案例帮助你更好地理解。

2025-01-02 10:19:50 18894 3

原创 返回NaN(Not a Number)的原因及解决办法

在这个修改后的公式中,nullif(l.sign_in_dur, 0) 会将 sign_in_dur 为零的情况转换为 NULL,从而避免了除以零的操作。对于 job_number 为 1 的记录,nullif(sign_in_dur, 0) 将 sign_in_dur 转换为 NULL,ifnull(l.busy_dur / NULL, 0) 将结果转换为 0,最终结果为 "0.00%"。这个公式计算的是 busy_dur 除以 sign_in_dur 的百分比。通过这种方式,可以避免除以零的情况。

2024-12-26 14:56:36 767

原创 数据库中常见的聚合函数

聚合函数是数据库查询中非常强大和有用的工具,可以帮助你快速汇总和分析数据。熟练掌握这些函数及其用法,将大大提高你的数据分析能力和效率。以下是一些关键点总结:作用: 数据汇总、统计分析、数据分组。好处: 高效性、简洁性、灵活性、可读性。注意事项: NULL 值处理、数据类型、子查询、窗口函数、性能考虑、结果精度。

2024-12-19 17:23:22 1136

原创 DAYOFMONTH和DATE_FORMAT

【代码】DAYOFMONTH和DATE_FORMAT。

2024-12-12 17:37:19 481

原创 数据库索引

employee_id”(员工编号,主键)、“employee_name”(员工姓名)、“department”(部门)等字段。数据库索引是一种数据结构,类似于书籍的目录,它能够帮助数据库管理系统(DBMS)迅速定位和访问数据库中的数据。= 567” 时,数据库系统可借助索引快速定位到员工编号为 567 的记录,而非遍历整个员工表来查找,大大提高了数据检索效率。树索引为例,它是一种平衡的多叉树结构,其节点存储索引键值以及指向数据行的指针(或存储子节点的引用)。例如,在一个存储员工信息的。

2024-12-05 17:42:11 673

原创 聚合函数与group by

【代码】聚合函数与group by。

2024-11-28 17:52:08 443 1

原创 字典表左连接主表的优点

当字典表中的内容需要更新(如修改商品类别名称、更新部门名称等)时,由于主表和字典表是通过连接关系关联的,只要连接键(如商品编号、部门编号)不变,更新字典表的内容就可以自动在关联查询中反映出来。而且,在系统扩展时,例如添加新的字典表字段(如在商品信息表中添加商品品牌字段),可以很容易地通过修改左连接的查询语句,将新的信息添加到查询结果中,方便对系统进行功能增强。语句,就可以在查询借阅记录的同时获取图书的详细名称等信息,而不需要先查询借阅记录,然后在程序中循环遍历每条记录去查询对应的图书详情。

2024-11-21 17:27:25 381

原创 SQL中ROUND()经常遇到的问题

【代码】SQL中ROUND()经常遇到的问题。

2024-11-14 18:11:00 897

原创 SQL语句报错:GROUP BY grouping sets ()

你可以考虑将数据库升级,升级到到支持你所需功能的版本。但是在升级之前,充分评估升级的风险和影响,包括对现有应用程序的兼容性、数据迁移的复杂性等。1.查找你所使用的数据库的官方文档,了解不同版本之间的差异。特别关注与你遇到问题相关的功能在不同版本中的变化,例如。使用的mysql版本过低,不支持grouping sets。2.调整 SQL 以适应低版本。

2024-11-07 18:01:29 621

原创 clickhouse数据库迁移Doris——建表部分

2、对于UInt无符号整形,clickhouse中某表id字段为UInt,在Doris中为int,迁移过程中,对于UInt要做转换吗?3、对于float类型,在Doris中要改为decimal,不然的话报错:`fee` Float(32) NULL,1、为什么在Doris上varchar类型相比于MySQL中,字段长度要扩大三倍左右?答:根据MySQL数据库作参考,以MySQL为标准(本次示例clickhouse数据库是从MySQL中迁来的)2、clickhouse的建表语句。2、拿到建表语句,进行修改。

2024-10-31 13:56:39 1282

原创 JOIN(内连接)和LEFT JOIN(左连接)

JOIN(内连接)和LEFT JOIN(左连接)的联系与区别

2024-10-25 08:55:22 2804

原创 SQL存储过程

存储过程就是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和服务器之间的传输,对于提高数据的处理的效率是有好处的。存储过程思想上就是数据库SQL语言层面的代码封装与重用。用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接用“@变量名”使用就可以。其作用域为当前连接。赋值:SELECT 字段名 INTO @var_name FROM 表名;

2024-10-17 17:14:53 1321

原创 php学习片段

1.$$i是一个变量名,在 PHP 中以符号开头表示一个变量。1.$i = 0;这里将变量$i初始化为 0。

2024-10-10 16:56:22 668

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除