这个是题目:
七、设职工社团数据库有三个基本表:
职工(职工号,姓名,年龄,性别);
     社会团体(编号,名称,负责人,活动地点);
     参加(职工号,编号,参加日期)。
    其中:
    1)职工表的主码为职工号。
    
2)社会团体表的主码为编号;外码为负责人,被参照表为职工表,对应属性为职工号。
    
3)参加表的职工号和编号为主码;职工号为外码,其被参照表为职工表,对应属性为职工号;编号为外码,其被参照表为社会团体表,对应属性为编号。
    
试用SQL语句表达下列操作:
    l)定义职工表、社会团体表和参加表,并说明其主码和参照关系。
    2)建立下列两个视图。
社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别);
    参加人情况(职工号,姓名,社团编号,社团名称,参加日期)
    3)查找参加唱歌队或篮球队的职工号和姓名。
    4)查找没有参加任何社会团体的职工情况。
    5)查找参加了全部社会团体的职工情况。
    6)查找参加了职工号为“1001”的职工所参加的全部社会团体的职工号。
    7)求每个社会团体的参加人数。
    8)求参加人数最多的社会团体的名称和参加人数。
    9)求参加人数超过100人的社会团体的名称和负责人。
    10)把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并允许他再将此权力授予其他用户。1)use shuju
create table worker(
职工号 int not null primary key,
姓名 char(20),
年龄 int,
性别 char(20))create table shetuan(
编号 int not null primary key,
名称 char(20),
负责人 char(20),
活动地点 char(20))create table joiner(
职工号 int,
编号 int,
参加日期 datetime,
primary key(职工号,编号),
foreign key (职工号) references worker(职工号),
foreign key (编号)references worker(编号))2)
create view manger
as
select shetuan.编号 as '编号',shetuan.名称 as '名称',worker.职工号 as '负责人职工号',worker.姓名 as '负责人姓名',worker.性别 as '负责人性别'
from worker,shetuan
where shetuan.负责人=worker.姓名
gocreate view people
as
select worker.职工号 as '职工号',worker.姓名 as '姓名',shetuan.编号 as '社团编号',shetuan.名称 as '社团名称',joiner.参加日期 as '参加日期'
where worker.职工号=joiner.职工号
go3)
select distinct worker.职工号,worker.姓名 from joiner,shetuan,worker
where worker.职工号=joiner.职工号4)不会写;5)
select 职工号 from joiner
group by 职工号
having count(*)=(select count(*) from shetuan)
select * from worker
where joiner.职工号=worker.职工号
6)好象不对
select shetuan.编号 from shetuan,worker
where worker.职工号='1001'
select worker.职工号 from worker,joiner
where shetuan.编号='1'or shetuan.编号='2'7)
select 编号,count(*)
from joiner
group by 编号8)9)10)写是写了就是不对。。求大虾帮忙