一、实验目的
1、熟练掌握数据插入、修改和删除操作语句。
2、掌握视图的创建和删除语句。
3、理解视图的查询、插入、修改和删除操作。
二、实验内容
根据实验1中创建的学生作业管理数据库以及其中的学生表、课程表和学生作业表,进行以下操作。每一个任务都要给出SQL语句,并且列出查询结果。
1、在学生表中添加一条学生记录,其中,学号为0593,姓名为张乐,性别为男,专业班级为电子05。
insert into student values('0593','张乐','男','电子05',null,null)
2、将所有课程的学分数变为原来的两倍。
update course set credit=credit*2
3、删除张乐的信息。
delete from student where sname='张乐'
4、创建一个电子05的学生视图(包括学号、姓名、性别、专业班级、出生日期)。
1. create view v_dz05 2. as 3. select sno,sname,ssex,major,birth from student 4. where major='电子05'
5、创建一个生物05的学生作业情况视图(包括学号、姓名、课程名、作业1成绩、作业2成绩、作业3成绩)。
1. create view v_sw05 2. as 3. select student.sno,sname,cname,cj1,cj2,cj3 from student,course,score 4. where student.sno=score.sno and course.cno=score.cno and major='生物05'
6、创建一个学生作业平均成绩视图(包括学号、作业1平均成绩、作业2平均成绩、作业3平均成绩)。
1. create view v_avgzy 2. as 3. select sno 学号,avg(cj1) 作业1平均成绩,avg(cj2) 作业2平均成绩,avg(cj3) 作业3平均成绩 4. from score 5. group by sno
7、修改第5题中生物05的学生作业情况视图,将作业2成绩和作业3成绩去掉。
1. alter view v_sw05 2. as 3. select student.sno,sname,cname,cj1 4. from student,course,score 5. where student.sno=score.sno and course.cno=score.cno and major='生物05'
8、向电子05的学生视图中添加一条记录,其中学号为0596,姓名为赵亦,性别为男,专业班级为电子05,出生日期为1986-6-8(除了电子05的学生视图发生变化之外,看看学生表中发生了什么变化?)。
1. insert into v_dz05 values('0596','赵亦','男','电子05','1986-6-8') 2. 学生表也新增加了赵亦的一条记录。
9、将电子05的学生视图中赵亦的性别改为“女”(除了电子05的学生视图发生变化之外,看看学生表中发生了什么变化?)。
1. update v_dz05 set ssex='女' where sname='赵亦' 2. 学生表中赵亦的性别也改成了女。
10、删除电子05的学生视图中赵亦的记录。
delete from v_dz05 where sname='赵亦'
11、删除电子05的学生视图。
drop view v_dz05
三、实验指导
1、启动SQL Server2012软件。
2、通过分离附加的方法,将实验1所创建的作业管理数据库恢复到该软件中。
3、SQL Server中,程序不区别大小写,特别要注意程序中的标点符号,一定要在英文半角状态下输入,否则会出错。
4、给列赋值时要注意字符要用单引号引起来,而其它类型的值则不需要用单引号。
5、修改和删除记录一定要指定条件,否则就会修改或删除表中的全部记录。
6、并不是所有的视图都可以对其进行添加记录、修改记录和删除记录操作,只有可更新视图才可以实现上述操作。
7、由于视图是张虚表,所以对视图更新,最终转换成对基本表的更新。