数据库
首页 > 数据库> > SQL是编程语言么? SQL是图灵完备的么?

SQL是编程语言么? SQL是图灵完备的么?

作者:互联网

依稀记得高三参加魔都某985自主招生面试时,一个面试老师问我SQL是什么,我当时首先说SQL是一个高级的编程语言。 当时那个老师说这个说法是有问题的。

其实我之前也比较疑惑,SQL和一般的编程语言比如C,之间的本质区别究竟是什么?

 

学过了复杂性理论之后,我现在可以比较透彻的理解这个问题了。

 

一般的编程语言是图灵完备的,意思是说,可以用它来模拟一个图灵机。 

比方说,用C语言模拟图灵机的纸带和状态转移函数显然是可行的。 反过来,用图灵机来实现C语言就更直接了。

 

问题来了,用SQL可以模拟一个图灵机么? 答案是,原始的标准SQL是做不到的。

一个图灵机,或者C语言,可以永远不终止,不宕机,做无休止的重复循环。

标准的SQL是做不到的, 如果使用recursive sql, 占用的空间会不断增大,直到宕机。

但是当下的不同SQL,有了更丰富的扩展功能,比方说PSMs,有了这些新的特性就可以模拟一个图灵机了。

 

标签:编程语言,宕机,图灵,C语言,图灵机,SQL,模拟
来源: https://www.cnblogs.com/heisenberg-/p/15754851.html