这个投影会返回什么?

3
我刚开始学习SQL,如果我在一个表上运行这个投影,会返回空值还是会出现错误(语法不允许)?我在下面的图片中放置了表格和投影的所有信息,以便更容易阅读 :)

my table and projection


SQL和关系代数是两个不同的东西。另外,你得到了哪个“参考”来描述(你版本的)“关系代数”?你得到了哪个“定义”来描述投影?PS请尽可能使用文本而不是图像,比如这个问题。 (如果您想要符号,可以搜索“Unicode pi”等。) - philipxy
1个回答

1
在关系代数中,您的差集会产生错误,因为这两个集合不兼容:
对于集合并和集合差,涉及的两个关系必须是兼容的 - 也就是说,这两个关系必须具有相同的属性集。来自维基百科 在SQL中,集合差会起作用,因为联合兼容性以更宽松的方式理解,即元组度和数据类型必须匹配,但名称可以不同。所以这是有效的SQL:
SELECT X FROM A
EXCEPT
SELECT Z FROM A

结果将会是一张只有一个名为X的列的表格。
然而,即使在SQL中,你也无法从差集中投影Y,所以πY是不可能的,无论在SQL还是关系代数中。下面的SQL语句是无效的:
SELECT Y -- Y is not defined here, only X
FROM (
  SELECT X FROM A
  EXCEPT
  SELECT Z FROM A
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接