SQL中是否设置了除法?

时间:2008-09-21 02:47:09

标签: sql database relational-algebra set-theory

我完全清楚可以通过一系列其他操作完成分组,所以我的问题是:

SQL中是否有用于设置分区的命令?

3 个答案:

答案 0 :(得分:5)

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

来自第32页:

  

关系部门不是基本的运营商。它可以用投影,笛卡尔积和集差表示。

所以,不。 :)

答案 1 :(得分:2)

相关问题:Database Design for Tagging

答案的相关部分是this article

简而言之,不,SQL中没有设置分区。

答案 2 :(得分:1)

Here is a nice explanation using relational algebra syntax

根据表sailorsboatsreserves(来自Ramakrishnan&amp; Gehrke的“数据库管理系统”的示例),您可以使用以下查询计算保留所有船只的水手:< / p>

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)
);