问题描述
大多数SQL数据库在一定程度上遵循ANSI SQL标准,但是
Most SQL databases follow the ANSI SQL standards to a degree, but
-
该标准含糊不清,有待解释的地方(例如:如何处理
NULLs
的不同操作模棱两可)
一些供应商完全违反标准,或者只是缺乏标准定义的功能(例如:MySQL具有标准及其实施之间的差异列表)
Some vendors contradict the standard outright or just lack functionality defined by the standard (eg: MySQL has a list of differences between the standard and their implementation)
某些数据库的行为取决于它们的配置方式,但是可以更改配置以使其具有相同的行为(例如:默认情况下,Oracle执行区分大小写的字符串比较,而SQL Server对其进行大小写区分-不敏感)
Some databases will behave differently depending on how they are configured, but configuration can be changed to have them behave the same way (eg: Oracle performs case-sensitive string comparisons by default, while SQL Server does them case-insensitve)
有些功能不是标准的一部分,但是无论如何都由不同的RDBMS实现,尽管它们的名称不同(例如:Oracle的LISTAGG
= MySQL的GROUP_CONCAT
)
There is some functionality that is not part of the standard but is implemented by different RDBMSs anyway, albeit with different names (eg: Oracle's LISTAGG
= MySQL's GROUP_CONCAT
)
当您尝试编写应该与多个数据库兼容的内容时,是否有一份包含有关怪癖和陷阱的完整列表的资源?
Is there a resource with a comprehensive list of quirks and gotchas to pay attention to when you are trying to write something that is supposed to be compatible with multiple databases?
推荐答案
我不确定此列表的全面程度,但这也许会有所帮助- http://troels.arvin.dk/db/rdbms/
I'm not sure how comprehensive this list is, but maybe this will help -http://troels.arvin.dk/db/rdbms/
这篇关于SQL数据库之间的差异列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!