首先,SQL的表达能力没有看起来那么清晰。事实证明,SQL的聚合,分组和算术功能具有非常微妙的效果。先验地,似乎可行的是,通过使用这些功能对代数运算符进行某种编码,实际上可以表达SQL的可到达性。事实证明,SQL-92实际上不是这种情况,它是“本地”的。
这意味着SQL-92捕获PTIME需要扩展,并且该扩展允许结果语言为“非本地”。
然而,允许有序的结构,并与现实有限的运算,证明了SQL-92无法用语言表达的可达性将意味着统一TC0⊊NLOGSPACE,因此很可能是相当困难的。(可以说,SQL-92中的数据类型始终存在自然的线性排序,因此可以假定基础结构是有序的。)
然后情况又发生了变化,因为SQL:1999(SQL3)包含了递归。因此,SQL:1999似乎至少与定点逻辑具有相同的表达能力(尽管我认为细节可能仍然很棘手,包括顺序问题)。我不知道新构造是否使逻辑比捕获PTIME所需的逻辑更具表达性,并且需要进行一些研究才能确定这一点。同时,在2003年,2006年,2008年和2011 年进行了进一步修订(作为ISO文件,只有草稿是免费提供的)。这些修订添加了许多新功能,包括允许XQuery作为SQL查询的“一部分”。我的猜测是,“ SQL”现在比捕获PTIME所需的表达更具表现力,但是这样做所需的编码可能需要大型的,而不自然的查询,而实际系统可能不支持这种查询。
因此,我认为有证据表明,没有可以精确捕获PTIME的SQL的工业扩展模糊地回答您的问题。简而言之,工业扩展功能非常强大,可能已经超过了PTIME。如果确实SQL:1999已经足够强大,足以捕获至少PTIME,那么也不清楚“ SQL”在您的问题中的真正含义,因为必须定义“ SQL”来表示比SQL更早的版本: 1999年。
最后,Grohe对寻找捕获PTIME的逻辑的调查(Janoma也提到)不仅表明捕获捕获PTIME是棘手的,除非我们有线性顺序作为语言的一部分,而且证明没有这种逻辑也可能暗示。P≠NP