IBM Db2 on Cloud 中使用的 SQL 方言是啥

Posted

技术标签:

【中文标题】IBM Db2 on Cloud 中使用的 SQL 方言是啥【英文标题】:What is the SQL dialect used in IBM Db2 on CloudIBM Db2 on Cloud 中使用的 SQL 方言是什么 【发布时间】:2020-04-21 03:56:25 【问题描述】:

有谁知道 IBM Db2 on Cloud 中使用的 SQL 方言是什么?

我尝试谷歌搜索,还发现了这个 *** link,但在 IBM Db2 on Cloud 中使用的 SQL 方言的链接中看不到任何引用。

非常感谢。

【问题讨论】:

【参考方案1】:

云上的 Db2 就是 Db2。

Db2 是过去称为 DB2 for Linux Unix and Windows(即 DB2 LUW)的当前名称。

其他种类的 Db2 包括 Db2 for z/OS(即 DB2 for OS/390 aka Mainframe)和 Db2 for i(即 DB2 for iSeries aka AS/400 ) 等等

从 11.5 版开始,Db2® 符合以下 SQL 标准 https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.5.0/com.ibm.db2.luw.common.doc/doc/c0011215.html

Db2® 符合以下 SQL 行业标准:

Db2® 符合以下 SQL 行业标准:

ISO/IEC 9075-1:2016, Information technology  - Database languages - SQL - Part 1:  Framework (SQL/Framework)
ISO/IEC 9075-2:2016, Information technology  - Database languages - SQL - Part 2:  Foundation (SQL/Foundation)
ISO/IEC 9075-3:2016, Information technology  - Database languages - SQL - Part 3:  Call-Level Interface (SQL/CLI)
ISO/IEC 9075-4:2016, Information technology  - Database languages - SQL - Part 4:  Persistent Stored Modules (SQL/PSM)
ISO/IEC 9075-10:2016, Information technology - Database languages - SQL - Part 10: Object Language Bindings (SQL/OLB)
ISO/IEC 9075-11:2016, Information technology - Database languages - SQL - Part 11: Information and Definition Schemas (SQL/Schemata)
ISO/IEC 9075-13:2016, Information technology - Database languages - SQL - Part 13: Java Routines and Types (SQL/JRT)
ISO/IEC 9075-14:2016, Information technology - Database languages - SQL - Part 14: XML-Related Specifications (SQL/XML)
ISO/IEC 13249-3:2011, Information technology - Database languages - SQL multimedia and application packages - Part 3: Spatial

Db2 符合以下 SQL 行业技术报告:

ISO/IEC TR 19075-6:2016, Information technology - Database languages - SQL - Part 6: SQL support for javascript Object Notation (JSON)

【讨论】:

“级联更新”仍然不受支持,它是 SQL99 的一部分。 ibm.com/support/knowledgecenter/en/SSEPGG_11.5.0/… 我真的不知道 SQL 标准是如何工作的。我假设您需要实现一些核心内容以“符合”,然后一些 DBMS 将实现但不是强制性的可选功能。我猜更新级联是功能 F701 的一部分。可通过 Wikipedia 获得的 2011 年标准的最新草案说,例如: "如果没有功能 F701,“参考更新操作”,符合 SQL 语言不应包含 。" 如果更新级联对您很重要,您可以提出(或投票)DB2 增强请求 该草案中的表 38 具有“强制功能的功能分类和定义”,表 39 具有“可选功能的功能分类”。所以我想这就是你如何知道你需要能够说产品 X 符合 SQL 标准的最低要求。当然,Db2 将实现很多可选项目......比我建议的大多数其他 DBMS 更多。【参考方案2】:

我过去曾使用过 IBM DB2 on Cloud。我意识到它们遵循大多数 SQL 标准,但与任何其他 SQL 方言一样,它们也添加了一些自己的风格。我希望这是有道理的。

话虽如此,看起来大部分情况下,它们都遵循 SQL 2016 标准。以下是一些参考资料:

https://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/home/src/cmn/db2z_industrystandardsdb2.html

https://en.wikipedia.org/wiki/SQL:2016

希望对您有所帮助。

【讨论】:

谢谢@Shogun187。所以我想从某种意义上说,IBM DB2 on Cloud 有自己稍微不同的方言。 Db2-on-cloud 是目前的 DB2-LUW (Linux/Unix/Windows) 产品,大致符合 SQL-2016。答案显示了一个指向 Db2-for-Z/OS 的链接(这不是 Db2-on-cloud 的 SQL 风格)。更好的链接是:ibm.com/support/knowledgecenter/en/SSEPGG_11.5.0/…。但是,还有其他特定于云的语法,如 Db2-on-cloud ibm.com/support/knowledgecenter/SSFMBX/…的文档中所示 非常感谢@mao。我能问一下 SQL-2016 本身就是一种方言吗?当您提到 SQL-2016 时,它与 Microsoft SQL Server 2016 相同。对不起,我是新手。 @Leockl ,请在提问前阅读链接。 *** 不能替代教育。***条目(答案中的第二个链接)将有所帮助。了解一种语言的行业标准(例如 SQL 语言的 ISO/IEC 标准)与特定供应商(如 IBM 或 Microsoft)的该标准的实施及其各自的区别特定的 RDBMS 产品。 感谢@mao,我确实看到了 wiki 链接,但我仍然不清楚。我确实说过我是新手。但是,您上面最后回复中的最后一句话现在已经让我清楚了

以上是关于IBM Db2 on Cloud 中使用的 SQL 方言是啥的主要内容,如果未能解决你的问题,请参考以下文章

IBM Cloud 上的 Db2 的 SQL 格式是啥?

列出 DB2 Warehouse on Cloud 中的 SQL 语句历史记录

使用 PHP Cloud Foundry 应用程序连接到 IBM zOS 系统/DB2 表

求助各位大神,小弟初学IBM DB2,求助关于数据库创建问题,多谢!!

DB2 for IBM i:缺少 sql_function

如何使用 OpenQuery 在 SQL Server 中创建别名 (IBM DB2)