SQL新手,请原谅问题不精确。
对于";正常的";查询,SQL语法在方言之间是否可以相互理解?举个具体的例子,SELECT * FROM [Pending Scans]
在所有常见的方言中都有效吗?
不是在寻找一个详尽的列表!
否。这将是:
select *
from pending_scans;
方括号对于转义标识符是非标准的。标识符的标准转义符是双引号,现在大多数数据库都支持这一点。
我应该注意的是,对于除了最简单的查询之外的所有查询——比如您编写的查询——方言之间的细微差异使得尝试编写完整的可移植代码成为一件愚蠢的事情。例如,函数名称是不同的,例如len()
和length()
,并且日期/时间操作是完全定制的。
如果您编写的应用程序需要支持多种不同的数据库类型,一种典型的方法是将API定义为一组视图,并将这些视图与简单的SELECT
查询一起使用(如您的示例中所示(。