1. DML(Data Manipulation Language) : 데이터 조작언어
1. DML이란
- 데이터를 조작(저장, 수정, 삭제)을 할 수 있는 명령어
- INSERT INTO(저장기능), UPDATE SET(수정기능), DELETE FROM(삭제기능)을 담당하는 명령어들이 존재한다.
- 트랜잭션은 SQL에서 작업의 최소 단위
- 데이터 조작이 일어날 경우 트랜잭션이 완료돼야 하는데 트랜잭션을 완료시켜주는 명령어는 COMMIT, ROLLBACK이 있다.
- 데이터 조작이 일어난 후 트랜잭션이 완료되지 않으면 데이터를 조작한 사용자가 해당 테이블을 점유하고 있어서 해당 태이블은 락이 걸려 다른 사용자는 테이블을 확인할 수 없다.
- COMMIT은 작업을 성공적으로 완료했을 때 실행하는 명령어, ROLLBACK은 작업을 취소하는 명령어. 문제생긴 작업만 취소되는 건 아니고 이전에 수행한 작업 모두 취소.
2. INSERT INTO
- 테이블에 데이터를 저장하는 명령어
- INSERT INTO 테이블명(저장할 컬럼명1, 저장할 컬럼명2, ....) VALUES(저장될 값1, 저장될 값2, ....);
- 지정한 컬럼에만 데이터를 저장할 수 있다.
- 지정한 컬럼 수, 데이터 타입이 지정한 값들과 일치해야 한다.
- 해당 테이블의 모든 컬럼 값을 저장할 때는 지정할 컬럼을 명시하지 않아도 된다.
- 서브쿼리를 이용해서 다량의 데이터를 한 번에 저장하는 방법
- INSERT INTO 테이블명(지정할 컬럼들(선택))
SELECT 저장할 데이터의 컬럼들
FROM 조회해올 테이블
WHERE 조건절;
- INSERT INTO 테이블명(지정할 컬럼들(선택))
3. UPDATE SET
- 데이터를 수정할 수 있는 명령어
- UPDATE 테이블명
SET
WHERE 조건수정할 데이터의 컬럼1 = 변경할 값1, 수정할 데이터의 컬럼2 = 변경할 값2, ....
- 대부분 조건 절을 사용해서 특정 데이터만 수정될수 있도록 한다.
- 서브쿼리를 이용한 데이터의 수정 방법
- UPDATE 테이블명
SET (변경될 컬럼1, 변경될 컬럼2) = ( SELECT 수정될 데이터1, 수정될 데이터2 ), 변경될 컬럼3 = ( SELECT 수정될 데이터3 ) WHERE 조건;
- UPDATE 테이블명
4. DELETE FROM
- 테이블에 있는 데이터를 삭제하는 명령어
- DELETE FROM 테이블명
WHERE 조건; - 조건절 명시하지 않을 시 전체 데이터가 삭제되기 때문에 주의.
- 행을 아예 삭제하기 때문에 따로 컬럼을 지정할 필요가 없다.
5. LOCK
- LOCK은 특정 세션에서 먼저 점유중인 트랜잭션이 완료되기 전까지는 다른 세션에서는 데이터를 조작할 수 없는 데이터 잠금상태.
- DML을 사용한 다음에는 항상 트랜잭션을 종료해야한다.
- 트랜잭션이 종료되지 않으면 다른 세션에서의 데이터 조작을 방해하기 때문에 항상 COMMIT, ROLLBACK을 생활화해야 한다.
6. 트랜잭션(Transaction)
- SQL문이 실행되는 최소한의 작업단위
- 항상 COMMIT과 ROLLBACK을 동반해야한다.
- COMMIT은 작업의 완료를 의미하고 이전 트랜잭션이 완료된 시점부터 발생된 작업들을 모두 완료한다.
- ROLLBACK은 작업의 취소를 의미하고 이전 트랜잭션이 완료된 시점부터 발생된 작업들을 모두 취소한다.
- 트랜잭션의 특징
- 원자성 : 트랜잭션은 전체가 취소되거나 완료될 수 있지만 일부분만 취소하거나 일부분만 완료할 수 없다.
- 일관성 : 트랜잭션이 실행된 후에는 데이터베이스 무결성이 유지된다. 어떤 세션에서 데이터를 조회해도 동일한 데이터를 볼 수 있는 속성.
- 독립성 : 하나의 트랜잭션이 다른 트랜잭션에 영향을 끼칠 수 없다.
- 영속성 : 트랜잭션의 결과가 항상 데이터베이스에 반영되는 속성
- 트랜잭션의 시작
- DML(INSERT, UPDATE, DELETE) 구문의 사용, DDL(CREATE, ALTER, DROP, TRUNCATE) 구문의 사용, DCL(REVOKE, GRANT)의 사용했을 때 트랜잭션이 시작됨.
- 트랜잭션의 종료
- 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 |