네이버클라우드 캠프 5기/학습내용 정리

15. ORACLE - DML

박세류 2023. 5. 2. 09:53

1. DML(Data Manipulation Language) : 데이터 조작언어

1. DML이란

  1. 데이터를 조작(저장, 수정, 삭제)을 할 수 있는 명령어
  2. INSERT INTO(저장기능), UPDATE SET(수정기능), DELETE FROM(삭제기능)을 담당하는 명령어들이 존재한다.
  3. 트랜잭션은 SQL에서 작업의 최소 단위
  4. 데이터 조작이 일어날 경우 트랜잭션이 완료돼야 하는데 트랜잭션을 완료시켜주는 명령어는 COMMIT, ROLLBACK이 있다.
  5. 데이터 조작이 일어난 후 트랜잭션이 완료되지 않으면 데이터를 조작한 사용자가 해당 테이블을 점유하고 있어서 해당 태이블은 락이 걸려 다른 사용자는 테이블을 확인할 수 없다.
  6. COMMIT은 작업을 성공적으로 완료했을 때 실행하는 명령어, ROLLBACK은 작업을 취소하는 명령어. 문제생긴 작업만 취소되는 건 아니고 이전에 수행한 작업 모두 취소.

2. INSERT INTO

  1. 테이블에 데이터를 저장하는 명령어
  2. INSERT INTO 테이블명(저장할 컬럼명1, 저장할 컬럼명2, ....) VALUES(저장될 값1, 저장될 값2, ....);
  3. 지정한 컬럼에만 데이터를 저장할 수 있다.
  4. 지정한 컬럼 수, 데이터 타입이 지정한 값들과 일치해야 한다.
  5. 해당 테이블의 모든 컬럼 값을 저장할 때는 지정할 컬럼을 명시하지 않아도 된다.
  6. 서브쿼리를 이용해서 다량의 데이터를 한 번에 저장하는 방법
    • INSERT INTO 테이블명(지정할 컬럼들(선택))
      SELECT 저장할 데이터의 컬럼들
      FROM 조회해올 테이블
      WHERE 조건절;

3. UPDATE SET

  1. 데이터를 수정할 수 있는 명령어
  2. UPDATE 테이블명
    SET
       수정할 데이터의 컬럼1 = 변경할 값1,
       수정할 데이터의 컬럼2 = 변경할 값2,
       ....
    WHERE 조건
  3. 대부분 조건 절을 사용해서 특정 데이터만 수정될수 있도록 한다.
  4. 서브쿼리를 이용한 데이터의 수정 방법
    • UPDATE 테이블명
      SET
          (변경될 컬럼1, 변경될 컬럼2) = (
                                            SELECT 수정될 데이터1, 수정될 데이터2
                                        ),
          변경될 컬럼3 = (
                            SELECT 수정될 데이터3
                        )
      WHERE 조건;

4. DELETE FROM

  1. 테이블에 있는 데이터를 삭제하는 명령어
  2. DELETE FROM 테이블명
    WHERE 조건;
  3. 조건절 명시하지 않을 시 전체 데이터가 삭제되기 때문에 주의.
  4. 행을 아예 삭제하기 때문에 따로 컬럼을 지정할 필요가 없다.

5. LOCK

  1. LOCK은 특정 세션에서 먼저 점유중인 트랜잭션이 완료되기 전까지는 다른 세션에서는 데이터를 조작할 수 없는 데이터 잠금상태.
  2. DML을 사용한 다음에는 항상 트랜잭션을 종료해야한다.
  3. 트랜잭션이 종료되지 않으면 다른 세션에서의 데이터 조작을 방해하기 때문에 항상 COMMIT, ROLLBACK을 생활화해야 한다.

6. 트랜잭션(Transaction)

  1. SQL문이 실행되는 최소한의 작업단위
  2. 항상 COMMIT과 ROLLBACK을 동반해야한다.
  3. COMMIT은 작업의 완료를 의미하고 이전 트랜잭션이 완료된 시점부터 발생된 작업들을 모두 완료한다.
  4. ROLLBACK은 작업의 취소를 의미하고 이전 트랜잭션이 완료된 시점부터 발생된 작업들을 모두 취소한다.
  5. 트랜잭션의 특징
    • 원자성 : 트랜잭션은 전체가 취소되거나 완료될 수 있지만 일부분만 취소하거나 일부분만 완료할 수 없다.
    • 일관성 : 트랜잭션이 실행된 후에는 데이터베이스 무결성이 유지된다. 어떤 세션에서 데이터를 조회해도 동일한 데이터를 볼 수 있는 속성.
    • 독립성 : 하나의 트랜잭션이 다른 트랜잭션에 영향을 끼칠 수 없다.
    • 영속성 : 트랜잭션의 결과가 항상 데이터베이스에 반영되는 속성
  6. 트랜잭션의 시작
    • DML(INSERT, UPDATE, DELETE) 구문의 사용, DDL(CREATE, ALTER, DROP, TRUNCATE) 구문의 사용, DCL(REVOKE, GRANT)의 사용했을 때 트랜잭션이 시작됨.
  7. 트랜잭션의 종료
    • DML(INSERT, UPDATE, DELETE) 구문 사용 후 COMMIT, ROLLBACK이 실행됐을 때 트랜잭션 종료됨.
    • DDL(CREATE, ALTER, DROP, TRUNCATE), DCL(GRANT, REVOKE) 구문 사용 후 자동으로 트랜잭션이 종료됨.
728x90

'네이버클라우드 캠프 5기 > 학습내용 정리' 카테고리의 다른 글

17. ORACLE - Object  (0) 2023.05.02
16. ORACLE - DDL  (0) 2023.05.02
14. ORACLE - Join & SubQuery  (0) 2023.04.13
13. ORACLE - Select  (0) 2023.04.13
12. Oracle - SQL  (0) 2023.04.12