问题:
每当面对人类可读的描述时查询时,开发人员通常依靠启发式方法和头脑风暴将其转换为 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中文网其他相关文章!