数据库系统试题集(有答案)(6)

2018-11-20 19:09

按分类号降序显示“图书”数据库中各种图书的分类号、书名和作者。 5.select *; from 图书;

where 出版单位 in(\清华大学\北京大学\order by分类号

按分类号升序显示“图书”数据库中由清华大学出版社和北京大学出版社出版的所有图书。 6.select count(*); from 图书;

where 单价 between 50 and 100

统计出“图书”数据库中单价在50至100之间的图书数量。 7.select 借书证号,count(*); from 借阅;

where 借书日期<{2001/01/01}; group by借书证号; having count(*)>=3

分组统计出2000年底以前借阅的、借阅数不低于3本的借书证号和借阅数量。

8.select 单位,count(*); from 读者,借阅;

where 读者.借书证号 = 借阅.借书证号; group by 单位

按单位分组统计出各单位借阅图书的数量。

(2)对于学生选课关系,其关系模式为:

学生(学号,姓名,年龄,所在系); 课程(课程名,课程号,先行课); 选课(学号,课程号,成绩)。 用关系代数完成以下查询:

1) 求学过的数据库课程的学生的姓名和学号。 2) 求学过的数据库和数据结构的学生的姓名和学号。 3) 求没有学过数据库课程的学生学号。 4) 求学过的数据库的先行课的学生学号。 答:1)∏

姓名,学号

( 课程名=‘数据库’(学生∞选课∞课程))

26

2)∏

程名=‘数据结构’

姓名,学号

课程名=‘数据库

?(学生∞选课∞ 课程))∩ ∏ 姓名,学号(

(学生∞选课∞课程))

(学生∞选课∞课程))

姓名,学号

3)∏

(学生)- ∏

姓名,学号(

课程名=‘数据库’

4) 法一;设课程的两个副本为课程A和课程B, ∏ 课程A.学号((

法二: ∏学号(∏课程号,学号(选课)∞ ∏先行课号(σ现有如下关系.

职工(职工号.姓名.性别.职务 .家庭地址.所在部门编号) 部门(部门编号.部门名称 地址 电话)

保健(保健卡编号.职上号. 检查身体日期.健康状况) 查找所有女科长的姓名和家庭地址. 查找“ 办公室”的科长姓名和家庭地址.

查找“财务科” 中健康状况为“良的”的职工姓名和家庭地址

课程名=‘数据库’

课程

A.课程名=‘数据库?(课

课程A.先行课=课程B课程号 程A ∞

课程B )) ∞ 选课)

(选课))

六、 用关系代我装达式写出如下查询(每小题4分,共12分)

七、用SQL语言完成下列功能

(1)、现有如下关系:学生(学号,姓名,性别,专业,出生年月) 教师(教师编号,姓名,所在部门,职称)(18)

授课(教师编号,学号,课程编号,课程名称,教材,学分,成绩)

1. 查找学习“数据库原理”课程且成绩不及格的学生学号和任课教师编号; 2. 查找学习“英语”课程的“计算机应用”专业学生的学号,姓名和成绩; 3. 查找教师“李洪”所教过的学生成绩为90分以上(包括90)的学生学号,

27

姓名和专业;

4. 删除学生表中学号为“9903016”的记录;

5. 将编号为“60016”的教师所在的部门该为“计算机”; 6. 建立“计算机应用”专业成绩有过不及格的学生的视图;

答:1、 SELECT 学号,教师编号 FROM 授课 WHERE 课程名称='数据库原理' AND 成绩<60;

2、 SELECT 学号,姓名,成绩 FROM 授课,学生

WHERE 学生.学号=授课.学号 AND 专业='计算机应用' AND 课程名称='英语';

3、 SELECT 授课.学号,学生.姓名,专业 FROM 学生,教师,授课 WHERE 学生.学号=授课.学号 AND 教师.教师编号=授课.教师编号 AND 教师.

姓名='李洪' AND 成绩>=90;

4、 DELETE FROM 学生 WHERE 学号='9903016'; 5、 UPDATE 教师 SET 所在部门='计算机系' WHERE 教师编号='60016'; 6、 CREATE VIEW 成绩

AS SELECT 学生.学号,姓名,成绩 FROM 学生,授课

WHERE 学生.学号=授课.学号 AND 专业='计算机应用' AND 成绩<60; (2). 设有关系数据库:职工关系EMPLOYEE (职工号,职工名,街道,城市) 工作关系WORKS (职工号,公司号,工资) 公司关系COMPANY (公司号,公司名,城市)

假设职工可在多个公司兼职,请用SQL语句查询至少在公司号为?C2?和?C5?公司兼职的职工的职工号。 答: SELECT 职工号 FROM WORKS

WHERE WORKS (职工号=“C2” AND职工号=“C5”; (3). 依据上题的关系数据库,试用SQL语句写出下列操作: 将所有在“联华公司”工作的职工加薪5﹪。 UPDATE WORKS SET工资 = 工资 * 1.05 WHERE公司号IN

28

(SELECT公司号 FROM COMPANY

WHERE公司名 =?联华公司?);

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

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

SELECT 作者名,书名,出版社 FROM 图书,作者

WHERE 图书 . 作者编号 = 作者 . 作者编号 AND 年龄 < = (SELECT AVG (年龄) FROM 作者);

(5). 学校有多名学生,财务处每年要收一次学费。为财务处收学费工作设计一个数据库,包括两个关系: 学生 (学号,姓名,专业,入学日期) 收费 (学年,学号,学费,书费,总金额)

假设规定属性的类型:学费、书费、总金额为数值型数据;学号、姓名、学年、专业为字符型数据;入学日期为日期型数据。列的宽度自定义。 试用SQL语句定义上述表的结构。(定义中应包括主键子句和外键子句) CREATE TABLE 学生 (学号 CHAR (8), 姓名 CHAR (8), 专业 CHAR (13), 入学日期 DATE, PRIMARY KEY (学号)); CREATE TABLE 收费 (学年 CHAR (10), 学号 CHAR (8), 学费 NUMERIC (4), 书费 NUMERIC (5,2), 总金额 NUMERIC (7,2), PRIMARY KEY (学年,学号),

FOREIGN KEY (学号) REFERENCES 学生 (学号));

29

(6)设销售数据模型如下: 厂家 S (SNO,SNAME,CITY )

产品 P (PNO,PNAME,COLOR,WEIGHT) 工程 J (JNO,JNAME,CITY) 销售 SPJ (SNO,PNO,JNO,QTY)

用SQL完成查询:与“长风”在同一城市的厂家名。 SELECT S.SNAME FROM S,S AS X

WHERE X.SNAME=“长风” AND S.CITY=X.CITY

(7).在上题的数据模型的基础上,用SQL完成查询:至少使用P1,P2两种产品的工程名: SELECT JNAME FROM J

WHERE JNO IN (SELECT JNO FROM SPJ WHERE PNO=\ AND JNO IN (SELECT JNO FROM SPJ WHERE PNO=\

(8)设有职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY),其属性分别表示职工号、姓名、年龄、性别、工资。为每个工资低于1000元的女职工加薪200元,试写出这个操作的SQL语句。 UPDATE EMP

SET SALARY=SALARY+200 WHERE SALAEY<1000 AND SEX='女'

(9)以下各小题题基于教学数据库的三个基本表 学生 S(S#,SNAME,AGE,SEX) 学习 SC(S#,C#,GRADE) 课程 C(C#,CNAME,TEACHER)

1. 试用关系代数表达式表示下列查询语句:检索年龄小于23岁的男学生的学号

30


数据库系统试题集(有答案)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017年电大秋外国文学专题形成性考核册答案(全)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: