Tôi hoàn toàn nhận thức được rằng bộ phận được thiết lập có thể được thực hiện thông qua một loạt các hoạt động khác, vì vậy câu hỏi của tôi là:Có thiết lập phân chia trong SQL không?
Có lệnh nào để phân chia bộ trong SQL không?
Tôi hoàn toàn nhận thức được rằng bộ phận được thiết lập có thể được thực hiện thông qua một loạt các hoạt động khác, vì vậy câu hỏi của tôi là:Có thiết lập phân chia trong SQL không?
Có lệnh nào để phân chia bộ trong SQL không?
http://vadimtropashko.files.wordpress.com/2007/02/ch3.pdf
Từ trang 32:
Relational Division không phải là một nhà điều hành cơ bản. Nó có thể được thể hiện dưới dạng chiếu, sản phẩm Descartes, và thiết lập sự khác biệt.
Vì vậy, không. :)
câu hỏi liên quan: Database Design for Tagging
Và có liên quan một phần của câu trả lời là this article
Vì vậy, trong ngắn hạn, không, không có sự phân chia bộ trong SQL.
Here is a nice explanation using relational algebra syntax.
Với bảng sailors
, boats
và reserves
(ví dụ từ Ramakrishnan & "Cơ sở dữ liệu hệ thống quản lý" Gehrke của) bạn có thể tính toán thủy thủ người đã đặt tất cả các tàu thuyền với các truy vấn sau đây:
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)
);
Tôi đã kiểm tra lớp Intro của Gehrke và tôi có thể xác nhận tất cả các ví dụ là hải lý :) –
Bạn có thể làm rõ những gì bạn có ý nghĩa bởi thiết lập bộ phận? Bạn có nghĩa là những thứ như giao lộ? –
Ngoài ra, bạn đang nói về ANSI SQL, hoặc thực hiện của một nhà cung cấp cụ thể của SQL? –