. . . .
(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资料可编辑 .