본문 바로가기
DataBase

[SQL] UPDATE, UPDATE JOIN 문

by 바까 2021. 9. 15.
반응형
--UPDATE 문
테이블의 존재하는 데이터를 수정하는 작업. 업무를 처리하는데 필수적인 것이며 동시성에 유의해야한다.

update TABLE_NAME
set    COLUMN_1 = VALUE1,
	   COLUMN_2 = VALUE2
where 조건;

-UPDATE는 대상 행에 대해서 락을 잡는다.
-락이란 다른 사용자는 해당 행에 대해서 작업을 하지 못한다는 것이다.
-즉 UPDATE를 한 후 재빨리 COMMIT을 하지 않는다면 RDBMS의 동시성이 낮아진다.

update link 
set    LAST_UPDATE = default 
where  LAST_UPDATE is null; --LAST_UPDATE컬럼이 NULL인 값을 대상으로 한다.

select * from LINK;

--전체 테이블 수정 - 특정 컬럼 이용
update link 
set    REL = 'NO DATA'; --WHERE절이 없으므로 테이블의 전체 행을 대상으로 한다.

update link 
set    DESCRIPTION = NAME;
--UPDATE JOIN문
UPDATE 시 다른 테이블의 내용을 참조 하고 싶을 때 UPDATE JOIN문을 사용한다.
복잡한 업무를 처리하는데 매우 유용한 방법

update TARGET_TABLE a 		--update 할 테이블 지정
set	   A.COLUMN_1 = 표현식	--특정 컬럼 update
from   REF_TABLE b 			--참조 테이블 지정
where  a.column_1 = b.column_2; --조인 조건


select * from product_segment ps ;
select * from 
update product a
set net_price = a.price - (a.price * b.discount)  --product_segment 테이블의 할인율 만큼 가격을 할인한 후 net_price 칼럼에 저장
from product_segment ps 
where a.segment_id = ps.id;
반응형

'DataBase' 카테고리의 다른 글

[SQL] UPSERT 문  (0) 2021.09.15
[SQL] DELETE 문  (0) 2021.09.15
[SQL] INSERT문  (0) 2021.09.15
[SQL] WITH문  (0) 2021.09.15
[SQL] LAG, LEAD 함수  (0) 2021.09.15

댓글