【问题标题】:Using SQL to query databases with different RDBMS使用 SQL 查询具有不同 RDBMS 的数据库
【发布时间】:2018-10-06 12:27:07
【问题描述】:

我完成了 Mode SQL 教程 (link)。该教程指出它教学生如何查询 MySQL 数据库。不同的 RDBMS 的 SQL 语句有多少变化?更具体地说,我最关心的是 MS SQL Server 的 T-SQL 和 Oracle 的 PL/SQL 与我所学的 MySQL 语法有何不同?此外,哪些 RDBMS 可以让我大部分或完全使用 Mode 教程中讨论的语法?

【问题讨论】:

  • SQL 方言不同。在某些方面更多,在其他方面更少。但它们不同。句号。对此没有绝对的答案。你需要在这里更精确。教程指出,它教 MySQL,我猜 MySQL 是一个不错的选择——谁会想到......

标签: mysql sql tsql plsql


【解决方案1】:

SQL 确实有一个标准 - 称为 ANSI-SQL。但是,我不知道有任何 RDMBS 完全符合该标准 - 每个产品都有自己的方言。例如,在 MySql 中,您可以使用Where (a, b) IN (c,d)——事实上,这是标准的一部分——但 SQL Server 不允许这样做。另一方面,您可以在 MySql 和 SQL Server 上使用检查约束,它们是标准的一部分,但 MySql 不会强制执行它们(这是我不喜欢它的原因之一 - 我发现它具有欺骗性- 如果不强制执行约束,为什么他们会让你一开始就指定它们?只是提出一个错误,说 MySql 不支持检查约束)

就个人而言,在过去的十年中,我几乎只使用 SQL Server, 但我可以告诉你,如果你能阅读文档,在大多数情况下,从一种 SQL 方言切换到另一种 SQL 方言非常容易。

此外,每个 RDBMS 都有其优点和缺点 - 有些事情由一种产品更好地处理,而另一些则由另一种产品更好地处理。选择使用的数据库通常取决于许可证价格、可用硬件、个人对 rdmbs 系统的了解等。没有单一的最佳 rdbms - 所以没有单一的最佳 sql 方言

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    相关资源
    最近更新 更多