我记得在大学里参加数据库课程,我们学生们可以选择我们的数据库管理系统.作为我第一次使用数据库,我记得很困惑,根据使用的数据库管理系统,sql语句有不同的语法.在本课程之前,我认为sql语言是一种通用语言,用户可以使用该语言与所有数据库进行通信.
那是什么交易?是否有定义的sql标准?如果是这样,为什么数据库管理系统制造商与规范不同?标准设计是否不完整,并认为公司会将其作为语言扩展的基础?最初的sql标准是否已过时,制造商是否需要构建更多功能?原始版本是否未及时更新以满足现代应用程序的需求?是为了创造收入的商业模式吗?
谢谢.
解决方法
是的,有sql ANSI标准,参见例如
a draft of the SQL-92 one.但是,每个数据库供应商都实现了标准sql的“扩展子集” – 如果你考虑一下,在某种意义上,任何东西都是其他任何东西的“扩展子集”;-).毫无疑问,这背后存在商业原因,但即使是像Postgresql这样的非商业实现也表现得差不多……