DML(Data Manipulation Language)
- 테이블에 새로운 데이터를 저장(INSERT) , 삭제(DELETE), 수정(UPDATE), 병합(MERGE)할때 사용하는
데이터 조작어 - data는 잘 못 반영될 우려가 있어 DML로 데이터 수정 후 완충 공간에 임시 반영한다.
따라서 실제 데이터에 반영하기 위해서는 TCL로 반영해주어야한다.
SQL 종류 | 명령문 |
Data Manipulation Language (DML : 데이터 조작어) |
INSERT(데이터 입력) UPDATE(데이터 수정) DELETE(데이터 삭제) MERGE(데이터 병합) |
Transaction Control Language (TCL : 트랜잭션 처리어) |
COMMIT(트랜잭션 작업 반영) ROLLBACK(트랜잭션 작업 취소) SAVEPOINT(트램잭션내 책갈피 설정) |
INSERT 문
단일행 INSERT문
- 데이터를 저장하기 위한 데이터 조작어
- 한 번에 하나의 row를 저장하는 단일행 INSERT방법과
서브쿼리를 이용하여 여러줄의 row를 저장하는 다중 행 INSERT 방법이 있다.
// 컬럼명을 명시한 데이터 저장 방법
INSERT INTO 테이블명
(컬럼명1, 컬럼명2, ...)
VALUES(값1, 값2, ...);
//컬럼명을 작성하지 않은 데이터 저장 방법
//반드시 테이블의 컬럼순서와 일치되는 데이터를 입력해야한다.
INSERT INTO 테이블명
VALUES(값1, 값2, ...);
NULL 값 저장
- 묵시적 방법
- 명시적 방법
안배움
INSERT문 사용시 에러 발생 예
천천히 정리
복수행 INSERT문
아직 안배움
다중 테이블 다중행 INSERT 문
아직 안 배움
UPDATE 문
- 테이블에 저장된 데이터를 수정하기 위해서 사용됨.
- 한번에 여러개의 row를 변경할 수 있음
UPDATE 테이블명
SET 컬럼명1=변경할값1, 컬럼명2=변경할값2,...
WHERE 컬럼명=값; //(PRIMARY KEY가 있는 컬럼을 적어준다.)
서브쿼리를 이용한 UPDATE문
안배움
DELETE 문
- 테이블에 저장된 데이터를 삭제하기 위해서 사용됨.
- 한번에 여러개의 행들을 삭제할 수 있다.
//모든 행 삭제하기
DELETE FROM 테이블명;
//조건에 일치하는 행 삭제하기
DELETE FROM 테이블명
WHERE 컬럼명=값;
서브쿼리를 이용한 DELETE문
안배움
MERGE 문
안배움
TCL(Transaction Control Language)
- 논리적인 작업단위로서 분리될 수 없는 한개 이상의 데이터베이스 조작을 의미한다.
- 오라클에서 발생되는 여러개의 작업들을 하나의 작업처럼 처리해야 되는 경우에 필요함.
- 하나의 트랜젝션에는 하나이상의 SQL문이 포함될 수 있다.
COMMIT
COMMIT;
- DML문에 의해서 실행되었으나 실제로 저장되지 않은 모든 데이터를
데이터베이스에 저장하고 현재의 드랜잭션을 종료하는 명령어
ROLLBACK
ROLLBACK;
//SAVEPOINT까지 ROLLBACK하기
ROLLBACK TO SAVEPOINT 이름
- 저장되지 않은 모든 데이터의 변경 사항을 취소하고
현재의 드랜젝션을 종료하는 명령어 - 트랜젝션으로 인한 하나의 묶음처리가 시작되기 이전의 상태로 복구되는 것
- SAVEPOINT를 지정한 경우 지정위치까지만 변경 사항을 취소 시킬 수도 있다.
SAVEPOINT
SAVEPOINT 이름;
- 진행 중인 트랜젝션을 특정 이름으로 지정한는 명령어. (책갈피기능)
- 지정된 이름에 해당하는 상태로 실행된 DML작업을 취소 할 수 있다.
'ORACLE' 카테고리의 다른 글
SQL 함수-그룹함수 / GROUP BY 절 / HAVING절 (0) | 2019.11.15 |
---|---|
SQL함수 / 단일행 함수 (0) | 2019.11.15 |
DDL 명령어 / TABLE 객체 / ROWID / ROWNUM (0) | 2019.11.15 |
Data Base (0) | 2019.11.14 |
SELECT 문 / WHERE 절 (0) | 2019.11.14 |