Building value

Oracle SQL 기본 문법[UPDATE] 본문

RDBMS/Oracle DB

Oracle SQL 기본 문법[UPDATE]

developer_Michael 2023. 3. 16. 18:57
반응형

UPDATE 문은 테이블의 기존 데이터를 수정하는 데 사용됩니다. 이 문법은 다음과 같습니다.

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

위 문법에서, table_name은 업데이트할 테이블 이름입니다. 

 

column1, column2 등은 업데이트할 열의 이름이고, value1, value2 등은 해당 열의 새로운 값을 나타냅니다. 

 

WHERE 절은 업데이트할 행을 선택하는 데 사용됩니다. WHERE 절이 생략된 경우, 테이블의 모든 행이 업데이트됩니다.

 

EMP 테이블을 EMP_TEST 테이블에 복사해서 예시 쿼리를 보여드리겠습니다.

CREATE TABLE EMP_TEST 
AS SELECT * 
FROM EMP;

 

SELECT * FROM EMP_TEST; // 출력 결과

 

다음은 EMP 테이블에서 JOB 열이 "MANAGER"인 모든 직원들의 급여를 10% 인상하는 쿼리 예시입니다.

UPDATE EMP_TEST
SET SAL = SAL * 1.1
WHERE JOB = 'MANAGER';

위 쿼리를 실행하면, EMP 테이블에서 JOB 열이 "MANAGER"인 모든 직원들의 급여가 10% 인상됩니다.

SELECT * FROM EMP_TEST; // 출력 결과

UPDATE 문을 사용할 때, WHERE 절에 조건을 제대로 작성하지 않으면 전체 데이터가 수정될 수 있습니다. 

 

따라서 UPDATE 문을 실행하기 전에 WHERE 절을 항상 확인해야 합니다. 

 

또한, UPDATE 문은 롤백할 수 없는 작업이므로, 신중하게 사용해야 합니다.

 

 

UPDATE EMP_TEST
SET HIREDATE = (SELECT HIREDATE FROM EMP WHERE ENAME = 'SCOTT'),
SAL = (SELECT SAL FROM EMP WHERE ENAME = 'ADAMS')
WHERE EMPNO = 1000;

위 쿼리는 SubQuery를 활용하여 EMP 테이블에서

 

ENAME이 'SCOTT'인 행의 HIREDATE와 ENAME이 'ADAMS'인 행의 SAL 값을 가져와서 EMP_TEST 테이블에서

 

EMPNO가 1000인 행의 HIREDATE와 SAL 값을 업데이트하는 쿼리입니다.

 

서브쿼리는 SELECT 문 내부에 존재하며, 외부 쿼리에서는 서브쿼리의 결과를 사용합니다.

 

이를 활용하여 다양한 연산을 수행할 수 있습니다.

반응형