数据更新
数据更新操作有三种:向表中添加若干行数据,修改表中的数据和删除表中的若干行数据。(insert,update,delete)
1.1.1 插入数据
a, 插入元组
insert into <表名>[(<属性列1>[,<属性列2>]…)]
values(<常量1>[,<常量2>]…);
b,插入子查询结果
语句格式为:
insert into <表名> [(<属性列1>[,<属性列2>]…)] 子查询
{例子:insert into student select Sname,Sdept from student2 where Sdept=‘cs’}
1.1.2 修改数据
一般语法格式为
update <表名> set <列名>=<表达式> [,<列名>=<表达式>]…
[where<条件>];
注:如果省略where子句,则表示要修改表中的所有元组。
1.修改某一个元组的值
2,修改多个元组的值
{将所有的学生年龄增加1岁:update student set age=age+1}
3,带子查询的修改语句
子查询也可以嵌套在update语句中,用以构造修改的条件。
{将计算机科学系全体学生的成绩置零;update sc set grade=0 where Sno in (select Sno from student where Sdept=‘cs’) }
update sc set grade=0 where Sno in (select Sno from sc where Sdept=‘cs’);–oracle
update sc set grade=0 where Sno in (select Sno from (select Sno from sc where Sdept=‘cs’) as a ); – mysql
1.1.3 删除数据
a,
删除语句的一般格式为: delete from <表名> [where<条件>];
delete from <表名> [where<条件>]
delete语句的功能是从指定表中删除满足where子句条件的所有元组。delete语句删除的是表中的数据,而不是关于表的定义。
b,带子查询的删除语句
子查询同样也可以嵌套在delete语句中,用以构造执行删除操作的条件。
delete from sc where Sno in(select Sno from student where Sdept=‘cs’);
delete from sc where Sno in(select Sno from (select Sno from student where Sdept=‘cs’)as a);