数据库技术复习题2 操作题 下载本文

数据库技术试题

三、操作题

1. 设有关系数据库:

职工关系EMPLOYEE (职工号,职工名,街道,城市) 工作关系WORKS (职工号,公司号,工资) 公司关系COMPANY (公司号,公司名,城市)

假设职工可在多个公司兼职,请用关系代数表达式写出至少在公司号为‘C2’和‘C5’公司兼职的职工的职工号。

2. 设有关系数据库:

职工关系EMPLOYEE (职工号,职工名,街道,城市) 工作关系WORKS (职工号,公司号,工资) 公司关系COMPANY (公司号,公司名,城市) 试用SQL语句写出下列操作:

将所有在“联华公司”工作的职工加薪5﹪。

3. 图书出版管理数据库中有两个基本表: 图书 (书号,书名,作者编号,出版社,出版日期) 作者 (作者编号,作者名,年龄,地址)

试用SQL语句写出下列查询:查询年龄低于作者平均年龄的所有作者的作者名、书名和出版社。

4. 设有商店和顾客两个实体,

“商店”有属性商店编号、商店名、地址、电话, “顾客”有属性顾客编号、姓名、地址、年龄、性别。

假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。试画出ER图,并注明属性和联系类型。

5. 学校有多名学生,财务处每年要收一次学费。为财务处收学费工作设计一个数据库,包括两个关系:

学生 (学号,姓名,专业,入学日期)

收费 (学年,学号,学费,书费,总金额)

假设规定属性的类型:学费、书费、总金额为数值型数据;学号、姓名、学年、专业为字符型数据;入学日期为日期型数据。列的宽度自定义。 试用SQL语句定义上述表的结构。(定义中应包括主键子句和外键子句)

6. 用SQL语言定义

(1) 学生关系S,包括学号SNo、姓名SN、年龄SA、系别SD; (2) 课程关系C,包括课程号CNo、课程名CN、学分CC; (3) 学生选课关系SC,包括SNo、CNo和成绩G。

注意:说明主键码和外键码(如果有的话)。

7. 已知关系模式为

(1) 学生关系S,包括学号SNo、姓名SN、年龄SA、系别SD; (2) 课程关系C,包括课程号CNo、课程名CN、学分CC; (3) 学生选课关系SC,包括SNo、CNo和成绩G。 用SQL语言

(1) 对于学生选课关系SC,授予李小兰删除权限以及对SNo和CNo的修改权限;

(2) 删除学号为\”的学生;

(3) 从学生选课关系SC中,删除王云(学生关系中可能有重名)的所有选课 (4) 找出不是既大于20岁又属于计算机系的学生。

8. 已知关系模式为

(1) 学生关系S,包括学号SNo、姓名SN、年龄SA、系别SD; (2) 课程关系C,包括课程号CNo、课程名CN、学分CC; (3) 学生选课关系SC,包括SNo、CNo和成绩G。

用SQL语句查询每个学生的总成绩,输出学号和总成绩。

9. 有关图书发行的关系模型如下:

书店S(书店号SNo,书店名SN,地址A)

图书B(书号BNo,书名T,作者N,价格P) 图书馆L(馆号LNo,馆名LN,城市C) 图书发行SBL(SNo,LNo,BNo,发行量Q) 用SQL语言表达如下查询:

“上海图书馆”(馆名)收藏图书的书名和出售该书的书店名。

10. 图书管理数据库关系模型如下:

图书B(书号BN,书名T,作者A) 学生S(姓名N,班级C,借书证号LN) 借书L(借书证号LN,BN,日期D)

查询:2002.1.1(20020101)以前借书的学生姓名和书名。

11.已知关系模式:学生(学号,姓名,性别,年龄,系别),用询计算机系的男学生。

