数据库,说白了就是一个有组织、可查找、能管理的数据仓库。它不是随便堆文件的硬盘文件夹,而是用结构化方式(比如表格)把数据存好,再通过软件(MySQL 就是其中一种)来增、删、改、查——就像你用 Excel 管理通讯录,但比 Excel 更稳、更快、更安全、更能多人同时用。
postgresql
精选推荐
Dapper 3.0会有哪些新功能 Dapper未来版本展望
SQL OLAP 与 OLTP 查询策略分析
最新动态
什么是数据库基本概念_mysql数据库入门理解
SQL XML 在报表生成中的应用
多数数据库原生支持将查询结果导出为 XML,但语法和行为差异很大,不能写一次就到处跑。FOR XML 是 SQL Server 特有的语法,PostgreSQL 用 row_to_json() 或 xmlagg(),MySQL 则基本没内置支持——得靠应用层拼或用 SELECT … INTO OUTFILE 配合字符串函数硬凑。
SQL Liquibase 的 precondition failed 的变更回滚处理模板
不是数据库挂了,也不是 Liquibase 坏了,而是你在 changeSet 里写的 preConditions 没通过校验——比如表不存在、列类型不匹配、SQL 查询返回非空结果等。Liquibase 在执行前卡在这一步,直接中断,后续变更不会跑,也不会自动回滚已执行的上一个 changeSet。
SQL 唯一约束 vs 唯一索引的错误消息与性能差异实践
报错看起来一样,但背后触发机制不同:两者都因违反唯一性而抛出类似错误,比如 SQL Server 的 Msg 2627、MySQL 的 ERROR 1062、PostgreSQL 的 duplicate key violates unique constraint。但关键区别在于——约束是逻辑校验层,索引是物理结构层;错误虽同源,可禁用/绕过方式完全不同。
如何获取数据库中前N名及其并列结果(含所有同分记录)
本文介绍一种通用sql技巧:在获取排序后前n条记录的同时,自动包含所有与第n名分数相同的并列记录,避免因简单 limit 导致同分者被截断。
SQL PostgreSQL 的 pgstattuple 的 heap bloat vs index bloat 量化诊断实践
PostgreSQL 默认不带 pgstattuple,调用 pgstattuple() 或 pgstatindex() 会提示 function does not exist。必须先在目标数据库中启用扩展。
SQL 控制流语句 IF、CASE 使用技巧
MySQL 的 IF 是函数,不是控制语句,它必须返回一个值,所以只能出现在能接受表达式的地方。比如你写 WHERE IF(condition, a, b) = 1 是合法的,但 IF(condition, SELECT …, SELECT …) 这种分支执行逻辑会报错——MySQL 不支持过程式 IF 块(除非在存储过程里)。
SQL 复杂查询技巧与优化
只要 WHERE 条件对字段套了函数,比如 WHERE UPPER(name) = ‘JOHN’ 或 WHERE DATE(created_at) = ‘2024-01-01’,绝大多数数据库(MySQL、PostgreSQL、SQL Server)都会跳过索引,走全表扫描。
SQL 窗口函数 ROW_NUMBER 与 RANK 的去重与排名场景选择
核心区别就一条:ROW_NUMBER 严格按顺序编号,相同值也绝不重复;RANK 遇到相同值会并列,然后跳过后续序号。比如三行值都是 100,ROW_NUMBER 给 1/2/3,RANK 给 1/1/1,下一行直接是 4。
基于Golang的Wiki系统开发_Web内容版本回滚实现
很多人以为把 content 字段更新成旧值就完成了回滚,结果发现图片链接失效、元数据错乱、搜索索引没同步。Golang Wiki 系统里,一次编辑可能同时影响 pages 表、revisions 表、page_attachments 关联表,甚至外部对象存储里的文件引用。回滚不是“还原内容”,而是“还原整个页面状态”。