提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、实验目的
1.掌握Management Studio的使用。
2.掌握SQL中INSERT、UPDATE、DELETE命令的使用。
二、实验内容及要求
用SQL语句完成下列功能。使用数据库为SCHOOL数据库。
l、新开设一门课程,名叫网络安全与防火墙,学时40,编号为“0118”,主要介绍网络的安全与主要的防火墙软件。
insert into Course(Course_id,Course_name,Course_hour,Introduce)
values('0118','网络安全与防火墙',40,'主要介绍网络的安全与主要的防火墙软件')
2、先建立monitor表,其结构与student表大致一样.包含student表的学号、姓名、性别和班级编号,然后把学生相应的个人资料插入到monitor表中。
CREATE TABLE monitor(
Stu_id varchar(9) NOT NULL,
Stu_name varchar(8) NOT NULL,
Stu_sex varchar(2) NOT NULL,
Class_id varchar(4) NOT NULL
)
insert into monitor(Stu_id,Stu_name,Stu_sex,Class_id)
select Stu_id,Stu_name, Stu_sex, Class_id
from Student
where Stu_id in(
select Monitor from class )
3、更新所有职称为“助教”的教师职称为“助理教师”。
update Teacher
set TechPost='助理教师'
where TechPost='助教'
4、在所有经济系班级的名称前加上“经济系”三个字。
update class
set class_name='经济系'+class_name
where Depar_id in(
select Depar_id
from Deparment
where Depar_name='经济系')
5、学号为“980101005”的学生的“数据结构”课程成绩改为80分。
update StudentGrade
set grade=80
where Stu_id='980101005' and
Course_id =(
select Course_id
from Course
where Course_name='数据结构')
6、删除studentgrade表中所有成绩不及格的记录。
delete from StudentGrade
where grade<60
7、删除studentgrade表中学号以“99”开头的学生选修课程的记录。
delete from StudentGrade
where Course_id like '99%'
8、删除课程名为“C语言导论”的课程信息和所有这门课的选课信息。(尽量不用级联删除,因级联需在创建表时定义。)
delete StudentGrade from Course
where Course_name='C语言' and
StudentGrade.Course_id=Course.Course_id
delete from CourseTeacher from Course
where Course_name='C语言'
and CourseTeacher.Course_id=Course.Course_id
delete Course where Course_name='C语言'
三、实验小结
1.思考Alter与Update,Drop与Delete的区别
1)Alter:修改1表的结构,是数据定义的语言,在修改表的结构,不需要commit和Rollback
2)update:修改表数据,是数据操作语言,在修改数据值,需要commit和roollback.
3)drop:一般删除整体性数据(如表,模式,索引)
4)delete:用于删除局部数据(如表中的数据)
2.对数据进行插入、修改、删除时需要注意哪些问题?
1、少量数据修改、删除
2、多数据修改、删除
解题思路:
为了保证正确的执行命令,需要对修改/删除前的数据进行查看,筛选出相关数据之后,再进行操作
解题方法:
1、少量数据:可先用SELECT命令,根据WHERE条件,将信息先查询出来,判断这些数据是否是要修改的数据
2、多数据:
同第一种方式一样,先用SELECT命令查询出来,记录下条件信息
然后用利用存储过程、事物两种技术。用存储过程封存,里面加上@@ERROR等一系列判断,出现问题,则回滚事物,否则提交事物
3.此次实验中得到的哪些经验教训、疑难问题?有什么心得或总结?
多看多练多写多思考