在职工-社团数据库有3个基本表:职工(职工号,姓名,年龄,性别);
社会团体(编号,名称,负责人,活动地点);参加(职工号,编号,参加日期)。其中:1.职工号的主码是职工号。2.社会团体表的主码是编号;外码是负责人,被参照表为职工表,对应...
社会团体(编号,名称,负责人,活动地点);参加(职工号,编号,参加日期)。其中:1.职工号的主码是职工号。2.社会团体表的主码是编号;外码是负责人,被参照表为职工表,对应属性为职工号。3.参加表的职工号和编号为主吗;职工号为外码其被参照表为职工表,对应属性为职工号;编号为外码,被参照表为社会团体表,对应属性为编号。 使用SQL语句表达下列操作:1.查找参加了职工号为“1001”的职工所参加全部社会团体的职工号; 2.求参加人数最多的社会团体名称和参加人数; 3.把对社会团体和参加两个表的数据查看、插入和删除数据的权利付给用户李平,并允许他将此权利授予其他用户。
帮帮忙吧!谢谢了 展开
帮帮忙吧!谢谢了 展开
2个回答
展开全部
1,社会团体(编号,名称,负责人,活动地点) society
参加(职工号,编号,参加日期)Join
职工(职工号) Employee
select 职工号
from Employee a
where a.职工号 in(select 职工号 from Join
where 编号 in(select 编号 from Join
where 职工号='1001'));
2,select (select 名称 from society where 编号=Join.编号) 社会团体名称,
sum(职工编号) 参加人数
from Join where 编号 =
(select bb.编号 from (select 编号,count(*) 数量 from Join group by 编号 ) bb
where bb.数量 =( select max(数量) from --得到最大数量
(select 编号,count(*) 数量 from Join
group by 编号 ) aa ) ); --根据最大数量得到团体编号
3,grant select, insert, delete on society to 李平 with grant option;
grant select, insert, delete on Join to 李平 with grant option;
参加(职工号,编号,参加日期)Join
职工(职工号) Employee
select 职工号
from Employee a
where a.职工号 in(select 职工号 from Join
where 编号 in(select 编号 from Join
where 职工号='1001'));
2,select (select 名称 from society where 编号=Join.编号) 社会团体名称,
sum(职工编号) 参加人数
from Join where 编号 =
(select bb.编号 from (select 编号,count(*) 数量 from Join group by 编号 ) bb
where bb.数量 =( select max(数量) from --得到最大数量
(select 编号,count(*) 数量 from Join
group by 编号 ) aa ) ); --根据最大数量得到团体编号
3,grant select, insert, delete on society to 李平 with grant option;
grant select, insert, delete on Join to 李平 with grant option;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询