問題:
每當面對人類可讀的描述時查詢時,開發人員通常會依賴啟發式方法和腦力激盪將其轉換為SQL 查詢。然而,這個翻譯過程有系統的數學方法嗎?
答案:
是的,有一種系統的方法可以根據人類可讀的描述來建立 SQL 查詢。它涉及理解自然語言表達式、邏輯表達式、關係代數表達式和 SQL 表達式之間的對應關係。
考慮以下人類可讀的描述:
找出所有被某人喜歡但不喜歡的人就像 Ed。
喜歡的謂詞表:
[人]喜歡[喜歡]
關係代數表達式:
對於某些x,喜歡(人,x) AND 喜歡(x,喜歡) AND person = 'Bob' AND NOT 喜歡(x, 'Ed')
SQL 查詢:
SELECT DISTINCT l1.liker AS person, l2.liked AS liked FROM Likes l1 INNER JOIN Likes l2 ON l1.liked = l2.liker WHERE l1.liker = 'Bob' AND NOT (l1.liked, 'Ed') IN (SELECT * FROM Likes)
以上是系統方法能否將人類可讀的查詢描述轉換為 SQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!