DELETE ( 삭제 )
형식
DELETE FROM 테이블명
WHERE 조건절
Q ] 근무지가 뉴욕인 사원들을 emp_02 에서 삭제하시요
A ] DELETE from emp_02
where deptno = (select deptno from dept_02 where loc = 'NEW YORK');
MERGE ( 합병 ) : 테이블 합병
=> 구조가 같은 두 테이블을 하나의 테이블로 합하는 기능
기존 테이블에 자료가 존재하는 경우:
새로운 값으로 UPDATE(갱신)
자료가 존재하지 않는 경우 :
새로운 행으로 INSERT(추가)
형식
MERGE INTO ( 변경할 테이블명) - 값을 변경할 테이블을 선언한다.
USING( 값을 가져올 테이블명) - 어디에서 값을 가져올지 명시해준다.
ON (조인 조건) - 조인 조건을 명시해준다.
WHEN MATCHED THEN - 매치되는 값들이 있을때에
UPDATE SET - 업데이트한다.
컬럼 1 = 값 1, - 컬럼1에 값1을 대치함.
컬럼 2 = 값 2,
WHEN NOT MATCHED THEN - 매치되는 값들이 없을때
INSERT(컬럼1,컬럼2...)
VALUES(값1,값2...) - 새로운 값을 삽입
MERGE 사용 방법!!
MERGE INTO emp_01 e
USING emp_03 m
ON(e.empno = m.empno)
WHEN MATCHED THEN
UPDATE SET
e.ename = m.ename,
e.job = m.job,
e.mgr = m.mgr,
e.hiredate = m.hiredate,
e.sal = m.sal,
e.comm = m.comm,
e.deptno = m.deptno
WHEN NOT MATCHED THEN
INSERT VALUES(m.empno,m.ename,m.job,m.mgr,
m.hiredate,m.sal,m.comm,m.deptno);
Transaction ( 트랜젝션 )
트렌젝션은 '하나의 논리적인 작업 단위로 수행되는 일련의 작업'
으로 정의한다 트렌젝션은 ACID 라고 불리는 특성이있다.
1.Atomicity(원자성) : 트렌젝션은 분리할수 없는 하나의 단위이다
작업이 모두 수행되거나 하나도 수행되지 않아야한다.
ALL Or Nothing
2.Consistency(일관성) : 트렌젝션에서 사용되는 모든 데이터는 일관되어야한다.
3.Isolation(격리성) : 현재 트렌젝션에 접근하고 있는 데이터는 다른 트렌젝션으로부터 격리되어야한다.
독립성 ( 트렌젝션이 일어나면 완료되기전까지는 다른 트렌젝션이 참조할수 없다)
4.Durability(영속성) : 트렌젝션이 정상적으로 종료되면 그결과는 시스템 오류가 발생하더라도
지속성,내구성 시스템에 영구적으로 적용되어야한다.
트렌젝션 명령어
COMMIT : COMMIT 은 트렌젝션의 처음과 끝을 나타낸다.
즉 COMMIT ~ COMMIT 까지가 TRANSACTION 이다
ROLLBACK : ROLLBACK 은 트렌젝션을 취소하고난뒤
처음부터 다시 시작하거나 SAVEPOINT 부터 취소하고
다시 되돌리는 기능을 한다.
SAVEPOINT : 세이브 포인트는 현재까지의 트렌젝션을 특정이름으로 지정할때 사용한다.
COMMIT 명령어와 ROLLBACK 명령어의 장점
1.데이터 무결성이 보장됩니다.
2.영구적인 변경전에 데이터의 변경사항을 확인할수 있습니다.
3.논리적으로 연관된 작업을 그룹화 할수 있습니다.
COMMIT
TRANSACTION (INSERT , UPDATE , DELETE) 작업내용을 실제 데이터베이스에 저장합니다.
이전 데이터가 완전히 업데이트 됩니다.
모든 사용자가 변경된 데이터의 결과를 볼수 있습니다.
ROLLBACK
TRANSACTION (INSERT,UPDATE,DELETE) 작업내용을 취소합니다.
이전에 COMMIT 한 곳까지 만 복구합니다.
자동 COMMIT 과 ROLLBACK 명령어가 되는경우
sqlplus 가 정상종료 되었다면 자동 COMMIT 되지만 비정상 종료 되었다면
자동 ROLLBACK 됩니다.
DDL 과 DCL 명령문이 수행된 경우 자동 COMMIT 됩니다.
정전이 방생하거나 컴퓨터 다운시 자동으로 ROLLBACK 됩니다.
SAVEPOINT
현재의 트랜젝션을 작게 분할 할수 있다.
저장된 SABEPOINT 는 ROLLBACK TO SAVEPOINT 를 사용하여 표시한 SAVEPOINT 까지 롤백 가능하다.
여러개의 SQL 문 실행을 수반하는 Transaction 의 경우
사용자가 트렌젝션 중간단계에서 savepoint 를 지정할수 있다.
형식
SAVEPOINT 포인트 이름; => 특정위치 지정
ROLLBACK TO 포인트 이름; => 특정 위치로 되돌리기
'국비 과정 > Oracle DataBase' 카테고리의 다른 글
| 국비 - 0905 ( 사용자 계정 만들기 ) (0) | 2022.09.05 |
|---|---|
| 국비 - 0826 ( 그룹함수 , GROUP BY 절 ,HAVING 절 , JOIN ) (0) | 2022.08.26 |
| DB - 0826 예제 (1) | 2022.08.26 |
| 국비 - 0824 ( 숫자 함수 , 문자 함수 , 날짜 함수) (0) | 2022.08.24 |
| DB - 0824 예제 (0) | 2022.08.24 |