百度 实验三

1、将数据分别插入表S、C、SC;(各插入两条记录) 

insert into s  
values('0257','张一','男',25,'CS'), ('0258','张二','男',23,'IS') 

insert into c  
values('7','web编程基础','3',5), ('8','计算机导论','4',3)

      
insert into sc  
values('0257','7',56), ('0258','8',96)

 2、将表S、C、SC中的数据分别以.SQL文件或.txt文件的形式保存在磁盘上。

 

3、在表S、C、SC上练习数据的插入、修改、删除操作。

(比较在表上定义/未定义主码(Primary Key)或外码(Foreign Key)时的情况)

 

4、将表S、C、SC中的数据全部删除,再利用磁盘上备份的数据来恢复数据。

 

5、如果要在表SC中插入某个学生的选课信息(如:学号为“200215121”,课程号为“5”,成绩待定),应如何进行? 

insert into sc
(sno,cno,grade)
 
values('200215121','5',null) 

6、求各系学生的平均成绩,并把结果存入数据库Dept_grade 表,Dept_grade
创建如下;
create  table  Dept_grade 
( 
Sdept char(15), Avg_grade  smallint
 ) 

insert into Dept_grade

select sdept,AVG(grade)

from sc,s

where sc.sno=s.sno

group by sdept

 

 

7、将“CS”系全体学生的成绩置零;

 

update sc

set grade='0'

where sno  in

(

select sno

from s

where sdept='cs'

)

 

 

8、删除“CS”系全体学生的选课记录;

 

delete from sc

where sno 

in(

select  sno from s

where sdept='cs'

)

9、删除学号为“0251”的相关信息;

 

delete from s

where sno='0251'

10、将学号为“0251”的学生的学号修改为“S0251”;

 

update s

set sno='s0251'

where sno='0251'

11、把平均成绩大于分的男同学的学号和平均成绩存入另一个表S_GRADE(SNO,AVG_GRADE);

 

create table S_GRADE

(

SNO char(10),

AVG_GRADE float

)

 

insert into S_GRADE

select sno,AVG(grade)

from sc where sno

in(

select  sno from s

where ssex='男')

group by sno

having AVG(grade)>80

 

12、把选修了课程名为“数据结构”的学生的各门课成绩提高%;

 

update sc

set grade=grade*1.1

where sno in

(

select sno from sc,c

where sc.cno=c.cno and cname='数据结构')

 

13、把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生的成绩提高%;

 

update sc

set grade=grade*1.05

where grade<

(

select  AVG(grade)

from sc

where cno='2'

group by cno

)

 

14、把选修了“2”号课程,且成绩低于该门课程的平均成绩的学生成绩删除掉;

delete from sc

where cno='2'and grade<

(

select AVG(grade)

from  sc

where cno='2'

group by cno

)


  

  

posted @ 2013-11-05 18:19  博园少主  阅读(924)  评论(0编辑  收藏  举报