栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将聚合运算符从SQL转换为关系代数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将聚合运算符从SQL转换为关系代数

这只是答案的一半…

可以使用条件连接和投影来找到“由两个或多个水手预定的船”的关系,它们都在您允许的操作集中:

SELECt DISTINCT R1.bid  FROM Reserves AS R1        JOIN Reserves AS R2          ON R1.bid = R2.bid  AND R1.sid < R2.sid;

可以使用条件联接(两次)和投影来找到“三个或三个以上船员预订的船”的关系,它们都在您允许的操作集中:

SELECt DISTINCT R1.bid  FROM Reserves AS R1       JOIN Reserves AS R2          ON R1.bid = R2.bid  AND R1.sid < R2.sid       JOIN Reserves AS R3          ON R1.bid = R3.bid          AND R2.sid < R3.sid;

如果 我们

EXCEPT
在标准SQL中有减号运算符,例如:

SELECt DISTINCT R1.bid  FROM Reserves AS R1        JOIN Reserves AS R2          ON R1.bid = R2.bid  AND R1.sid < R2.sidEXCEPTSELECt DISTINCT R1.bid  FROM Reserves AS R1       JOIN Reserves AS R2          ON R1.bid = R2.bid  AND R1.sid < R2.sid       JOIN Reserves AS R3          ON R1.bid = R3.bid          AND R2.sid < R3.sid;

如果
我们有限制(

WHERe
在SQL中)和半差分(又名antijoin)运算符(例如
NOTIN
在SQL中):

SELECt DISTINCT R1.bid  FROM Reserves AS R1        JOIN Reserves AS R2          ON R1.bid = R2.bid  AND R1.sid < R2.sid WHERe R1.bid NOT IN (SELECt DISTINCT R1.bid  FROM Reserves AS R1       JOIN Reserves AS R2          ON R1.bid = R2.bid  AND R1.sid < R2.sid       JOIN Reserves AS R3          ON R1.bid = R3.bid          AND R2.sid < R3.sid          );

…但是您允许的操作集不包括限制,半差或减:(



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395044.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号