Terminology

為什麼 SQL 不被視為一種程式語言?

  • January 23, 2022

如果數據庫只是一個實現數據庫管理系統的電腦系統,而我們使用 SQL 來告訴它該做什麼,為什麼我們不將 SQL 視為一種程式語言呢?

來自維基百科:

程式語言是將字元串或圖形程序元素(在視覺化程式語言的情況下)轉換為各種機器程式碼輸出的任何規則集。

使用 SQL,您可以在 RDMS 上執行程式碼,RDMS 會在您執行查詢時輸入數據、操作數據並輸出數據。為什麼人們不認為它是一種程式語言呢?

我想這是一個定義問題,你可以問誰。一些開始將是該語言是否是圖靈完備的。SQL92 不是,但擴展了遞歸 CTE 和視窗函式,您可以建構一個可以模擬圖靈機的循環標記系統。還有諸如 T-SQL、PL-SQL 之類的過程擴展,可以正式將其轉變為程式語言(如果圖靈完備性足夠的話)。

但是,我有一種感覺,我們所說的程式語言的意思也是解決通用問題的難易程度。生命遊戲是圖靈完備的,但我們中很少有人會認為它是一種程式語言。另一方面,Brainfuck被我們大多數人認為是一種程式語言,但除了用於娛樂目的之外幾乎沒有用處。

也許是語言的預期用途決定了它是否被視為程式語言?SQL 主要用作數據轉換語言,因此可能不被視為通用程式語言。鑑於Excel lambda 是圖靈完備的,我們是否認為 Excel 公式是一種程式語言?

對你的問題沒有太多的回答,但有一些想法

引用自:https://dba.stackexchange.com/questions/306452