WHRER NAME=?李军?) AND CLASS= (SELECT CLASS FROM STUDENT WHERE NAME=?李军?);
(10)列出所有选修“计算机导论”课程的“男”同学的成绩表。
SELECT STUDENT.NO,COUSE.CNO,SCORE.DEGREE FROM STUDENT,COURSE,SCORE
WHERE STUDENT.NO=SCORE.NO AND COURSE.CNO=SCORE.CNO
AND COURSE.CNAME=?计算机导论? AND STUDENT.SEX=?男?;
6、设职工---社团数据库有三个基本表: 职工(职工号,姓名,年龄,性别);
社会团体(编号,名称,负责人号,活动地点); 参加(职工号,编号,参加日期);
试用SQL语句完成下列操作: 1)建立下列两个视图。
社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别); 参加人情况(职工号,姓名,社团编号,社团名称,参加日期)
CREATE VIEW 社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别) AS
SELECT 编号,名称,负责人, 姓名, 性别 FROM 社会团体,职工
WHERE 社会团体.负责任号=职工.职工号
CREATE VIEW参加人情况(职工号,姓名,社团编号,社团名称,参加日期) AS
SELECT 参加.职工号,职工.姓名,社会团体.编号,社会团体.名称,参加。参加日期
FROM 职工,社会团体,参加
WHERE 职工.职工号=参加.职工号 AND 参加.编号=社会团体.编号;
2)查找参加唱歌队或篮球队的职工号和姓名。 SELECT 职工号,姓名 FROM 职工,社会团体,参加
WHERE 职工.职工号=参加.职工号 AND 参加.编号=社会团体.编号 AND 社会团体.名称=?唱歌队?OR社会团体.名称=?篮球队?;
11
3)查找没有参加任何团体的职工情况。
SELECT * FROM 职工
WHERE NOT EXISTS (SELECT *
FROM 参加
WHERE 参加.职工号=职工.职工号);
4)查找参加了全部社会团体的职工情况。
SELECT * FROM 职工
WHERE NOT EXISTS (SELECT *
FROM 参加
WHERE NOT EXISTS
(SELECT* FROM 社会团体
WHERE 参加.职工号=职工.职工号AND
参加.编号=社会团体.编号));
5)查找至少参加了职工号为“1001”的职工所参加的全部社会团体的职工号。
SELECT 职工号 FROM 职工
WHERE NOT EXISTS(
SELECT * FROM参加参加1
WHERE 参加1.职工号=?1001?AND NOT EXISTS
(SELECT * FROM 参加.参加2
WHERE 参加2.编号=参加1.编号 AND 参加2.职工号=职工.职工号))
6)求每个社会团体的参加人数。
SELECT COUNT(职工号) FROM 参加 GROUP BY 编号
力赋给用户李平,并允许他将此权力授予其他用户。
GRANT SELECT,INSERT,DELECT ON 社会团体,参加 TO 李平
WITH GRANT OPTION;
12
7)把对“社会团体”和“参加”两个表的数据查看、插入和删除数据的权