我最近读过一些文章,试图初步了解SQL和MySQL之间的区别,并且我从另一篇"Basically, MySQL is one of many books holding everything, and SQL is how you go about reading that book."的文章中得到了有用的报价。
取决于所使用的后端,即MySQL与PostgreSQL。 SQL查询突然无法生效吗?
是关系型DBMS与非关系型DBMS ?
答案 0 :(得分:3)
每个数据库都实现自己的SQL语言方言。这些方言可以以简单方式和基本方式变化。例如:
len()
与length()
)。row_number()
)。full outer join
。该列表还在继续。您应该将SQL视为一堆方言。它们彼此之间有很大的重叠,但是却有差异-就像世界各地说的英语方言一样。
答案 1 :(得分:2)
是的,方言可能会有所不同。
有两个原因:
ISO SQL标准不需要实现其定义的所有功能。 SQL标准中定义为optional features的大多数功能。
某些数据库甚至没有实现强制性功能,也没有为SQL标准预见另一种解决方案(可能是针对供应商锁定)的功能提供自己的语法。
我正在运营一个网站,旨在向这个丛林敞开大门:https://modern-sql.com/
例如,VALUES
子句是SQL-92中已经存在的最基本的功能之一(但仍然是可选功能)。您可以在此处查看如何(不)支持它:
但是,我希望情况会越来越好。例如。 MariaDB(我的网站上尚未提及)介绍了VALUES
clause in the recent release 10.3。