데이터 수정(변경) UPDATE

 

데이터베이스에 저장된 데이터를 수정(변경)하려면 UPDATE문을 사용하시면 됩니다. 

 

기본형식 

UPDATE 변경할_테이블_명
SET 변경할_컬럼1 = 데이터, 변경할_컬럼2 = 데이터, ..., 변경할_컬럼n = 데이터
[ WHERE 데이터를_변경할_대상_행_선별하는_조건; ]

 

UPDATE문은 변경할 테이블을 지정한뒤 해당 테이블에서 변경할 컬럼과, 그 컬럼에 들어갈 값을 '=' 기호를 통해 매핑합니다. 이때 변경할 컬럼과 값은 여러개가 올 수 있습니다. 또한 WHERE절 생략할 수 있으며, 이를 이용하여 변경할 데이터를 선별하는 조건식을 지정할 수 있습니다.

 

컬럼 전체 데이터 수정

UPDATE DEPT_TEST
    SET LOC = 'SEOUL';

 

해당 명령어는 DEPT_TEST 테이블의 LOC 컬럼의 값을 모두 'SEOUL'로 바꾸라는 명령어 입니다. 

 

컬럼 일부 데이터 수정

WHERE절의 조건식을 이용하여 특정조건에 맞는 컬럼만 수정 할 수 있습니다.

UPDATE DEPT_TEST
    SET DNAME = 'DATABASE', LOC = 'SEOUL'
WHERE DEPTNO = 40;

 

해당 예제는 DEPTNO가 40인 행의 DNAME 컬럼과, LOC 컬럼의 값을 각각 DATABASE와 SEOUL로 바꾸는 예제 입니다.

 

서브쿼리를 이용한 데이터 수정

UPDATE DEPT_TEST
    SET DNAME   = (SELECT DNAME
                   FROM DEPT
                   WHERE DEPTNO = 40),
        LOC     = (SELECT LOC
                   FROM DEPT
                   WHERE DEPTNO = 40)
WHERE DEPTNO = 40; 

 

이번 예제는 DEPT 테이블에서 DEPTNO가 40번인 열의 DNAME, LOC를 가져다가 DEPT_TEST 테이블에 DEPTNO가 40번인 열의 DNAME, LOC에 업데이트(수정)하는 예제 입니다.

 

SELECT 문을 통해서 DEPTNO 가 40인 열의 DNAME와 LOC를 한꺼번에 조회해 볼 수 있습니다. 이를 이용해서, 업데이트를 조금 간단하게 만들어 볼까요?

UPDATE DEPT_TEST
    SET(DNAME, LOC) = (SELECT DNAME, LOC
                        FROM DEPT
                        WHERE DEPTNO = 40)
WHERE DEPTNO = 40;  

 

 

WHERE절에 서브 쿼리를 이용하여 데이터를 수정 할 수도 있습니다.

+ Recent posts