热门关键字:  项目经理  分析师  中间件  CEO  报名费





数据更新:修改数据

来源: 作者: 时间:2008-03-16 点击:

修改操作又称为更新操作,其语句的一般格式为:

UPDATE <表名>  
SET <列名>=<表达式>[,<列名>=<表达式>]...
[WHERE <条件>];

其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句用于指定修改方法,即用<表达式>的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。

一、 修改某一个元组的值
例4
将学生95001的年龄改为22岁
  UPDATE Student
SET Sage=22
WHERE Sno='95001';
二、 修改多个元组的值
例5
将所有学生的年龄增加1岁
  UPDATE Student
SET Sage=Sage+1;
三、 带子查询的修改语句
  子查询也可以嵌套在UPDATE语句中,用以构造执行修改操作的条件。
例6
将计算机科学系全体学生的成绩置零
 
四、 修改操作与数据库的一致性
  UPDATE语句一次只能操作一个表。这会带来一些问题。例如,学号为95007的学生因病休学一年,复学后需要将其学号改为96089,由于Student表和SC表都有关于95007的信息,因此两个表都需要修改,这种修改只能通过两条UPDATE语句进行。
 
第一条UPDATE语句修改Student表:
 
UPDATE Student
SET Sno='96089'
WHERE Sno='95007';
 
第二条UPDATE语句修改SC表:
 
UPDATE SC
SET Sno='96089'
WHERE Sno='95007';
 
在执行了第一条UPDATE语句之后,数据库中的数据已处于不一致状态,因为这时实际上已没有学号为95007的学生了,但SC表中仍然记录着关于95007学生的选课信息,即数据的参照完整性受到破坏。只有执行了第二条UPDATE语句之后,数据才重新处于一致状态。但如果执行完一条语句之后,机器突然出现故障,无法再继续执行第二条UPDATE语句,则数据库中的数据将永远处于不一致状态。因此必须保证这两条UPDATE语句要么都做,要么都不做。为解决这一问题,数据库系统通常都引入了事务(Transaction)的概念,我们将在第五章详细介绍。





最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
企业电子商务

赞助商