我想专注于 SQL 语言规范之一,以供学习和参考。哪个版本的 SQL 标准在 DBMS 中得到最广泛的支持,以便我可以将时间和精力集中在它上面?
Aar*_*and 15
我认为您正试图生活在 Joe Celko 的梦想世界中,在那里您只能使用标准 SQL,并且在任何给定的一周内,您可能必须将所有代码从 SQL Server 移植到 Oracle,然后将 Oracle 移植到 DB2,然后再次返回 SQL Server . 两次。
虽然标准 SQL 的核心和基本方面将在任何地方为您提供帮助,但我不建议将自己限制在这组语言中以免将来移植(或只是原则上)。就我个人而言,我尽可能坚持使用 ANSI 标准(例如 <> 与 !=、COALESCE 与 ISNULL、CURRENT_TIMESTAMP 与 GETDATE() 等),但我也不害怕使用 SQL Server 特定的使我的工作更轻松的东西。
了解 SQL 一般是如何工作的很重要;了解该语言在您的RDBMS 中的工作方式同样重要——包括与标准的偏差、与另一个 RDBMS 可能实现相同概念的方式的偏差以及其他地方不存在的专有扩展。
例如,SQL Server 涵盖了标准的很大一部分,并且更接近于完全符合每个新版本。它会覆盖100%吗?高度怀疑。它会继续添加标准中没有的专有扩展吗?当然。如果每个人都遵守标准并且没有人超出标准,那么选择一个平台而不是另一个平台就没有任何优势,我们都会使用相同的东西。
Jac*_*las 10
所有主要的 RDBMS 都在不同程度上支持不同版本的 SQL 规范,更全面地支持旧版本的规范。并非所有人都同样重视一致性(例如,Oracle 于 2001 年开始支持“ansi joins”,比SQL-92晚了近十年),正如@gbn 已经说过的那样,在实践中你需要知道每个产品使用的 SQL 的风格你用。
Postgres 是个例外,因为它“以符合标准而自豪”。出于“学习和参考目的”,您需要对数据库进行动手练习,而不仅仅是书本或标准中的知识,而 postgres 是学习绳索的理想平台,因为:
归档时间: |
|
查看次数: |
487 次 |
最近记录: |