数据库第三章习题 下载本文

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)把对“社会团体”和“参加”两个表的数据查看、插入和删除数据的权