[ORACLE] 갱신 (UPDATE)
반응형
갱신 (UPDATE)
테이블의 데이터 값을 변경하기 위해 사용하는 SQL
갱신을 수행할 경우 한 번에 하나의 컬럼만 갱신할 수도 있고, 여러 개의 컬럼을 갱신할 수도 있다.
갱신의 구성요소
UPDATE TEST
SET COL1 = 'AA'
WHERE COL2 = '20200829';
UPDATE 테이블명 | 변경하고자 하는 데이터를 저장하고 있는 테이블의 이름 |
SET 컬럼명 | 변경 대상에 대한 변경 후의 값 제공 |
WHERE 조건절 | 변경을 수행하고자 하는 대상 |
COL2 컬럼이 20200829 의 값을 가진 행에 대한 COL1 의 값을 AA로 갱신하는 SQL 문이다.
만약 WHERE 절이 지정되어있지 않다면 모든 행의 COL1 이 AA로 갱신된다.
삽입은 테이블에 존재하는 모든 인덱스에 관련되지만 갱신은 해당 컬럼에 생성된 인덱스의 개수에 의해 성능이 변경될 수 있다.
서브쿼리를 이용한 갱신
UPDATE TEST1
SET (COL1, COL2) = (SELECT COL3, COL4
FROM TEST2
WHERE COL4 = 'AAA')
WHERE COL6 = 'BBBB';
1. 서브쿼리에 있는 TEST2 테이블에서 COL4 컬럼의 값이 'AAA' 인 행을 추출
2. 추출한 행에서 COL3 컬럼과 COL4 컬럼에 대한 값을 확인, 이 때 하나의 값만 추출되어야 하며 2개 이상의 행이 추출된다면 에러 발생
아무 값도 추출되지 않는다면 갱신 대상 집합들은 모두 NULL 로 갱신
3. TEST1 테이블에서 COL6 컬럼의 값이 'BBBB' 를 만족하는 행의 COL1 과 COL2 컬럼에 대해 2단계에서 추출한 값으로 갱신을 수행
UPDATE TEST1
SET COL1 = (SELECT COL2
FROM TEST2
WHERE COL3 = 'AAA')
WHERE COL5 = (SELECT COL6
FROM TEST3
WHERE COL7 = 'BBB');
위와 같이 갱신 SQL의 WHERE 절에도 서브쿼리를 사용할 수 있다.
반응형
'⇥ DevOps Tech 🙋🏻♀️ > ✏️ ORACLE' 카테고리의 다른 글
[ORACLE] WALLET OPEN 방법 (0) | 2021.04.26 |
---|---|
[ORACLE] 삭제 (DELETE) (0) | 2020.08.31 |
[ORACLE] 삽입 - 2 / DIRECT LOADING ,MULTI INSERT (0) | 2020.08.27 |
[ORACLE] 삽입 (INSERT) - 1 (0) | 2020.08.26 |
[ORACLE] 행 제한 (0) | 2020.08.25 |
댓글
이 글 공유하기
다른 글
-
[ORACLE] WALLET OPEN 방법
[ORACLE] WALLET OPEN 방법
2021.04.26 -
[ORACLE] 삭제 (DELETE)
[ORACLE] 삭제 (DELETE)
2020.08.31 -
[ORACLE] 삽입 - 2 / DIRECT LOADING ,MULTI INSERT
[ORACLE] 삽입 - 2 / DIRECT LOADING ,MULTI INSERT
2020.08.27 -
[ORACLE] 삽입 (INSERT) - 1
[ORACLE] 삽입 (INSERT) - 1
2020.08.26