第四节 数据更新
注意!满足参照完整性(有父才有子,有被参照表才有参照表)
注意!区别数据定义,数据定义是对整表的操作,而数据更新是对行进行的操作,只含有3种更新操作,分别是:
向表中添加若干行数据;
修改表中若干行数据;
删除表中若干行数据;
一、插入数据insert
1.插入一个元组
insert into <表名> [( <属性列1> [, <属性列2> ...)] values ( <常量1> [, <常量2> ]...);insert into Student values ('95020','陈东‘,’男‘,’IS‘,18); 常量2> 常量1> 属性列2> 属性列1> 表名>
2.插入子查询结果
insert into <表名> [( <属性列1> [, <属性列2> ...)]子查询;对Student表按系分组求平均年龄,再把系名和平均年龄存入新表中insert into Dept_age(Sdept,Avg_age) select Sdept,avg(sage) from Student group by Sdept; 属性列2> 属性列1> 表名>
2.修改数据 update……set
1.修改一个元组的值
将学生200215121的年龄改成22岁update Student set Sage=22 where Sno='200215121';
2.修改多个元组的值
将所有学生的年龄增加1岁update Student set Sage=Sage+1;
3.带子查询的修改语句
将计算机科学系全体学生的成绩置为0update SC set Grade=0 where 'CS'=(select Sdept from Student where Student.Sno=SC.Sno);
将计算机科学系的所有学生的成绩置为0update SC set Grade=0 where 'CS'= (select Sdept from Student where Sno=(select Sno from SC));
三、删除数据delete from
delete from <表名> [where <条件> ]; 条件> 表名>
1.删除某一个元组的值
删除学号为200215128的学生记录delete from Student where Sno='200215128';
2.删除多个元组的值
删除所有学生的选课记录delete from SC;
drop table SC;
3.带子查询的删除语句
删除计算机科学系所有学生的选课记录delete from SC where 'CS'=(select Sdept from Student where Student.Sno=SC.Sno);