大多数SQL数据库都遵循ANSI SQL标准,但
标准含糊不清,留下一些区域可供解释(例如:应如何处理与NULLs
不同的操作is ambiguous)
有些供应商完全违反标准,或者只是缺乏标准定义的功能(例如:MySQL在标准和实施之间有list of differences)
某些数据库的行为会有所不同,具体取决于它们的配置方式,但可以更改配置以使它们的行为方式相同(例如:Oracle默认情况下执行区分大小写的字符串比较,而SQL Server则执行以下操作:钝感)
有些功能不是标准的一部分,但无论如何都由不同的RDBMS实现,虽然名称不同(例如:Oracle的LISTAGG
= MySQL的GROUP_CONCAT
)
当您尝试编写应该与多个数据库兼容的内容时,是否有一个包含全面的怪癖列表和陷阱的资源?