【Oracle】更新数据表字段值

  1. 新增数据列,更新数据列内容(直接更新):

SELECT * FROM TEMP;
ALTER TABLE TEMP ADD A NUMBER;
UPDATE TEMP T SET T.A=T.B*2;
COMMIT;
  1. 新增数据列,更新数据列内容(关联其他表更新):

  • 目标:根据TEMP_2表中的A列的值,更新至TEMP_1表里新增的A列;

  • 已知:TEMP_2表和TEMP_1表中有可关联的唯一主键:ID;

SELECT * FROM TEMP_1;
SELECT * FROM TEMP_2;

ALTER TABLE TEMP_1 ADD A NUMBER;
UPDATE TEMP_1 T SET T.A=(SELECT L.A FROM TEMP_2 WHERE T.ID=L.ID);
COMMIT;
  • 注意:如果TEMP_2表的ID不是唯一的,有重复数据的话,会在更新的时候报错,可以写成以下的形式:

ALTER TABLE TEMP_1 ADD A NUMBER;

UPDATE TEMP_1 T 
SET T.A=(SELECT L.A FROM (SELECT DISTINCT ID,A FROM TEMP_2)L WHERE T.ID=L.ID);

COMMIT;

你可能感兴趣的:(Oracle,sql,数据库)