数据库原理复习题(1) 联系客服

发布时间 : 星期三 文章数据库原理复习题(1)更新完毕开始阅读c90c50e7caaedd3382c4d315

(1)查询顾客类别为“VIP”的所有顾客姓名、年龄 πCname,Cage(σCclass=?VIP? (Client)) (2)查询“001002”号商品的价格 πGprice(σGno=?001002? (Goods))

写出实现以下各题功能的SQL语句。

(1)查询商品名中带“电视”二字的所有商品信息。

SELECT * FROM Goods

WHERE Gname LIKE ?%电视%?; (2)查询“001002”和“001005”号商品的价格。

SELECT Gno ,Gprice FROM Goods

WHERE Gno IN (?001002?,?001005?);

(3)查询姓名为“王一”的顾客购买“001002”号商品的总数量。 SELECT Gno, SUM(QTY) FROM CG

WHERE Gno=?001002?AND cno IN( SELECT cno FROM Client

WHERE Cname=?王一?); (4)回收所有用户对Client表的修改权限。

REVOKE UPDATE ON TABLE Client FROM PUBLIC;

2. 设有三个关系S(S#,SNAME,AGE,SEX),C(C#,CNAME,TEACHER),SC(S#,C#,GRADE),试用关系代数表示下列查询操作:

(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。 πC#,CNAME(σTEACHER=’程军’(C))

(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。 πS#,SNAME(σAGE>21∧SEX=’男’(S))

(3)检索“李强”同学不学课程的课程号(C#)。 πC#(C)-πC#(σSNAME=’李强’(S)∞SC)

(4)检索选修全部课程的学生姓名(SNAME)。 πSNAME(S∞(πS#,C#(SC)÷πC#(C)))

3. 设数据库有三个关系:学生(学号,姓名,性别,年龄,专业),课程(课程号,课程名,学分,先行课程号),成绩(学号,课程号,成绩),试用关系代数表示下列查询操作: (1)查询所有年龄小于20岁的男学生。 σ性别=‘男’∧年龄<‘20’(学生)

(2)查询所有女同学的姓名和年龄。 π姓名,年龄(σ性别=’女’(学生))

(3)查询不作为其他课程先行课的课程号。 π课程号(课程)-π先行课程号(课程) (4)查询选修全部课程的学生名单。

π姓名((π学号,课程号(成绩)÷π课程号(课程))∞π学号,姓名(学生)

4. 设有如下3个关系:S(S#,SNAME,AGE,SEX),C(C#,CNAME,TEACHER),SC(S#,C#,GRADE),写出实现以下各题功能的SQL语句。 (1)求刘老师所授课程的每门课程的学生平均成绩。 Select count(distinct C#) from SC

(2)在SC中检索成绩为空值的学生学号和课程号。 select S#,C# from SC where GRADE is null

(3)求年龄大于所有女同学年龄的男学生姓名和年龄。 select SNAME,AGE from S

where SEX=?男?and AGE>all

(select AGE from S

where SEX=?女?) (4)把王同学的学习、选课和成绩全部删去。 delete from SC where S# in

(select S# from S

where SNAME=?王?)

5. 设有如下4个关系STUDENT(S#,SNAME,SEX,AGE,CLASS),COURSE(C#,CNAME,T#),TEACHER(T#,TNAME,TSEX,TAGE,PROF,DEPART),SCORE(S#,C#,GRADE)

写出实现以下各题功能的SQL语句。(1)查询选修课程号为?3-105?且成绩在60到80之间的所有记录 SELECT *

FROM SCORE

WHERE C#=?3-105? AND (GRADE BETWEEN 60 AND 80); (2)查询成绩为85、86或88的记录 SELECT *

FROM SCORE

WHERE GRADE IN (85,86,88);

(3)查询与学号为108的同学同岁的所有学生的S#、SNAME和AGE SELECT S#,SNAME,AGE FROM STUDENT WHERE AGE= (SELECT AGE FROM STUDENT WHERE S#=?108?);

(4)查询成绩比该课程平均成绩低的学生的成绩表 SELECT S#,C#,GRADE FROM SCORE A WHERE GRADE<

(SELECT AVG(GRADE)

FROM SCORE B

WHERE A.C#=B.C#);

6. 设数据库有三个关系:学生(学号,姓名,性别,年龄,专业),课程(课程号,课程名,学分,先行课程号),成绩(学号,课程号,成绩)。 写出实现以下各题功能的SQL语句。

(1)求选修C4课程的学生的平均年龄。 Select avg(年龄) from 学生

where 学号 in

(select 学号 from 成绩

where 课程号=?C4?);

(2)查询姓名以\王\开头的所有学生的姓名和年龄。 Select 姓名,年龄 from 学生

where 姓名 like ?王%?;

(3)查询年龄大于所有女同学年龄的男学生姓名和年龄。 Select 姓名,年龄 from 学生

where 性别=?男?and 年龄>all

(select 年龄 from 学生

where 性别=?女?); (4)把选修MATHS课不及格的成绩全改为空值。 Update 成绩 Set 成绩=null

Where 成绩<60 and 课程号 in (select 课程号 from 课程

wher课程名=?MATHS?); 四、设计题

1.某医院病房计算机管理中需要如下信息:

科室:科室名、科地址、科电话、医生姓名; 病房:病房号、床位号、所属科室名; 医生:姓名、职称、所属科室名、年龄、工作证号; 病人:病历号、姓名、性别、诊断、主管医生、病房号。

其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。

(1).根据上述语义画出ER图,在ER图中需注明实体的属性、联系的类型及实体的标识符。 (2)将ER模型转换成关系模型,并在每个关系模式的主键下加下划线。

(2) 科室(科室名,科地址,科电话)

病房(病房号,科室名,床位号)

医生(工作证号,姓名,职称,科室名,年龄)

病人(病历号,姓名,性别,诊断,主管医生,病房号)

2. 设有如下实体:

学生:学号、单位、姓名、性别、年龄、选修课程名 课程:编号、课程名、开课单位、任课教师号 教师:教师号、姓名、性别、职称、讲授课程编号 单位:单位名称、电话、教师号、教师名 上述实体中存在如下联系:

(1) 一个学生可选修多门课程,一门课程可为多个学生选修。 (2) 一个教师可讲授多门课程,一门课程可为多个教师讲授。 (3) 一个单位可有多个教师,一个教师只能属于一个单位。 试完成如下工作:

(1) 构造满足要求的全局E-R图。

(2) 将该全局E-R图转换为等价的关系模型表示的数据库逻辑结构。