实验八 数据的增删改操作
一、实验目的
- 掌握Management Studio的使用。
- 掌握SQL中INSERT、UPDATE、DELETE命令的使用。
二、实验内容及要求
用SQL语句完成下列功能。使用数据库为SCHOOL数据库。
l、新开设一门课程,名叫网络安全与防火墙,学时40,编号为“0118”,主要介绍网络的安全与主要的防火墙软件。
INSERT INTO Course
VALUES('0118','网络安全与防火墙','40','介绍网络的安全与主要的防火墙软件');
2、先建立monitor表,其结构与student表大致一样.包含student表的学号、姓名、性别和班级编号,然后把学生相应的个人资料插入到monitor表中。
CREATE TABLE [dbo].[monitor](
[Stu_id] [varchar](10) NOT NULL,
[Stu_name] [varchar](8) NOT NULL,
[Stu_sex] [varchar](2) NOT NULL,
[Class_id] [varchar](4) NOT NULL,
)
INSERT INTO monitor
SELECT Stu_id,Stu_name, Stu_sex, Class_id
FROM Student;
3、更新所有职称为“助教”的教师职称为“助理教师”。
UPDATE Teacher
SET TechPost = '助理教师'
WHERE TechPost = '助教'
4、在所有经济系班级的名称前加上“经济系”三个字。
tips:本人做这题的时候一直运行失败,找了很久才发现是忘了关 表Class 的触发器,执行代码前先去触发器那里检查一下
USE school
UPDATE Class
SET Class_name='经济系'+Class_name
WHERE Depar_id=
(SELECT Depar_id
FROM Deparment
WHERE Depar_name='经济系')
5、学号为“980101005”的学生的“数据结构”课程成绩改为80分。
UPDATE StudentGrade
SET Grade='80'
FROM StudentGrade sg,Course c
WHERE sg.Course_id=c.Course_id and c.Course_name='数据结构' and sg.Stu_id='980101005'
6、删除studentgrade表中所有成绩不及格的记录。
DELETE StudentGrade
FROM StudentGrade
WHERE Grade<60
7、删除studentgrade表中学号以“99”开头的学生选修课程的记录。
DELETE StudentGrade
FROM StudentGrade
WHERE Stu_id LIKE '99%
8、删除课程名为“C语言导论”的课程信息和所有这门课的选课信息。(尽量不用级联删除,因级联需在创建表时定义。)
DELETE StudentGrade
FROM StudentGrade sg,Course c
WHERE c.Course_name='C语言导论' and c.Course_id=sg.Course_id
DELETE Course
FROM Course
WHERE Course_name='C语言导论'
三、实验小结
-
思考Alter与Update,Drop与Delete的区别
alter是用来修改表结构的,而update则用来修改表中数据
drop用于删除结构,而delete用于删除数据 -
此次实验中得到的哪些经验教训、疑难问题?有什么心得或总结?