이전 글에 이어서 DML에 대해 정리해 보겠습니다. UPDATE문과 DELETE문도 마찬가지로 DML이기 때문에 트랜잭션이 발생되며 반드시 COMMIT 혹은 ROLLBACK을 입력해 트랜잭션을 종료시켜야 합니다.
UPDATE 문
데이터를 수정하기 위해 사용합니다.
UPDATE 테이블명
SET 컬럼명=변경할값[, 컬럼명2=변경할값2]
[WHERE 조건식];
이전 글에서 만들었던 mydept 테이블에서 40번 부서의 부서명과 지역을 변경해 보겠습니다. 다음과 같이 WHERE절로 변경하고 싶은 레코드를 지정해 주어야 합니다. SELECT문을 사용해 변경된 테이블을 확인할 수 있습니다.
UPDATE mydept
SET dname='개발', loc='서울'
WHERE deptno=40;
서브쿼리를 사용해 서브쿼리가 실행된 결과값으로 테이블을 수정할 수도 있습니다. mydept 테이블에서 40번 부서의 부서명을 dept 테이블에서 부서번호가 40인 부서명으로 수정하고, 지역은 dept 테이블에서 부서번호가 10인 지역으로 수정해 보겠습니다. 다음과 같이 두 개의 서브쿼리가 실행되어야 합니다.
UPDATE mydept
SET dname= (SELECT dname
FROM dept
WHERE deptno=40),
loc= (SELECT loc
FROM dept
WHERE deptno=10)
WHERE deptno=40;
DELETE 문
데이터를 삭제하기 위해 사용합니다.
DELETE FROM 테이블명
[WHERE 조건식];
조건식을 사용해 삭제하고 싶은 행을 지정해 줍니다. WHERE절을 생략하면 모든 행이 삭제되기 때문에 주의해야 합니다.
mydept 테이블에서 부서번호가 10인 행을 삭제하는 SQL문입니다.
DELETE FROM mydept
WHERE deptno=10;
마찬가지로 서브쿼리를 사용해 서브쿼리가 실행된 결과값으로 데이터를 삭제할 수도 있습니다. dept 테이블에서 부서번호가 10인 부서의 지역과 동일한 지역인 데이터를 mydept 테이블에서 삭제하는 SQL문입니다.
DELETE FROM mydept
WHERE loc= (SELECT loc
FROM dept
WHERE deptno=10);
dept 테이블에서 10번 부서의 지역인 NEW YORK과 동일하게 지역이 NEW YORK이었던 40번 부서가 삭제된 것을 확인할 수 있습니다.
DML에 대해 정리해 보았습니다. 다음 글에서는 DDL에 대해 알아보도록 하겠습니다.
'Database > Oracle' 카테고리의 다른 글
[Oracle SQL] DDL - 테이블 변경(ALTER) 및 삭제(DROP) (0) | 2022.05.15 |
---|---|
[Oracle SQL] DDL - 테이블 생성(CREATE), 제약 조건 (0) | 2022.05.14 |
[Oracle SQL] DML - INSERT문 (0) | 2022.05.14 |
[Oracle SQL] 서브쿼리 (0) | 2022.05.12 |
[Oracle SQL] 조인(join) - ANSI 조인 (0) | 2022.05.12 |
댓글