데이터 분석/SQL

[쉽게 쓴 SQL] UPDATE 문

참치바나나 2020. 11. 23. 11:46

테이블에 존재하는 데이터를 수정합니다.

동시성에 유의해야 합니다(?). 수정 시 대상 행을 LOCK을 잡는다. 영화관 표 예매 시스템처럼.

table_name이라는 이름의 테이블의 column_1에는 value1을, column_2에는 value2를 넣는다

UPDATE 
	table_name
SET
	column_1 = value1,
	column_2 = value2
WHERE 조건
;

 

 이전 글에서 쓰던 테이블 사용하여,

'last_update' 컬럼을 추가하고 디폴트DEFAULT 값을 현재 시간(current_date)으로 바꾼다

ALTER TABLE link ADD COLUMN last_update date;
ALTER TABLE link ALTER COLUMN last_update
	SET DEFAULT current_date;
	
SELECT * FROM link;

기존에 있는 행에는 아무 일도 일어나지 않는다. 

 

last_update 컬럼 중에 NULL인 행의 값을 DEFAULT 값으로 수정한다

UPDATE link
	SET last_update = DEFAULT 
	WHERE 
		last_update IS NULL;
	
SELECT * FROM link;

디폴트를 현재시간으로 두어서 전부 현재 시간이 업데이트된 걸 확인할 수 있다.

 

rel 컬럼의 데이터를 전부 'no data'로 수정한다

UPDATE link 
	SET rel = 'no data'
;

여기서 WHERE 절이 없이 실행하면 데이터 손실에 대한 경고 메시지가 뜬다. 디비버 기능이다.

무시하고 실행하면

반영된 것을 볼 수 있다.

 

'데이터 분석 > SQL' 카테고리의 다른 글

[쉽게 쓴 SQL] UPDATE JOIN 문  (0) 2020.11.23
[쉽게 쓴 SQL] INSERT 구문  (0) 2020.11.23
[쉽게 쓴 SQL] EXISTS  (0) 2020.11.21
[쉽게 쓴 SQL] ANY 그리고 IN, ALL  (0) 2020.11.21
[쉽게 쓴 SQL] 서브쿼리란?  (0) 2020.11.09