2013년 2월 11일 월요일

[DB] DML


* INSERT 문
insert into 테이블명(컬럼명들) values(컬럼값들)
insert into dept01(deptno, dname) values(20, 'IT')

* UPDATE 문
update 테이블명 set 컬럼명 = 수정값, 컬럼명 = 수정값 where 수정할 대상

문제) emp00 테이블에서 salary가 3000불 이상 대상자는 salary를 10%인상하여라.

update emp00 set salary = salary * 1.1 where salary >= 3000


* delete 문(Rollback 가능, TRUNCATE는 Rollback 불가능)
delete from 테이블명 where 삭제대상
delete from emp01 where dname = 'IT'

* 트랙잭션
- 하나의 작업처리 단위
- COMMIT : 트랜잭션이 성공적으로 완료
- ROLLBACK : 트랜잭션 중 에러등으로 인해 실패했을 때 트랜잭션 단위의 작업전체를 취소
- DDL(create, truncate) => 자동 커밋
- DML(delete, update, insert) => 트랜잭션 관리 대상

JDBC에서 트랜잭션 수행
try{
 1번 작업(주문내역 추가)
 2번 작업(재고내역 감소)
 3번 작업(배송내역 추가)
 COMMIT();//트랜잭션 성공
1~3번 작업이 하나의 트랜잭션이다. 따라서 2번에서 에러가 발생 했을 때 commit()이 되지 못하고 catch문으로 간다.
}catch(Exception e){
 예외발생시 이곳에서 예외처리.
 ROLLBACK();//트랜잭션 되돌리기
}

댓글 없음:

댓글 쓰기