数据库课后习题参考答案

. . . .

(1)查询选了“C001”课程的学生姓名和所在系。 答:select sname,sdept from student where sno in( select sno from sc where cno = ' C001')

(2)查询通信工程系成绩80分以上的学生学号和姓名。 答:select sno,sname from student where sno in( select sno from sc where grade > 80) and sdept = '通信工程系'

(3)查询计算机系考试成绩最高的学生姓名。

答:select sname from student s join sc on s.sno = sc.sno where sdept = '计算机系' and grade = (

select max(grade) from sc join student s on s.sno = sc.sno where sdept = '计算机系')

(4)查询年龄最大的男生的姓名和年龄。 答:select sname,sage from student

Where sage = (select max(sage) from student and ssex = '男') and ssex = '男'

(5)查询“C001”课程的考试成绩高于“C001”课程的平均成绩的学生的学号和“C001”课程成绩。 答:select sno,grade from sc where cno = ' C001'

. word资料可编辑 .

. . . .

And grade > (select avg(grade) from sc where cno = ' C001')

24. 创建一个新表,表名为test_t,其结构为:(COL1, COL 2, COL 3),其中:

COL1:整型,允许空值。

COL2:字符型,长度为10 ,不允许空值。 COL3:字符型,长度为10 ,允许空值。

试写出按行插入如下数据的语句(空白处表示空值)。

COL1 COL2 COL3 B1 1 B2 C2 2 B3 答:create table test_t ( COL1 int,

COL2 char(10) not null, COL3 char(10) )

insert into test_t values(NULL, 'B1', NULL) insert into test_t values(1, 'B2', 'C2') insert into test_t(COL1, COL2) values(2, 'B3')

25. 将 “C001”课程的考试成绩加10分。

答:update sc set grade = grade + 10 where cno = 'C001'

. word资料可编辑 .

. . . .

26. 将计算机系所有选修了“计算机文化学”课程的学生成绩加10分,分别用子查询和多表连接形式

实现。 答:(1)子查询

update sc set grade = grade + 10 where sno in(

select sno from student where sdept = '计算机系') and cno in(

select cno from course where cname = '计算机文化学')

(2)多表连接

update sc set grade = grade + 10 from sc join student s on sc.sno = s.sno join course c on c.cno = sc.cno

where sdept = '计算机系' and canem = '计算机文化学'

27. 删除修课成绩小于50分的学生的选课记录。 答:delete from sc where grade < 50

28. 删除信息管理系考试成绩小于50分的学生的该门课程的修课纪录,分别用子查询和多表连接形

式实现。

答:(1) 用连接查询实现

. word资料可编辑 .

. . . .

delete from sc from sc join student s on s.sno=sc.sno where sdept = '信息管理系' and grade < 50 (2)用子查询实现

delete from sc where sno in (

select sno from student where sdept = '信息管理系' ) and grade < 50

29.删除VB考试成绩最低的学生的VB修课记录。 答:delete from sc where grade = (

select min(grade) from sc join course c on c.cno = sc.cno where cname = 'vb') and cno in(

select cno from course where cname = 'vb')

. word资料可编辑 .

. . . .

第5章 视图和索引

一. 选择题

1.下列关于视图的说法,正确的是 B

A.视图与基本表一样,也存储数据

B.对视图的操作最终都转换为对基本表的操作 C.视图的数据源只能是基本表

D.所有视图都可以实现对数据的增、删、改、查操作 2.在视图的定义语句中,只能包含

A.数据查询语句 C.创建表的语句

3.视图对应数据库三级模式中的_________。

A. 外模式 B. 内模式 C. 模式

D. 其他

A

B.数据增、删、改语句 D.全部都可以

4.下列关于通过视图更新数据的说法,错误的是 A

A.如果视图的定义涉及到多张表,则对这种视图一般情况下允许进行更新操作

B.如果定义视图的查询语句中含有GROUP BY子句,则对这种视图不允许进行更新操作 C.如果定义视图的查询语句中含有统计函数,则对这种视图不允许进行更新操作 D.如果视图数据来自单个基本表的行、列选择结果,则一般情况下允许进行更新操作 5.下列关于视图的说法,正确的是

B

A.通过视图可以提高数据查询效率 B.视图提供了数据的逻辑独立性

. word资料可编辑 .

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4