数据库技术复习题3 操作题 附答案 联系客服

发布时间 : 星期六 文章数据库技术复习题3 操作题 附答案更新完毕开始阅读

22. 已知如下关系模式:雇员E(ENO,EName,Age);工程P(PNO,PName);施工W(ENO,PNO,Salary);其中,E表示雇员关系,P表示工程关系,W表示施工关系,ENO为雇员号,Ename为雇员的姓名,Age为雇员的年龄,PNO为工程号,Pname为工程名,Salary为酬金。分别用关系代数和SQL语句表达如下查询: (1) 参加工程名为“立交桥”的雇员的平均酬金。

(2) 在参加工程P1的雇员中,查询比雇员E1的酬金高的雇员姓名。 (3) 参加的雇员数大于3的工程号。

23. 已知关系S, C,SC 的关系模式为:S( S#, SN, SD, SA);C(C#, CN, PC# );SC(S# , C# , G)其中: S# 学号;SN 学生姓名;SD 所属系名;SA 学生年龄;C# 课程号; CN 课程名; PC# 先行课号码;G 学习成绩;用SQL语句实现下列查询:

(1) 求选修课程号为C1课程的学生学号和学习成绩,结果按成绩降序排列。

(2) 查询选修课程号为C1课程且成绩为B以上的学生学号,姓名,系,年龄及成绩。

(3) 求不选修课程号为C3课程的学生姓名。 (4) 求选修课程超过3门的学生学号。

24. 已知关系S, C,SC 的关系模式为:S( S#, SN, SD, SA);C(C#, CN, PC# );SC(S# , C# , G);其中: S# 学号;SN 学生姓名;SD 所

属系名;SA 学生年龄;C# 课程号; CN 课程名; PC# 先行课号码;G 学习成绩;用SQL语句实现下列查询:

(1) 求学生姓名是以字母D打头的学生的学号,姓名。 (2) 求每一课程的间接先行课课程代号(即先行课的先行课)。 (3) 求选修了课程名为’J’的学生学号和姓名。 (4) 求课程号及选修该课程的学生人数。 答案:24

(1)SELECT S#,SN FROM S

WHERE SN LIKE 'D%'; (2)SELECT C# FROM C WHERE C#='P#'; (3)SELECT S#,SN FROM S WHERE CN='J';

(4)SELECT C# AS 课程号,COUNT(S#) AS 选课人数 FROM SC GROUP BY C#; 25

(1)SELECT name FROM person JION accident ON person.driver_id=accident.driver_id WHERE accident.date=’1989’;

(2)SELECT COUNT(date)as 事故数量 FROM person JOIN accident ON person.driver_id=accident.driver_id WHERE name ='John smith';

(3)SELECT name ,COUNT (date)

FROM person JOIN accident ON person.drive_id=accident.driver_id HAVING COUNT(date)>3;

(4)DELETE FROM car FROM car JOIN owns ON car.license=owns.license JOIN person ON person.driver_id=owns.driver_id WHERE Model='Mazda' AND person.name='John Smith';

25. 如下所示是一个保险公司的数据库,对这个关系数据库用SQL回

答以下问题:

person(drive_ id , name, address);car(license, year, model);

accident(date, driver _id , damage);owns(driver _ id, license);log(license, date, driver);

其中车主关系person包括:driver _ id(驾驶执照号);name(姓名);

address(地址)

汽车关系car包括:license(汽车牌照);year(出厂日期);model(型

号);

事故关系accident包括:date(出事日期);driver _ id(出事车主

的驾驶执照号);damage(毁坏程度);

汽车所属关系owns包括:driver _ id(出事车主的驾驶执照号);

license(汽车牌照);

日志关系log包括:license(汽车牌照);date(出事日期);driver _

id(出事车主的驾驶执照号)。 用SQL语句实现下列查询:

(1) 查找在1989年其车辆出过事故的车主姓名。

(2) 查找和John Smith的车有关的事故数量。 (3) 查找出过三次以上事故的司机姓名。 (4) 删除John Smith的马自达车(Mazda) 答案:

1

SELECT

name

FROM

person

JION

accident

ON

person.driver_id=accident.driver_id WHERE accident.date=’1989’;

(2)SELECT COUNT(date)as 事故数量 FROM person JOIN accident ON person.driver_id=accident.driver_id WHERE name ='John smith'; (3)SELECT name ,COUNT (date)

FROM person JOIN accident ON person.drive_id=accident.driver_id HAVING COUNT(date)>3;

(4)DELETE FROM car FROM car JOIN owns ON car.license=owns.license JOIN person ON person.driver_id=owns.driver_id WHERE Model='Mazda' AND person.name='John Smith';

26. 现有如下关系模型:T (T# , TN , G# , AGE);G (G# , GN , T#);C (C# , CN , HOUR);TC (T# , C# , ROOM);其中教师关系T 包括:教师代码 ( T# ) , 姓名(TN), 教研室代码(G#),年龄(AGE);教研室关系 G 包括:教研室代码(G#),教研室名称(GN),教研室主任的教师代码(T#);课程关系 C 包括:课程号(C#),课程名(CN),学时(HOUR);任教关系 TC 包括:教师代码(T#),课程号(C#),教室(ROOM);用SQL语句实现下列查询: