데이터베이스 - 데이터조작(DML) 두 번째
데이터조작
이전 포스팅에서 DML 중 insert문에 대해서 공부했다. 이번엔 나머지 DML 명령어인 update, delete, merge에 대해 학습하도록 하겠다.
update
update 명령문을 작성하는 방법은 간단하다.
1) 칼럼 전체 수정
update 테이블명 set 칼럼명 = 값, 칼럼명 = 값 ,,,
2) 특정 데이터만을 수정
우리가 주로 사용하게 될 update문은 조건절을 사용하여 원하는 데이터만 수정하는 경우 일것이다.
update 테이블명 set 칼럼명 = 값, 칼럼명 = 값 ,,,
where 칼럼 ? 값
update 문을 연습하기 위해서 table하나를 복사하겠다.
dept 테이블을 복사하였고, 제대로 복사가 되었는지 확인하였다.
이제 이 테이블에 내용을 수정해보도록 하겠다. 먼저 10번 부서가 서울로 이사했다고 가정하여 데이터베이스를 수정하자.
10번 부서의 위치 정보가 서울로 잘 수정되었다.
한번 더 해보자. 이번엔 부서 이름을 바꾸도록 하겠다. 20번 부서에 대해서 부서이름이 ‘조사’로 바꼈다고 가정하여 데이터베이스를 수정해보자.
where절이 없을 경우에 대해서도 한번 연습해보자. 일반적으로는 특정 행만을 수정하는 것이기 때문에 where절은 항상 들어간다.
where절이 없기 때문에 해당 데이터의 LOC가 모두 대전으로 변경되었다.
delete
두 번째로 다룰 것은 delete명령이다. delete 명령 역시 조건절을 사용할 경우와 그렇지 않은 경우가 존재한다.
1) 테이블 전체 데이터 삭제
해당 테이블에서 모든 데이터를 지운다.
delete from table명;
2) 특정 데이터 삭제
해당 테이블에서 조건에 만족하는 특정 행만 지운다.
delete from table명;
where 칼럼 ? 값
이제 예문을 통해 연습해보자. 먼저 전체 데이터를 삭제해보도록 하겠다.
테이블의 모든 레코드가 삭제되었다.
다음은 조건절을 사용해보자. 부서번호가 10인 행에 대해서만 delete 연산을 수행하였다.
* 또 다른 데이터 삭제 방법
delete 외에도 테이블 내 데이터를 삭제하는 방법이 존재한다. 이는 truncate 명령어를 사용한다.
해당 명령어를 수행한 뒤 살펴보면, 여전히 emp10 테이블은 남아있지만, 내부의 레코드는 모두 삭제되었음을 볼 수 있다.
MERGE
마지막으로 Merge 명령어를 공부하도록 하겠다. Merge 명령은 존재하지 않는 데이터에 대해서 insert가 수행되고, 이는 데이터에 대해서는 update가 실행된다.
연습에 앞서 테이블을 생성하자.
이렇게 생성한 테이블에서 sal을 모두 0으로 만들자.
그리고 emp 테이블과 emp10 테이블에 대해서 Merge 명령을 수행하도록 하겠다.
우리가 만든 emp10에 emp 테이블 데이터를 merge하였다. 기존에 sal이 0인 데이터들은 emp의 내용으로 수정되고, 존재하지 않던 행 데이터들은 추가되어 다음과 같은 테이블이 생성되었다.
댓글
댓글 쓰기