谁能推荐一本好的 ANSI SQL 参考手册?
当您需要基本或更深入的解释或示例时,我不必指教程,而是要查找的适当参考文档。
目前我正在使用W3Schools SQL 教程和SQL 教程,它们还可以,但我觉得它们不够“深入”。
当然,每个主要的 RDBMS 生产商都会有一些针对他们自己产品的参考手册,但它们往往有偏见,有时会使用专有扩展。
已编辑:问题的目的是关注数据库引擎的共同点,即 SQL 根。但了解这些差异也可能是一件积极的事情——这很有趣。
这是SQL:1992的“Second Informal Review Draft”,对于我所查找的所有内容来说似乎已经足够准确了。1992 涵盖了 DBMS 中经常使用的大部分内容。
SQL 不像 C 或 Java,其中有语言标准,然后许多公司和组织正在按照标准尽可能地实施该语言。
相反,主要数据库出现在 SQL 标准之前,该标准是一种折衷方案,每个数据库供应商都希望在标准中获得他们特定的方言和功能。
因此,数据库之间的多样性比典型的编程语言编译器之间的多样性要多得多,并且要使用数据库,您确实需要了解特定的 SQL 方言。
话虽如此,我有 Gultzan 和 Peltzer 的SQL-99 Complete,真的在我的书架上。如果您需要了解标准真正包含的内容,这是一本好书。(是的,自 SQL-99 以来有一个更新的版本,但似乎没有人关心。)
编辑:实际上,自 SQL-99 以来不仅有一个较新的版本,而是三个:SQL:2003、SQL:2006 和 SQL:2008。而且似乎仍然没有人关心。实际上,很多人甚至不关心 SQL-99,所以 SQL-92 在某种程度上仍然是“标准”。
ANSI 文档都可以从——你猜对了——ANSI 购买。
ANSI SQL 参考手册的主要问题是您找不到实现它的数据库。而当它发生时,你会发现ANSI SQL 无法解决一些日常问题。这就是所有专业数据库都定义扩展的原因。
因此,在工作中,您需要一份针对您使用的特定数据库版本的参考手册。
这让我想起了我的大学二年级课程,我们学习的是关系理论而不是 SQL。
读一本关于关系理论的好书。自 Edgar Codd 早在 1969 年最初定义关系模型以来,数据库理论和实践一直在发展。独立于任何 SQL 产品,SQL 和关系理论利用数十年的研究来展示对任何地方可用的材料的最新处理。任何具有适度到高级 SQL 背景的人都将从本书中的许多见解中受益。
奥莱利2009 年 1 月
我发现学习 SQL 的最佳方法是真正开始编写查询并理解连接/条件等的性质。我发现这个链接有很多 DIY 示例是最好的:http ://sqlzoo.net/
我真的很喜欢 Joe Celko 写的任何东西
这有点过时了,但这本书对了解不同供应商如何实现事物很有帮助,我相信它包含 ANSII 标准。
DevGuru 资源对我来说总是很有效:http: //www.devguru.com/technologies/t-sql/home.asp
虽然我必须承认它严格来说并不是一个以“ANSI”为重点的资源。我一直以 MS SQL 为中心,刚开始时它对我很有帮助。恕我直言,您最好的选择是使用多种资源 - 特别是您要使用的每个数据库平台至少包括其中一种。
引用 DevGuru 的 T-SQL 资源介绍:
尽管有 SQL 标准,例如 ANSI SQL92 和 SQL99,但大多数数据库都使用自己的方言和/或扩展名。在 SQL Server 7 和 SQL Server 2000 中使用的 Microsoft 风格的 SQL 称为 T-SQL。虽然本快速参考中的许多示例可能适用于其他数据库,但假定使用的是 SQL Server 2000,特别是对于存储过程等高级主题。
我认为这可能对你有帮助。
了解 ANSI SQL 标准 作者:Kevin Kline
http://www.amazon.com/gp/product/1565927443/102-0105946-4028970?v=glance&n=283155