如果数据库只是一个实现数据库管理系统的计算机系统,而我们使用 SQL 来告诉它该做什么,为什么我们不将 SQL 视为一种编程语言呢?
来自维基百科:
编程语言是将字符串或图形程序元素(在可视化编程语言的情况下)转换为各种机器代码输出的任何规则集。
使用 SQL,您可以在 RDMS 上运行代码,RDMS 会在您运行查询时输入数据、操作数据并输出数据。为什么人们不认为它是一种编程语言呢?
如果数据库只是一个实现数据库管理系统的计算机系统,而我们使用 SQL 来告诉它该做什么,为什么我们不将 SQL 视为一种编程语言呢?
来自维基百科:
编程语言是将字符串或图形程序元素(在可视化编程语言的情况下)转换为各种机器代码输出的任何规则集。
使用 SQL,您可以在 RDMS 上运行代码,RDMS 会在您运行查询时输入数据、操作数据并输出数据。为什么人们不认为它是一种编程语言呢?
我想这是一个定义问题,你可以问谁。一些开始将是该语言是否是图灵完备的。SQL92 不是,但扩展了递归 CTE 和窗口函数,您可以构建一个可以模拟图灵机的循环标记系统。还有诸如 T-SQL、PL-SQL 之类的过程扩展,可以正式将其转变为编程语言(如果图灵完备性足够的话)。
但是,我有一种感觉,我们所说的编程语言的意思也是解决通用问题的难易程度。生命游戏是图灵完备的,但我们中很少有人会认为它是一种编程语言。另一方面,Brainfuck被我们大多数人认为是一种编程语言,但除了用于娱乐目的之外几乎没有用处。
也许是语言的预期用途决定了它是否被视为编程语言?SQL 主要用作数据转换语言,因此可能不被视为通用编程语言。鉴于Excel lambda 是图灵完备的,我们是否认为 Excel 公式是一种编程语言?
对你的问题没有太多的回答,但有一些想法