怎么理解:SQL不是完整的程序语言?

如何理解这句话:

SQL不是完整的程序语言。
阅读 5.3k
2 个回答

问题的关键是,什么是“完整的程序语言”?不知道这句话上下文中“完整的程序语言”的定义,所以完全无法回答这个问题。

==========================
下面是另一个角度,可能这句话原意无关...

在计算机理论里面,有一种叫做图灵机的东西,它不是一个真实的计算机,这是一个模型,但是它定义了当前计算机解决问题能力的上限。

如果一个系统(指令集、计算机语言,等等)能够解决所有图灵机能够解决的问题,那么就称它是图灵完备的。

[这里要忽略内存的限制。图灵机也是有无限“内存”的]

所有通用的编程语言(C,java,pascal,python,....)都是图灵完备的。

SQL 虽然没有循环语句,但是 WITH RECURSIVE 的存在,使得 SQL 也是图灵完备的。(一个简单的构造性证明

=========================
[我开始以为不完整就是说它不是图灵完备的,查了下它竟然是 ...]
[所以不完整这是说它没有循环?]
[它有能力,并不意味着用它来开发是简单的,或者可行的。由于它不是为通用开发设计的,使得用它来进行通用会非常困难。其实图灵机的结构是非常简单的,造一个出来也不困难,但是实际的计算机没有直接按照图灵机制造的,也没有实用的开发语言是直接基于图灵机模型的,就是因为直接基于图灵机开发会是非常困难的。]

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题