SQL数据库之间的差异列表
大多数 SQL 数据库在一定程度上遵循 ANSI SQL 标准,但是
该标准含糊不清,导致某些区域有待解释(例如:应如何处理
NULL
的不同操作不明确)一些供应商完全违背标准或只是缺乏标准定义的功能(例如:MySQL 有一个差异列表标准及其实施)
某些数据库的行为会有所不同,具体取决于它们的配置方式,但可以更改配置以使它们的行为方式相同(例如: Oracle 默认执行区分大小写的字符串比较,而SQL Server 不区分大小写)
有一些功能不是标准的一部分,但无论如何都是由不同的 RDBMS 实现的,尽管名称不同(例如:Oracle 的
LISTAGG
= MySQL 的GROUP_CONCAT
)
当您尝试编写与多个数据库兼容的内容时,是否有一个资源包含了需要注意的怪癖和陷阱的完整列表?
Most SQL databases follow the ANSI SQL standards to a degree, but
The standard is ambiguous, leaving some areas open to interpretation (eg: how different operations with
NULLs
should be handled is ambiguous)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)
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)
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'sGROUP_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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我不确定这个列表有多全面,但这也许会有所帮助 -
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/
除了已经提到的一些您可以在 维基百科
类似的问题也已经发布在 Stackoverflow 上您可以在其中找到一些有用的链接。
Except of already mentioned some comparison you can find in Wikipedia
Also similar question was already posted on Stackoverflow where you can fin a couple of useful links.