12. 有如下三个关系模式: 学生:S(S#,SN,AGE,SEX)

属性含义依次为:学号,姓名,年龄,性别 课程:C(C#,CN,TEACHER)

属性含义依次为:课程号,课程名,教师 选课:SC(S#,C#,SCORE) 属性含义依次为:学号,课程号,成绩 用SQL语句表达如下查询。

(1).查询“王兰”同学没有选修的课程的课程号。 (2).查询选修3门以上(含3门)课程的学生的学号和

SQL语句查姓名。

(3).将成绩低于60分的女同学的成绩提高5%。 (4).查询选修课程包含LIU老师所授课的学生的学号。

13. 假设有三个表:

商场表:M(MNO,MNAME,CITY)

各属性含义依次为商场号、商场名和商场所在城市; 商品表:P(PNO,PNAME,CITY,COLOR)

各属性含义依次为商品号、商品名、产地和商品颜色; 销售表:S(MNO,PNO,QTY)

各属性含义依次为商场号、商品号和销售数量。

(1) 请用SQL语句创建销售表S,要求包含主码、外码(如果有的话)的定义,同时保证销售数量不能为空。

(2) 试用SQL语句写出下列查询:查询不销售北京生产的商品的商场名。 (3) 试用SQL语句实现下列查询:查询北京市的商场所销售的各种商品的销售总数量。

14. 假设新华书店数据库中有2个关系模式:

出版社(出版社编号,出版社名称,出版社地址) 图书(图书编号,书名,出版社编号,图书分类,定价)

试用SQL语句完成以下查询。

(1).查询出版社编号为“CS”的图书编号、书名和定价。

(2).查询图书分类为“教材”的书名、定价和出版社名称。

(3).按照出版社编号统计每个出版社出版的图书有多少种和平均定价。 (4).查询由高等教育出版社出版、图书分类为“教材”且定价超过30元的图书编号和书名。”

(5).设有关系模式R(A,B,C,D,E),F={A→C,C→D,B→C,DE→C,CE

→A}。求R的所有候选键。

15. 已知学生表 S 和选课表 SC :用 SQL语言完成如下的操作:

(1) 将一个新学生(学号: s6 ,姓名:吴丽,所在系:自动化,性别:女,年龄: 20 )的纪录插入到学生表中。

(2) 将学号为 s1 的学生的年龄由 17 岁改为 18 岁。 (3) 建立计算机系学生的视图,视图名为 computer_student 。 (4) 查询选修了“程序设计”课程的学生的姓名和分数。 (5) 求学号为 s1 的学生的总分和平均分。

S sno sn sd sex age s1 赵亦 计算机 女 17 s2 钱尔 信息 男 18 s3 孙珊 信息 女 20 s4 李思 自动化 男 21 s5 周武 计算机 男 19

SC sno cn score s1 程序设计 92 s1 微机原理 85 s2 数据库 80 s3 程序设计 90 s4 编译原理 88 16. 现有关系数据库如下:学生(学号,姓名,性别,专业,奖学金);课程(课号,课名,学分) ;学习(学号,课号,分数)。 用SQL语言实现下列查询:

(1) 查询“国际贸易”专业中获得奖学金1000元的学生信息,包括学号、姓名、课名和分数。

(2) 查询没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业。

(3) 对成绩得过满分(100分)的学生,如果没有获得奖学金的,将其奖学金设为1000元。

17. 设有学生—课程关系数据库,包含学生关系S(学号S# ,学生姓名SN,

所属系名SD,学生年龄SA) 、课程关系C(课程号C# ,课程名字CN,先行课号码PC#)、和学生选课关系SC(学号S# ,课程号C# ,学生成绩G)。用SQL语句实现下列查询:

(1) 求计算机系学生的学号、姓名。 (2) 求不选修C3课程的学生姓名。 (3) 将李明的数学成绩改为90分。 (4) 删除99011学生的选课记录。

(5) 为计算机系学生创建一个视图,并在该视图上查询年龄在20岁以下的学生。

18. 设有学生—课程关系数据库,包含有学生关系S(学号S# ,学生姓名SN,

所属系名SD,学生年龄SA) 、课程关系C(课程号C# ,课程名字CN,先行课号码PC#)、和学生选课关系SC(学号S# ,课程号C# ,学生成绩G)。用SQL语句实现下列查询:

(1) 求年龄不在20岁与22岁之间的学生学号和年龄。 (2) 求选修课程号为C1且成绩为B以上的学生姓名及成绩。 (3) 求选修了课程名为‘J’的学生学号和姓名。

(4) 将一个新生记录(学号:99001,姓名:李强,所在系:计算机,年龄:19)插入学生关系S中。

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

(3) 参加3个以上工程的职工号。

20. 已知如下关系模式:雇员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的工程号。

21. 已知关系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门的学生学号。

22. 已知关系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) 求课程号及选修该课程的学生人数。

23. 如下所示是一个保险公司的数据库,对这个关系数据库用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(汽车牌

照);

用SQL语句实现下列查询:

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

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

24. 现有如下关系模型: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语句实现下列查询:

(1) 查找“数学”教研室的教研室主任的教师姓名。 (2) 查找不教课的教师姓名。

(3) 查询“外语”教研室教授的所有课程名称。 (4) 查找教授课程在三门以上的教师姓名。

25. 已知关系S,P,J,SPJ的关系模式为:S(SNO,SN,CITY);P(PNO,PN,COLOR);J(JNO,JN,CITY);SPJ(SNO,JNO,PNO,QTY);其中:SNO为供应商号,SN为供应商姓名,CITY为所在城市;PNO为零件号,PN为零件名称,COLOR为颜色;JNO为工程项目号,JN为工程项目名称;QTY为数量。

试用SQL语言完成下列查询:

(1) 求出使用全部零件的工程项目名称。

(2) 取出供应商姓名,该供应商提供最小号码(即零件号最小)的红色零件。 (3) 取出1个以上供应商提供的零件号。

26. 已知关系S,P,J,SPJ的关系模式为:S(SNO,SN,CITY);P(PNO,PN,COLOR);J(JNO,JN,CITY);SPJ(SNO,JNO,PNO,QTY);其中:SNO为供应商号,SN为供应商姓名,CITY为所在城市;PNO为零件号,PN为零件名称,COLOR为颜色;JNO为工程项目号,JN为工程项目名称;QTY为数量。

试用SQL语言完成下列查询: (1) 求出供应全部零件的供应商姓名。

(2) 取出供应商姓名,该供应商提供最大号码(即零件号最大)的蓝色零件。 (3) 取出在同一城市的每对工程项目号。

27. 关系模式描述如下:

工作人员:EMPLOYEE(NAME, SSN, BDATE, ADDRESS, SEX, SALARY, SUPERSSN, DNO);

部门:DEPARTMENT(DNAME, DNUMBER, MSGSSN, MSGSTARTDATE); 工程项目:PROJECT(PNAME, PNUMBER, PLOCATION, DNUM);

工作人员与工程项目:WORKS_ON(SSN,PNO,HOURS);属性说明如下:NAME:雇员名;SSN:雇员的身份证号;BDATE:雇员生日;ADDRESS:

雇员地址;SEX:雇员性别;SALARY:雇员工资;SUPERSSN:雇员直接领到的身份证号;DNO:工作人员所属部门号;DNAME:部门名字;DNUMBER:部门号;MSGSSN:部门领导身份证号;MSGSTARTDATE:部门领导开始领导工作的日期;PNAME:项目名称;PNUMBER:项目号;PLOCATION:项目所在地;DNUM:项目所属部门号;PNO:项目号;HOURS:工作小时数。用SQL表达如下查询:

(1) 参加项目名为“公路1”的雇员名。

(2) 查询参加工程号为“P1”,且酬金最高的职工号及其工资。

28. 关系模式描述如下:

工作人员:EMPLOYEE(NAME, SSN, BDATE, ADDRESS, SEX, SALARY, SUPERSSN, DNO);

部门:DEPARTMENT(DNAME, DNUMBER, MSGSSN, MSGSTARTDATE); 工程项目:PROJECT(PNAME, PNUMBER, PLOCATION, DNUM); 工作人员与工程项目:WORKS_ON(SSN,PNO,HOURS);

属性说明如下:NAME:雇员名;SSN:雇员的身份证号;BDATE:雇员生日;ADDRESS:雇员地址;SEX:雇员性别;SALARY:雇员工资;SUPERSSN:雇员直接领到的身份证号;DNO:工作人员所属部门号;DNAME:部门名字;DNUMBER:部门号;MSGSSN:部门领导身份证号;MSGSTARTDATE:部门领导开始领导工作的日期;PNAME:项目名称;PNUMBER:项目号;PLOCATION:项目所在地;DNUM:项目所属部门号;PNO:项目号;HOURS:工作小时数。用关系代数和SQL表达如下查询:

(1) 列出没有参加项目P1的员工姓名。

(2) 列出所有由张三直接领导的工作人员的名字和所在部门名字。

29. 在供应商、零件数据库中有以下三个关系模式:供应商:S(SNO,SNAME,CITY,STATUS)

P(PNO,PNAME,WEIGHT,COLOR,CITY) 供应货:SP(SNO,PNO,QTY);各属性的含义可由属性名体现,不再重复,供货关系SP表示某供应商SNO,供应了PNO零件,数量为QTY。用SQL语句实现下列查询: (1) 求供应红色零件的供应商名字。

(2) 求北京供应商的号码、名字和状况(STATUS)。 (3) 求零件P2的总供应量。

(4) 把零件P2的重量增加6,颜色改为蓝色。

30. 有一学校教学数据库,包括学生、课程、教师、学生成绩4个关系。学生关系S(SNO,SN,AGE,SEX),有属性:学号,姓名,年龄,性别;课程关系C(CNO,CN,PCNO)包括属性:课程号,课程名,先修课课程号;教师关系T(ENO,EN,DEPT),包括属性:职工号,姓名,系别;学生成绩关系SC(SNO,CNO,ENO,G) 包括属性:学生号,课程号,任课教师职工号和学生学习成绩;请用关系代数表达式完成下列操作: (1) 求选修所有课程并且成绩为A的学生姓名。 (2) 求选修了王平老师讲授的所有课程的学生姓名。 (3) 求不选修信息系老师开设的所有课程的学生姓名。

31. 供应商-零件-工程项目数据库由以下4个关系模式构成:S(SNO , SNAME , STATUS , CITY);P(PNO , PNAME , COLOR , WEIGHT , CITY);J(JNO , JNAME , CITY);SPJ(SNO , PNO , JNO , QTY);供应商S , 零件P和工程项目J 分别由供应商号(SNO),零件号(PNO)和工程项目号(JNO)唯一标识。供货SPJ是指由某个供应商向某个工程项目供应某些数量的某种零件。请用SQL语言完成如下操作:

(1) 找出给北京的工程项目提供不同的零件号。 (2) 将没有供货的所有工程项目从J中删除。 (3) 查询提供全部零件的供应商名。

(4) 查询这样的工程项目号:供给该工程项目的零件P1的平均供应量大于供给工程项目J1的任何一种零件的最大供应量。

(5) 定义一个视图,它由所有这样的工程项目(工程项目号与所在城市名称)组成:它们由供应商S1供货且使用零件P1。

32. 已知关系S,P,J,SPJ的关系模式为:S(SNO,SN,CITY);P(PNO,PN,COLOR);J(JNO,JN,CITY);SPJ(SNO,JNO,PNO,QTY);其中:SNO为供应商号,SN为供应商姓名,CITY为所在城市;PNO为零件号,PN为零件名称,COLOR为颜色;JNO为工程项目号,JN为工程项目名称;QTY为数量。

试用SQL语言完成下列查询:

(1) 求出使用全部零件的工程项目名称。

(2) 把零件号为P2的零件重量增加5,颜色改为黄色。 (3) 取出在同一城市的每对工程项目号。

33. 现有关系数据库如下:学生(学号,姓名,性别,专业,奖学金);课程(课号,课名,学分) ;学习(学号,课号,分数) 。 用SQL语句实现下列查询:

(1) 查询没有任何一门课程成绩在80分以下的学生的信息,包括学号、姓名和专业。

(2) 把学生“张三”的“数据库”课程分数改为86分。

(3) 查询没有获得奖学金、同时至少有一门课程成绩在95分以上的学生信息,包括学号、姓名和专业。

(4) 求各专业学生“数据库”课程的平均成绩。

34. 已知关系S,SC,C的关系模式为:S(S#,SN,SA,SD);SC(S#,C#,G);C(C#,CN,PC#);其中:S#为学号,SN为学生姓名,SA为年龄,SD为系名,C#为课程号,G为成绩,CN为课程名称,PC#为先行课号。 试用SQL语言完成下列查询: (1) 选修课名为“J”的学生姓名。 (2) 选修全部课程的学生姓名。 (3) 不选“C2”课程的学生姓名。 (4) 选修课超过三门的学生姓名。

35. 已知关系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) 求没有选修‘1’号课程的学生姓名。

(2) 求选修了课程名为“信息系统”的学生学号和姓名。 (3) 求课程号及选修该课程的学生人数。

(4) 求每一门课程的间接先行课号(即先行课的先行课)。

36. 已知关系S,P,J,SPJ的关系模式为:S(SNO,SN,CITY);P(PNO,PN,COLOR,WEIGHT);J(JNO,JN,CITY);SPJ(SNO,JNO,PNO,QTY)。其中:SNO为供应商号,SN为供应商姓名,CITY为供应商所在城市;PNO为零件号,PN为零件名称,COLOR为零件颜色,WEIGHT为零件重量;JNO为工程项目号,JN为工程项目名称,CITY为工程项目所在城市,QTY为数量。

试用SQL语言完成下列查询: (1) 求出提供红色零件的供应商姓名。

(2) 提供零件‘P1’给工程项目‘J1’的供应商姓名。 (3) 没有使用‘S1’供应商提供的零件的工程项目名称。 (4) 取出由一个以上供应商提供的零件号。

37. 现有如下关系模型:T (T# , TN , G# , AGE, SEX);G (G# , GN , T#);C (C# ,

CN , HOUR);TC (T# , C# , ROOM)。其中,教师关系T 包括:教师代码(T#)、姓名(TN)、教研室代码(G#)、年龄(AGE)、性别(SEX);教研室关系 G 包括:教研室代码(G#)、教研室名称(GN)、教研室主任的教师代码(T#);课程关系 C 包括:课程号(C#)、课程名(CN)、学时(HOUR);任教关系TC包括:教师代码(T#)、课程号(C#)、教室(ROOM)。 用SQL语言查询:

(1) 查询讲授课程名为“数据库”的所有教师的姓名及所在教研室名称。 (2) 查询“计算机基础”教研室讲授的所有课程的课程名和学时数。 (3) 查询讲授课程在至少四门的教师姓名及所在教研室名称。

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

(1) 查询讲授了全部课程的男教师的姓名。

(2) 查询“张红”老师讲授的所有课程的课程名和学时数。 (3) 查询“计算机基础”教研室每一个老师所讲授的课程门数。

39. 现有关系数据库如下: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语句实现下列查询: (1) 查询教授全部课程的教师姓名。 (2) 查询“外语”教研室所教课程的名称。 (3) 查找所教课程在三门以上的教师姓名。

40. 现有关系数据库如下:学生(学号,姓名,性别,专业);课程(课号,课名,学分) ;学习(学号,课号,分数) 用SQL语句实现下列查询:

(1) 查询所学课程包含学生S3所学课程的学生姓名。 (2) 查询选修数据库课程的男同学的姓名。 (3) 查询选修4门以上课程的学生的总成绩。

41. 设有以下3个关系模式:图书关系:BOOK(B#, BNAME, AUTHOR, PRICE);借阅者关系:READER(R#, RNAME, ADDRESS);借阅关系:BR(B#, R#, DATE)。其中,图书关系BOOK包括:图书编号(B#)、图书名(BNAME)、图书作者(AUTHOR)、图书价格(PRICE);借阅者关系READER包括:借书证号(R#)、借阅人姓名(RNAME)、借阅人地址(ADDRESS);借阅关系BR包括:图书编号(B#)、借书证号(R#)、借书日期(DATE)。

用SQL语言查询:

(1) 查询借阅全部图书的借阅者姓名。

(2) 查询借阅了“数据库系统原理”图书的借阅者姓名。 (3) 查询借阅了五本以上图书的借阅者姓名。

42. 设有以下3个关系模式:图书关系:BOOK(B#, BNAME, AUTHOR, PRICE);借阅者关系:READER(R#, RNAME, ADDRESS);借阅关系:BR(B#, R#, DATE);其中,图书关系BOOK包括:图书编号(B#)、图书名(BNAME)、图书作者(AUTHOR)、图书价格(PRICE);借阅者关系READER包括:借书证号(R#)、借阅人姓名(RNAME)、借阅人地址(ADDRESS);借阅关系BR包括:图书编号(B#)、借书证号(R#)、借书日期(DATE)。 用SQL语言查询:

(1) 查询张明所借的图书名。

(2) 查询2008年10月1日前借出的图书名。 (3) 查询没有借阅“数据库系统原理”的借阅者姓名。

43. 设有以下四个关系模式:employee(person-name,street,city); works(person-name,company-name,salary); company(company-name,city);

manages(person-name,manager-name), 用SQL语言实现下列查询:

(1) 找出First Bank Corporation所有年收入在10000美元以上的员工的姓名和居住的街道、城市。

(2) 找出所有居住地域工作的公司在同一城市的员工的姓名。

(3) 找出此数据库中不在First Bank Corporation工作的所有员工的姓名。

44. 高校项目管理数据库中的关系如下:

Teacher(tnu,tname,sex,age,degree,depart);

Project(pnu,pname,type,fee,starttime,endtime,conclusion)

Implicate(tnu, pnu,role,period)。其中Teacher表示教师,可简单地用T表示,tnu,tname,sex,age,degree,depart分别表示教师编号、姓名、性别、年龄、学历和所属部门;Project表示项目,可简单地用P表示, pnu,pname,type,fee,starttime,endtime,conclusion分别表示项目编号、名称、类型、费用、开始时间、结束时间和结题结论。Implicate表示参与,可简单地用I表示,role,period分别表示教师在项目中承担的角色和参与的时间(月数)。 用SQL语句实现下列查询

(1) 参与过20万元及以上项目的教师姓名和所属部门; (2) 至少参与过两个项目的教师姓名和年龄。 (3) 查询编号为“P05”的项目的结题情况; (4) 列出所有的纵向(不是横向)项目; (5) 参与过类型为”863”项目的教师姓名和年龄; (6) 统计每个教师参与纵向项目的次数; (7) 将修改三张表的权限授予“徐辉”。

45. 现有如下关系模型: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语言查询:

(1) 查找至少能讲授两门课程的教师姓名。

(2) 求软件与理论教研室中讲授了全部课程的教师姓名。

(3) 能讲授“编译原理”课程且年龄不大于30岁的教师名字和年龄。

46.设有供应商关系S和零件关系P,如下图所示,S和P的主键分别是“供应商号”和“零件号”,P的外键是“供应商号”。

分析下列3个操作能否被正确执行,并说明理由。 (1) 在P中插入元组(′P2′,′白′,′A2′) (2) 在P中插入元组(NULL,′绿′,′A1′) (3) 在P中插入元组(′P4′,′白′,′A5′)

47. 有4个关系模式如下:

出版社(出版社编号,出版社名称)

图书 (图书编号,书名,出版社编号,定价) 作者 (作者编号,姓名)

著书 (图书编号,作者编号,作者排序) 注:作者排序=1表示第一作者,依此类推。

用SQL语句,完成下面的查询。 (1) 查询所有定价超过20元的书名。 (2) 统计每个出版社图书的平均定价。 (3) 将科学出版社的所有图书定价下调5%。

(4) 列出所有图书的书名、第一作者姓名和出版社名称。

48. 学生选课数据库有三个表即学生表S、课程表C和学生选课表SC,它们的结构如下所示,请根据所给的每种功能写出相应的查询语句。(每小题5分,共20分)

S(S# ,SN ,SEX ,AGE ,DEPT) C(C# ,CN)

SC(S# ,C# ,GRADE)

其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE为成绩。 (1) 统计学生选课数据库中学生的总人数。 (2) 查询学生姓名及其所选修课程的课程号和成绩。

(3) 从学生选课库中查询出被2至4名学生选修的所有课程信息。 (4) 从学生选课库中查询出选修至少两门课程的学生学号。