sql数据库中关系代数的除运算怎么理解?
答案:3 悬赏:40
解决时间 2021-01-13 07:49
- 提问者网友:愿为果
- 2021-01-12 18:11
sql数据库中关系代数的除运算怎么理解?
最佳答案
- 二级知识专家网友:往事埋风中
- 2021-01-12 19:46
R(A,B)/S(B)
将被除关系R按照除S不包含的属性A进行分组,查看每个分组a,如果分组a中包含的B属性值能够覆盖S中的B属性值,则该分组符合查询条件。
将被除关系R按照除S不包含的属性A进行分组,查看每个分组a,如果分组a中包含的B属性值能够覆盖S中的B属性值,则该分组符合查询条件。
全部回答
- 1楼网友:罪歌
- 2021-01-12 21:54
-- 案例
-- 1、创建R,S表案例的sql:
create table R (A varchar(1), B varchar(1), C varchar(1), D varchar(1));
create table S (C varchar(1), D varchar(1));
insert into R values ('a', 'b', 'c', 'd');
insert into R values ('a', 'b', 'e', 'f');
insert into R values ('b', 'c', 'e', 'f');
insert into R values ('e', 'd', 'c', 'd');
insert into R values ('e', 'd', 'e', 'f');
insert into R values ('a', 'b', 'd', 'e');
insert into S values ('c', 'd');
insert into S values ('e', 'f');
-- 2: R division S 的 结果sql:
SELECt R.A, R.B FROM R, S
WHERe R.C = S.C
AND R.D = S.D
GROUP BY R.A, R.B
HAVINg COUNT(1) = (SELECt COUNT(1) FROM S)
;
-- 1、创建R,S表案例的sql:
create table R (A varchar(1), B varchar(1), C varchar(1), D varchar(1));
create table S (C varchar(1), D varchar(1));
insert into R values ('a', 'b', 'c', 'd');
insert into R values ('a', 'b', 'e', 'f');
insert into R values ('b', 'c', 'e', 'f');
insert into R values ('e', 'd', 'c', 'd');
insert into R values ('e', 'd', 'e', 'f');
insert into R values ('a', 'b', 'd', 'e');
insert into S values ('c', 'd');
insert into S values ('e', 'f');
-- 2: R division S 的 结果sql:
SELECt R.A, R.B FROM R, S
WHERe R.C = S.C
AND R.D = S.D
GROUP BY R.A, R.B
HAVINg COUNT(1) = (SELECt COUNT(1) FROM S)
;
- 2楼网友:你可爱的野爹
- 2021-01-12 21:03
简单的说就是查找在被除数中能够完全覆盖除数的部分。追问还是不懂。。。举个例子不追答比如说被除数包括学号,姓名以及借书号,要查询借阅了1号和2号图书的同学信息,就可以把1号和2号组合成一个集合作为除数,二者相除的商就是借阅了1号和2号图书的同学的学号和姓名。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