当前位置:文档之家› 数据库实验三实验报告

数据库实验三实验报告

数据库___课程实验报告实验名称:交互式SQL(二)
姓名班级学号
实验台
编号
同组学生
实验课表现出勤、表现得分25% 实验报告
得分50%
实验总分操作结果得分25%
实验目的:
1.学会熟练使用INSERT语句对数据表进行数据插入操作。

2.学会使用UPDATE语句对数据表中的数据进行修改操作。

3.学会使用DELETE语句对数据表中的数据进行删除操作。

4.了解使用视图的目的与好处,掌握视图与基本表的关系,掌握如何使用SQL语句创建、修改、删除和查询视图。

实验内容:
一、数据的插入、删除和修改
创建表XS1(包括学号、姓名、性别和出生日期字段,各个字段属性自定),然后使用SELECT子句向表XS1中插入多行数据(专业为“电子”的学生数据)。

create view xs1()
as select学号,姓名,性别,出生日期from xs where专业='电子';
修改XS1表的结构,增加1个“平均成绩”字段,并根据XS_KC表修改每个学生的“平均成绩”。

alter table xs1 add平均成绩int;
update xs1 set平均成绩=(
select avg(成绩)from xs_kc where xs_kc.学号=xs1.学号group by学号);
将XS表中计算机专业的学生的总学分增加10分。

update xs set总学分=总学分+10 where专业='计算机';
将XS表中学号为“4102101”的同学的总学分增加4分,备注改为“提前修完一门课程”。

update xs set总学分=总学分+4,备注='提前修完一门课程'
where学号='4102101';
将XS_KC表中学号为“4102101”的同学的“计算机基础”课程的成绩增加10分。

update xs_kc set成绩=成绩+10
where学号='4102101'and课程号=
(select课程号from kc where kc.课程名='计算机基础');
修改XS1表的结构,增加1个“总学分”字段,并使其值为该学生所学各门功课的学分之和。

alter table xs1 add总学分tinyint;
update xs1 set总学分=
(select sum(学分)from kc,xs_kc
where xs_kc.学号=xs1.学号and xs_kc.课程号= kc.课程号
group by学号);
将XS1表中总学分小于10分的学生数据删除。

delete from xs1 where总学分<10;
将XS_KC表中“数据库”课程的所有成绩信息删除。

delete from xs_kc
where课程号=(select课程号from kc where kc.课程名='数据库');
将XS_KC表中其学号在XS表中不存在或其课程号在KC表中不存在的学生的成绩信息删除。

delete from xs_kc where not exists(
select课程号from kc where kc.课程名!=xs_kc.课程号
or not exists(select学号from xs where xs.学号!=xs_kc.学号));
删除XS1表中前两个同学的基本信息。

delete top(2)from xs1;
删除XS1表中的所有数据。

delete from xs1;
二、视图操作
使用SQL语句创建视图V_SCORE1,使其显示计算机专业学生的所有基本信息,并保证以后对该视图的修改都要满足专业为“计算机”这个条件。

create view V_SCORE1 as
select*from xs where专业='计算机'with check option;
使用SQL语句创建视图V_SCORE2,显示计算机专业每个学生的学号、姓名、选修的课程名称及其成绩。

create view v_score2
as select xs.学号,姓名,课程名,成绩from xs,kc,xs_kc
where xs.专业='计算机'and xs.学号=xs_kc.学号and xs_kc.课程号=kc.课程号;
使用T-SQL语句修改视图V_SCORE2,使其显示每个专业、每门课程的平均成绩,结果格式为:专业课程名平均成绩
………………
alter view v_score2 as select专业,课程名,avg(成绩)平均成绩from xs,kc,xs_kc where xs.学号=xs_kc.学号and kc.课程号=xs_kc.课程号group by专业,课程名;
通过V_SCORE2查看计算机专业每门课程的平均成绩。

select平均成绩from v_score2 where专业='计算机';
通过V_SCORE2查看各个专业所有课程的平均成绩,结果格式为:
专业平均成绩
…………
select专业,平均成绩from v_score2;
使用视图V_SCORE1向其基表XS表中输入数据(数据自定),并观察什么样的数据可以插入,什么样的数据不可以插入,并解释为什么。

insert into V_SCORE1
values('4202019','张强',1,'1981-11-19',0,'电子',null);
消息2601,级别14,状态1,第1 行不能在具有唯一索引'XS_Tips' 的对象'dbo.xs' 中插入重复键的行。

语句已终止。

原因是目标视图或者目标视图所跨越的某一视图指定了WITH CHECK OPTION,而该操作的一个或多个结果行又不符合CHECK OPTION 约束。

只有专业是计算机系的学生信息可以添加
使用SQL语句删除视图V_SCORE1。

drop view v_score1;
实验过程中遇到的问题以及如何解决的?
本次实验的体会(结论)得分:
思考题:
评阅教师评语:
评阅教师:
日期:。

相关主题