在学习 SQL 的过程中,你可能会发现:同样的 “建表语句” 在 MySQL 能运行,在 Oracle 却报错;“分页查询” 的写法在 SQL Server 和 MySQL 完全不同。这是因为 MySQL、Oracle、SQL Server 是三大主流关系型数据库,虽都支持标准 SQL,但在 “基础特性、语法细节、适用场景” 上存在明显差异。今天我们从学习和实操的角度,拆解三者的核心区别,帮你避免 “跨库踩坑”。
我整理了一些学习资料,包含课程、专业、考试等内容,还有游戏和软件的合集。
学习资料合集文档
https://www.kdocs.cn/l/cjchDXwklk1B
一、三大数据库的基础特性差异
首先从 “定位、开源性、数据存储、默认配置” 等基础维度,快速建立对三者的整体认知,这是理解语法差异的前提。
| 对比维度 |
MySQL(8.0+) |
Oracle(19c+) |
SQL Server(2022+) |
| 开源性 |
开源免费(社区版),商业版收费 |
闭源,需付费授权 |
闭源,需付费授权(有免费开发版) |
| 定位与场景 |
轻量灵活,适合中小型项目、互联网场景(如电商网站、APP 后端) |
大型企业级应用(如银行、政务系统),支持高并发、高可用 |
微软生态项目(如.NET 开发的系统)、中小型企业应用 |
| 数据存储 |
以 “文件” 形式存储(如 InnoDB 引擎的.ibd 文件) |
以 “表空间” 为单位存储,支持分区表、大文件存储 |
以 “数据库文件(.mdf)+ 日志文件(.ldf)” 存储 |
| 默认端口 |
3306 |
1521 |
1433 |
| 默认字符集 |
utf8mb4(支持 emoji 表情) |
AL32UTF8(类似 UTF-8) |
SQL_Latin1_General_CP1_CI_AS(需手动设置 UTF-8) |
| 事务支持 |
支持(InnoDB 引擎),默认自动提交 |

&spm=1001.2101.3001.5002&articleId=151267390&d=1&t=3&u=cb7a240316234914814d3b5640242c70)
4820

被折叠的 条评论
为什么被折叠?



