1 插入数据
例3.52 设数据库中已有一个关系 ,其关系模式与Students完全一样,试将关系Students中的所有元组插入到关系History_Student中去,其SQL命令为: INSERT
INTO History_Student SELECT * FROM Students; 2 修改数据
例3.53 将学号为“S03”的学生年龄改为22岁,即要修改满足条件的一个元组的属性值。 UPDATE Students SET Sage=22 WHERE Sno=’S03’;
例3.54 将所有学生的年龄增加1岁。即要修改多个元组的值。
UPDATE Students SET Sage=1+Sage;
例3.55 将数学系所有学生的成绩置零。
由于学生所在系的信息在Students表中,而学习成绩在Reports表中,因此,可以将SELECT子查询作为WHERE
31
子句的条件表达式。故该更新要求的SQL命令为: UPDATE Reports SET Grade=0 WHERE ‘数学’=
(SELECT Sdept FROM Students
WHERE Students.Sno=Reports.Sno);
3 删除数据
例3.56 删除学号为“S04”的学生选修的课号为“C02”的记录。 DELETE FROM Reports
WHERE Sno=’S04’ AND Cno=’C02’; 例3.57 删除所有学生的选课记录。 DELETE FROM Reports;
这条DELETE语句将删除Reports的所有元组,使Reports成为空表。
例3.58 删除数学系所有学生的选课记录。 DELETE FROM Reports
32
WHERE ‘数学’=
(SELECT Sdept FROM Students
WHERE Students.Sno=Reports.Sno);
33
实 验6
实验项目名称 SQL的视图(2课时,验证) 实验主要内容及方法 sql视图建立、修改和删除 实验要求:
(11) 掌握sql视图建立、修改和删除; (12) 掌握sql视图查询。 实验目的:熟练掌握sql的应用。
实验设备:装有SQL SERVER 2005的电脑 实验步骤:
(1) 启动SSMS;
(2) 选择SQL SERVER后,按确认; (13) 选择数据库; (14) 验证如下例题: 一 定义视图 1 建立视图
例3.59 建立数学系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。 CREATE VIEW C_Student
AS
34
SELECT Sno, Sname, Sage, Sdept FROM Students WHERE Sdept=’数学’ WITH CHECK OPTION
例3.60 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图。
本视图由三个基本表的连接操作导出,其SQL语句如下: CREATE VIEW Student_CR
AS
SELECT Students.Sno, Sname, Cname, Grade FROM Students, Reports, Courses
WHERE Students.Sno= Reports.Sno AND
Reports.Cno=Courses.Cno
例3.61 定义一个反映学生出生年份的视图。 CREATE VIEW Student_birth(Sno, Sname, Sbirth)
AS SELECT Sno, Sname, 1996-Sage FROM Students
2 删除视图
例3.62 删除视图Student_CR。 DROP VIEW Student_CR;
35