如何修改 SQL 视图而不影响现有业务

ALTER VIEW 看起来只是改一条查询,实际却是用新定义整体覆盖旧视图,最容易把权限、字段契约和下游依赖一起改坏。本文按备份、兼容字段、重授权、更新能力与缓存影响几条主线,梳理生产环境修改 SQL 视图时最该先确认的风险点。

如何修改 SQL 视图而不影响现有业务

SQL 中 JOIN 字段包含 NULL 时,怎样才算正确匹配?

SQL 里 `JOIN` 字段包含 `NULL` 时,`=` 并不会把两边都是 `NULL` 的记录连起来,因为 `NULL = NULL` 的结果是 `UNKNOWN`。这篇文章把三种常见处理方式拆开说明:`IS NOT DISTINCT FROM`、显式 `OR` 分支,以及 `COALESCE` 的适用边界,帮助你同时判断语义是否正确、执行计划是否可靠。

SQL 中 JOIN 字段包含 NULL 时,怎样才算正确匹配?

Debian 上 PHP 如何管理数据库:四种常见方案的安装、初始化与连接方式

在 Debian 上为 PHP 项目管理数据库,常见方案并不止一种。本文按 MySQL/MariaDB、PostgreSQL、SQLite、MongoDB 四类数据库梳理安装、启动、自启与初始化要点,并补充 PHP 连接方式和工具选择,方便你按项目场景快速判断。 在 Debian 上部署 PHP 项目时,数据库安装通常只要几条命令,但真正影响后续维护体验的,是选型是否合适、服务有没有正确初始化,以及 PHP 扩展和连。

Debian 上 PHP 如何管理数据库:四种常见方案的安装、初始化与连接方式

SQL 中 COUNT(*) 与 COUNT(列名) 有什么区别?

`COUNT(*)` 和 `COUNT(列名)` 的差别不在写法偏好,而在统计对象本身:前者数结果集中的“行”,后者只数指定列里非 `NULL` 的值。这个语义差异会直接影响分页总数、数据校验和 `JOIN` 统计结果,性能判断也必须建立在约束与索引条件之上。

SQL 中 COUNT(*) 与 COUNT(列名) 有什么区别?

如何修复 Cookie 参数中的 SQL 注入漏洞

Cookie 里的值一旦未经校验就直接拼进 SQL,风险和表单注入没有区别,而且更容易被忽视。本文按 PHP、ASP/ASP.NET 和测试排查三条线梳理修复方法,说明哪些做法可靠、哪些“过滤”其实挡不住攻击。 Cookie 注入和表单注入本质上是同一类问题,但它更容易藏在登录态、中间件和日志链路里,被开发在排查时漏掉。

如何修复 Cookie 参数中的 SQL 注入漏洞

SQL 中如何按年月分组统计订单数据?

按年月统计订单并不难,难点在于分组键是否稳定、展示是否直观,以及查询能否继续走索引。本文按 MySQL、PostgreSQL、SQL Server 和跨库写法分别整理可直接落地的方案,同时指出常见误区与性能边界。

SQL 中如何按年月分组统计订单数据?

ThinkPHP 如何进行数据库设计

这篇文章把 ThinkPHP 项目里的数据库设计流程拆成可落地的几步:先理清需求,再完成建模、表结构、Model 映射、迁移、连接配置与性能优化。文中还用一个用户表示例串起从 ER 思路到 SQL 和实体类配置的完整过程。

ThinkPHP 如何进行数据库设计

SQL 中如何按日期分组并补齐缺失日期?

按日期分组后出现“断档”,通常不是 GROUP BY 写错,而是结果集里本来就没有那些日期。本文分别整理 PostgreSQL 的 `generate_series`、MySQL/SQL Server/Oracle 的日历表方案,并说明周/月分组、性能和边界数据里最容易踩的坑。 按日期统计时,结果里少几天、少几周,很多时候并不是 `GROUP BY` 写错了,而是数据源里根本没有这些日期。

SQL 中如何按日期分组并补齐缺失日期?

SQL Server 触发器中的 deleted 表如何使用

本文围绕 SQL Server 触发器里的 `deleted` 表展开,说明它何时存在、能存什么、为什么不能当普通表使用,并结合联表比对、软删除和归档恢复场景,总结一组更稳妥的写法与常见误区。 在 SQL Server 触发器里,`deleted` 是个很好用但也很容易被误解的对象:它不是实体表,不能脱离触发器存在,到了批量更新和软删除场景更不能按“普通。

SQL Server 触发器中的 deleted 表如何使用

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

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

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

SQL 用 ROW_NUMBER() 分页为什么会重复数据?

`ROW_NUMBER()` 分页出现跨页重复,通常不是语法问题,而是排序键不唯一、过滤层级不对或索引与参数设计失配。本文按“为什么会重复、SQL 该怎么写、索引和参数如何收口”三步拆开,帮助你同时排查结果稳定性和深分页性能。

SQL 用 ROW_NUMBER() 分页为什么会重复数据?