4

我完全知道集合划分可以通过一系列其他操作来完成,所以我的问题是:

SQL中有设置除法的命令吗?

4

3 回答 3

5

http://vadimtropashko.files.wordpress.com/2007/02/ch3.pdf

从第 32 页开始:

关系除法不是基本运算符。它可以用投影、笛卡尔积和集差来表示。

所以不行。:)

于 2008-09-21T02:54:56.913 回答
3

这是使用关系代数语法的一个很好的解释

给定表sailorsboats并且reserves(来自 Ramakrishnan 和 Gehrke 的“数据库管理系统”的示例),您可以使用以下查询计算已预订所有船只的水手:

SELECT name FROM sailors
WHERE Sid NOT IN (
    -- A sailor is disqualified if by attaching a boat,
    -- we obtain a tuple <sailor, boat> that is not in reserves
    SELECT s.Sid
    FROM sailors s, boats b
    WHERE (s.Sid, b.Bid) NOT IN (
        SELECT Sid, Bid FROM reserves
    )
);

-- Alternatively:
SELECT name FROM sailors s
WHERE NOT EXISTS (
    -- Not reserved boats
    (SELECT bid FROM boats)
    EXCEPT
    (SELECT r.bid FROM reserves r
    WHERE r.sid = s.sid)
);
于 2011-05-07T16:28:18.603 回答
2

相关问题:用于标记的数据库设计

答案的相关部分是这篇文章

所以简而言之,不,SQL中没有设置划分。

于 2008-09-21T03:02:57.550 回答