기록공간

OracleSQL - INSERT, UPDATE, DELETE 그리고 COMMIT, ROLLBACK 본문

DataBase/Oracle

OracleSQL - INSERT, UPDATE, DELETE 그리고 COMMIT, ROLLBACK

입코딩 2020. 10. 4. 14:04
반응형

INSERT

INSERT는 테이블이나 뷰에 데이터를 집어넣을때 사용하는 쿼리문이다. 보통 다음과 같은 방법으로 사용한다.

 

INSERT INTO [데이터를 넣을 테이블이나 뷰 이름] [넣을 데이터(들)];

 

예를들어 다음과 같은 테이블을 만들었다고 가정해보자.

 

CREATE TABLE DEPT
( DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY
, DNAME VARCHAR2(14)
, LOC VARCHAR2(13)
);

--==>> Table DEPT이(가) 생성되었습니다.

이런 경우 데이터를 넣기 위해서 다음과 같이 쿼리문을 작성하면 된다.

 

--> 부서 번호가 10인 뉴욕에 위치한 ACCOUNTING 부서 데이터 DEPT 테이블에 추가
INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');

--==>> 1 행 이(가) 삽입되었습니다.


--> 부서 번호가 20인 달라스에 위치한 RESEARCH 부서 데이터 DEPT 테이블에 추가
INSERT INTO DEPT VALUES (20, 'RESEARCH', 'DALLAS');

--==>> 1 행 이(가) 삽입되었습니다.

 

UPDATE

UPDATE는 테이블이나 뷰에 저장된 데이터를 수정하기 위해서 사용하는 쿼리문이다. 즉, 기존의 행 데이터를 수정하기 위해 사용된다. 보통 사용 방법은 다음과 같다.

 

UPDATE [수정할 데이터가 존재하는 테이블이나 뷰 이름]
SET [수정할 속성이름 = 수정할 값]
WHERE [수정할 데이터를 찾기 위한 조건]

앞서 추가한 'ACCOUNTING'의 데이터에서 위치를 'NEW YORK'에서 'SEOUL'로 바꾸려고 한다면, 쿼리문은 다음과 같다.

 

UPDATE DEPT
SET LOC = 'SEOUL'
WHERE DNAME = 'ACCOUNTING';
(혹은 DEPTNO = 10)

--==>> 1행 이(가) 갱신되었습니다.

 

DELETE

DELETE는 INSERT와 반대로 테이블이나 뷰에 존재하는 데이터를 삭제하는 쿼리문이다. 보통 다음과 같은 방법으로 사용한다.

 

DELETE FROM [데이터를 삭제할 테이블이나 뷰 이름]
WHERE [삭제할 데이터를 찾을 조건];

 

앞에서 DEPT 테이블에 추가한 'RESEARCH' 부서 데이터를 삭제하려고 한다면, 쿼리문은 다음과 같다.

 

DELETE FROM DEPT
WHERE DNAME = 'RESEARCH'; 
(혹은 DEPTNO = 20)

--==>> 1 행 이(가) 삭제되었습니다.

 

DELETE, UPDATE 사용시 주의할 점

DELETE나 UPDATE를 사용할 때에는 보통 특정 데이터를 삭제하거나 갱신하기 위해 사용할 것이기 때문에 반드시 그 데이터가 어디에 있는지 알려주는 WHERE 조건문을 붙어줘야 한다. 만약 붙이지 않고 실행한다면 실행은 잘 되지만 그 테이블에 존재하는 모든 데이터가 삭제되거나, 혹은 특정 값이 모두 갱신될 것이다. 반드시 뒤에 WHERE 조건문을 붙이는 습관을 들이도록 하자.

 

COMMIT

COMMIT은 모든 작업을 정상적으로 처리하겠다고 확정하는 쿼리문이다. INSERT, DELETE와 같은 처리 과정을 데이터베이스에 반영하기 위해서, 변경된(트랜젝션) 데이터 내용을 물리적인 데이터 베이스로 저장한다. 즉, 영구히 저장한다. 이를 통해 변경된 데이터 결과를 모든 데이터 베이스 사용자가 볼 수 있다.

 

사용 방법은 간단하다.

 

COMMIT;

--==>> 커밋 완료.

 

ROLLBACK

ROLLBACK은 작업 중 문제가 발생하였을때, 트랜젝션의 처리 과정에서 발생한 변경 사항을 취소하고, 트랜젝션 과정을 종료시키는 쿼리문이다. 즉, 트랜젝션(INSERT, UPDATE, DELETE)으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌리는 기능을 한다. 

 

이 역시 사용 방법은 간단하다.

 

ROLLBACK;

--==>> 롤백이 완료되었습니다.
반응형

'DataBase > Oracle' 카테고리의 다른 글

OracleSQL - ROW_NUMBER  (0) 2020.10.10
OracleSQL - 서브쿼리  (0) 2020.10.05
OracleSQL - 중첩 그룹함수 / 분석함수  (0) 2020.10.05
OracleSQL - SELECT  (0) 2020.10.04
OracleSQL - CREATE, ALTER, DROP 그리고 GRANT, ALTER  (0) 2020.10.03
Comments