1、更新语句
update account set balance = balance*1.05
2、更新顺序
首先找到关系中所有应该被更新的元组,然后才去执行更新,否则就会产生逻辑上的错误。例如:
update account set balance = balance*1.05
where balance > (select avg(balance) from account)
用关系代数表达更新就是 (参阅第三章"关系模型"的3.5.3小节),因此,在这里特别要注意元组被处理的顺序!
3、视图更新
一般禁止在视图上进行增、删、改的修改操作。当且仅当视图定义在实际关系数据库的单个关系上时,视图更新才可能被允许!例如,下面的视图涉及多个关系,而且视图属性的值来自聚集运算,因此通过该视图去修改关系account和关系loan是不可能的!
Create view account-loan as
��(select branch-name, sum(balance)
��from account group by branch-name) as a(BN,SUM-A)
�full outer join
��(select branch-name, sum(amount)
��from loan group by branch-name) as l(BN,SUM-L)
�using (BN)
|