这个投影 return 是什么?
What would this projection return?
我是 sql 的新手,如果我 运行 这个投影在 table 上,它会 return 什么都没有还是不允许这个投影错误(句法)?我将 table 和投影的所有信息放在下面的这张图片中,以便于阅读:)
在关系代数中,您的集合差异会产生错误,因为这两个集合不兼容并集:
For set union and set difference, the two relations involved must be union-compatible—that is, the two relations must have the same set of attributes. from wikipedia
在 SQL 中,set difference 会起作用,因为联合兼容性以更宽松的方式理解,即元组度数和数据类型必须匹配,但名称不匹配。所以这是有效的 SQL:
SELECT X FROM A
EXCEPT
SELECT Z FROM A
结果将是 table,其中包含一个名为 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
)
我是 sql 的新手,如果我 运行 这个投影在 table 上,它会 return 什么都没有还是不允许这个投影错误(句法)?我将 table 和投影的所有信息放在下面的这张图片中,以便于阅读:)
在关系代数中,您的集合差异会产生错误,因为这两个集合不兼容并集:
For set union and set difference, the two relations involved must be union-compatible—that is, the two relations must have the same set of attributes. from wikipedia
在 SQL 中,set difference 会起作用,因为联合兼容性以更宽松的方式理解,即元组度数和数据类型必须匹配,但名称不匹配。所以这是有效的 SQL:
SELECT X FROM A
EXCEPT
SELECT Z FROM A
结果将是 table,其中包含一个名为 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
)