数据库原理及应用上机实验四

  |  

实验名称:实验四 数据更新和视图

实验目的

1.熟练掌握SQL的常用数据更新操作。

2.熟练应用INSERT,UPDATE,DELETE语句。

3.掌握更新操作的各种格式。

4.掌握视图的创建、更新、删除和查询

实验步骤与调试过程(请用简单的文字描述)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(1)插入如下学生记录(学号:95030,姓名:李莉,年龄:18);
(2)插入如下选课记录(95030,1);
(3)计算机系学生年龄改成20;
(4)数学系所有学生成绩改成0;
(5)把低于总平均成绩的女同学成绩提高5分;
(6)修改2号课程的成绩,若成绩小于75分提高5%,成绩大于75时提高4%(两个语句实现,注意顺序);
(7)删除95030学生信息;
(8)删除SC表中无成绩的记录;
(9)删除张娜的选课记录;
(10)删除数学系所有学生选课记录;
(11)删除不及格的学生选课记录;
(12)查询每一门课程成绩都大于等于80分的学生学号、姓名和性别,把值送往另一个已经存在的基本表STU(SNO,SNAME,SSEX)中;
(13)把所有学生学号和课程号连接追加到新表中;
(14)所有学生年龄增1;
(15)统计3门以上课程不及格的学生把相应的学生姓名、系别追加到另外一个表中。
(16)将学生学号、总成绩、平均成绩定义成一个视图,以便于查询。
(17)将Student表中所有女生记录定义为一个视图F_STU,并限制对视图的更新操作不能超过视图条件限制。
(18)将上一题建立的F_STU视图,更改为给所有男生记录定义的视图,属性包括学号、性别、年龄、所选课程号。
(19)在上一题的视图中找出选修了3号课程的学生。
(20)删除视图F_STU。

实验结果(上传实验结果截图或者简单文字描述)

1
2
3
4
5
6
7
8
9
1. 删除主键表数据如果有外键约束就会报错。

2. 插入数据用insert into 表直接+表。

3. 更新用update

4. 删除直接用delete 可以直接删除一行数据。

5.操作视图的时候要用到create view

疑难小结(总结个人在实验中遇到的问题或者心得体会)

1
2
3
1.修改数据时,如果省略where自子句,则表示要修改表中的所有元组,一开始不知道这个地方,错了好几次。
2.带子查询的修改语句,因为有updatewhere语句,而where子句后面可以跟子查询,所以子查询也可以嵌套在update语句中,用以构造执行修改操作的条件。
3.进行视图操作的时候,一开始不是很熟悉过程,然后看了老师发的课件。课件里面有讲解,然后才做的实验。

实验详细操作过程或程序清单

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)插入如下选课记录(950301

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;

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 实验名称:实验四 数据更新和视图
  2. 2. 实验目的
  3. 3. 实验步骤与调试过程(请用简单的文字描述)
  4. 4. 实验结果(上传实验结果截图或者简单文字描述)
  5. 5. 疑难小结(总结个人在实验中遇到的问题或者心得体会)
  6. 6. 实验详细操作过程或程序清单
,
字数统计:87.6k 载入天数...载入时分秒...