SQL 缺失值怎么填?4 种窗口函数思路与适用边界

SQL 里填充缺失值,重点不是“补上就行”,而是按有序数据和业务语义选对方式。常见做法包括用 LAG()/LEAD() 取相邻有效值、用 COALESCE() 组合近邻候选,以及在支持 IGNORE NULLS 的数据库里用 FIRST_VALUE() 做前向填充。 在 SQL 里处理缺失值,最容易犯的错不是不会写函数,而是把“补出一个值”和“补对一个值”混为一谈。

SQL 缺失值怎么填?4 种窗口函数思路与适用边界

SQL 窗口函数如何发现序列号断档

用 SQL 查序列号断档,核心不是把所有数字生出来逐个比,而是先分清你要找的是“相邻 ID 的物理缺口”还是“业务定义下的合法值缺失”。这篇文章用 LAG()、LEAD() 和反例 ROW_NUMBER() 拆解判断方法,并补上空表、NULL 与跨数据库边界处理。

SQL 窗口函数如何发现序列号断档

SQL 批量 INSERT 数据时,如何避免主键冲突

批量插入遇到主键或唯一键重复时,核心不是“怎么不报错”,而是按数据库方言选择真正的跳过写法。MySQL、PostgreSQL 和 SQL Server 的语义、锁行为与开销差异很大,用错语句往往会把简单去重变成阻塞和死锁问题。

SQL 批量 INSERT 数据时,如何避免主键冲突

怎样用 SQL JSON 函数查询数组中的指定元素

查询 SQL JSON 数组时,最常见的问题不是函数失效,而是字段类型、路径表达式和元素类型没对上。本文用 MySQL 与 PostgreSQL 两套写法,梳理 JSON_CONTAINS、JSON_EXTRACT、JSON_TABLE 与 jsonb 操作符的适用场景、坑点和性能差异。 很多人第一次查 SQL 里的 JSON 数组,都会遇到同一个现象:语句看起来没错,结果却始终查不到。

怎样用 SQL JSON 函数查询数组中的指定元素

如何使用 SQL WEEK 函数统计每周新增用户

统计“每周新增用户”时,真正容易出错的不是 SQL 语法,而是周定义、首活口径和跨年分组。本文按 MySQL、PostgreSQL、SQL Server 分别说明 ISO 周写法,并给出新增用户统计、跨年周处理与索引优化的实操要点。 很多人写“每周新增用户”统计时,都会直接对时间字段套上 WEEK() ,但这一步很可能已经把结果做偏了。

如何使用 SQL WEEK 函数统计每周新增用户

Ubuntu 上 JavaScript 如何实现数据持久化:从 LocalStorage 到 MongoDB 的选型梳理

在 Ubuntu 上用 JavaScript 做数据持久化,关键不是“能不能存”,而是先分清运行环境和数据规模。本文按浏览器端与 Node.js 端拆解 LocalStorage、IndexedDB、文件系统、SQLite、MongoDB 的适用边界,帮助你快速选型。 在 Ubuntu 里写 JavaScript 应用时,数据持久化最容易踩坑的地方,不是“怎么存”,而是没有先按运行环境和数据规模做判断。

Ubuntu 上 JavaScript 如何实现数据持久化:从 LocalStorage 到 MongoDB 的选型梳理

Debian 下 Python 如何连接数据库:5 种常见方案与选型说明

这篇文章按数据库类型梳理 Debian 下 Python 的常见连接方式,覆盖 MySQL、PostgreSQL、SQLite、MongoDB 和 Redis。除了保留原始安装命令与示例代码,还补充了选型思路和连接时最容易出错的配置检查点。 在 Debian 上用 Python 接数据库,难点通常不在“能不能连上”,而在于不同数据库的驱动、连接对象和使用场景差别很大。

Debian 下 Python 如何连接数据库:5 种常见方案与选型说明

如何编写单元测试验证 SQL 注入防护

单元测试要验证的不是“接口没报错”,而是恶意输入是否在数据库执行前就被业务层拦截。本文围绕真实攻击载荷传递、异常断言、高危拼接分支、日志审计和二次注入覆盖,整理一套更可靠的 SQL 注入防护测试思路。

如何编写单元测试验证 SQL 注入防护