大多数 SQL 数据库在一定程度上遵循 ANSI SQL 标准,但是
该标准是模棱两可的,留下了一些可以解释的领域(例如:不同的操作
NULLs
应该如何处理是模棱两可的)一些供应商完全与标准相矛盾,或者只是缺少标准定义的功能(例如:MySQL列出了标准与其实现之间的差异)
一些数据库的行为会根据它们的配置方式而有所不同,但可以更改配置以使它们的行为方式相同(例如:Oracle 默认执行区分大小写的字符串比较,而 SQL Server 则不区分大小写)
有一些功能不是标准的一部分,但无论如何都由不同的 RDBMS 实现,尽管名称不同(例如:Oracle's
LISTAGG
= MySQL'sGROUP_CONCAT
)
当您尝试编写应该与多个数据库兼容的东西时,是否有一个包含完整列表的怪癖和陷阱的资源?