1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
| (1)插入如下学生记录(学号:95030,姓名:李莉,年龄:18)
insert into student(sno,sname,sage) values ('95030','李莉',18)
(2)插入如下选课记录(95030,1)
insert into sc(sno,cno) values('95030',1)
(3)计算机系学生年龄改成20
update student set sage=20 where sdept='CS'
(4)把数学系所有学生成绩改成0
update sc set grade=0 where 'MA'= (select sdept from student where student.sno=sc.sno)
(5)把低于总平均成绩的女同学成绩提高5分
update sc set grade+=5 where grade< (select avg(grade) from sc inner join student on student.sno=sc.sno where ssex='女')
(6)修改2号课程的成绩,若成绩小于75分提高5%,成绩大于75时提高4%(两个语句实现,注意顺序) update sc set grade=grade*(1+0.05) where cno='002' and grade<75;
update sc set grade=grade*(1+0.04) where cno='002' and grade>75;
(7)删除95030学生信息
delete from student where sno='95030'
(8)删除SC表中无成绩的记录
delete from sc where grade is null;
(9)删除张娜的选课记录
delete from sc where sno=(select sno from student where sname='张娜')
(10)删除数学系所有学生选课记录
delete from sc where sno in (select sno from student where sdept='MA')
(11)删除不及格的学生选课记录
delete from sc where grade<60
(12)查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个已经存在的基本表STU(SNO,SNAME,SSEX)中
create table STU (sno char(8), sname char(8), ssex char(2) )
insert into STU(sno,sname,ssex) select distinct student.sno,sname,ssex from student,sc where student.sno not in (select sno from sc where grade<80) and student.sno=sc.sno
(13)把所有学生学号和课程号连接追加到新表中
create table stu1 ( sno char(8), cno char(3) ); insert into stu1(sno,cno) select sno,cno from sc;
(14)所有学生年龄增1
update student set sage=sage+1;
(15)统计3门以上课程不及格的学生把相应的学生姓名、系别追加到另外一个表中
create table stu2 ( sname char(8), sdept char(20) ); insert into stu2(sname,sdept) select sname,sdept from student where sno in ( select distinct sno from sc where grade<60 group by sno having count(grade)>=3 );
(16)将学生学号、总成绩、平均成绩定义成一个视图,以便于查询。
create view grade_sum_avg as select sno,sum(grade) as totalgrade,avg(grade) as avg_grade from sc group by sno;
(17)将Student表中所有女生记录定义为一个视图F_STU,并限制对视图的更新操作不能超过视图条件限制。
create view F_STU(sno,name,dept,sex,age) as select * from student where ssex='女'; with check option;
(18)将上一题建立的F_STU视图,更改为给所有男生记录定义的视图,属性包括学号、性别、年龄、所选课程号。
alter view F_STU(sno,ssex,sage,cno) as select student.sno,ssex,sage,cno from student,sc where student.sno=sc.sno and ssex='男'
(19)在上一题的视图中找出选修了3号课程的学生。
select F_STU.sno,sname,cno from F_STU,sc where F_STU.sno=sc.sno and sc.cno='3';
(20)删除视图F_STU
drop view F_STU;
|