سؤال

أنا أدرك تمامًا أن قسمة المجموعة يمكن تحقيقها من خلال سلسلة من العمليات الأخرى، لذا سؤالي هو:

هل هناك أمر لتقسيم المجموعة في SQL؟

هل كانت مفيدة؟

المحلول

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

من الصفحة 32:

القسمة العلائقية ليست عاملاً أساسيًا.ويمكن التعبير عنها بدلالة الإسقاط والضرب الديكارتي وفرق المجموعة.

لذا، لا.:)

نصائح أخرى

سؤال ذو صلة: تصميم قاعدة البيانات لوضع العلامات

والجزء ذو الصلة من الإجابة هو هذا المقال

باختصار، لا، لا يوجد تقسيم محدد في SQL.

هنا شرح لطيف باستخدام بناء جملة الجبر العلائقي.

الجداول المعطاة sailors, boats و 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)
);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top