SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
제9장 데이터 조작과 트랜잭션
(DATA MANIPULATION LANGUAGE AND TRANSACTION)
이 상덕
1. 테이블 내용 추가 INSERT문
3. 테이블 내용 삭제 DELETE문
2. 테이블 내용 수정 UPDATE문
4. 트랜잭션 관리
CONTENTS
- 쿼리의 종류
유형 명령문 기능
질의어
DQL(Data Query Language)
SELECT 데이터 검색
데이터 조작어
DML(Data Manipulation Language)
INSERT
UPDATE
DELETE
데이터 입력
데이터 수정
데이터 삭제
데이터 정의어
DDL(Data Definition Language)
CREATE
ALTER
DROP
RENAME
TRUNCATE
DB 객체 생성
DB 객체 변경
DB 객체 삭제
DB 객체 이름 변경
데이터 및 저장 공간 삭제
트랜잭션 처리어
TCL(Transaction Control Language)
COMMIT
ROLLBACK
SAVEPOINT
트랜잭션의 정상적인 종료 처리
트랜잭션 취소
트랜잭션내에 임시 저장점 설정
데이터 제어어
DCL(Data Control Language)
GRANT
REVOKE
DB 객체 접근 권한 부여
DB 객체 접근 권한 취소
1. 테이블 내용 추가(1) - 문법
-> 테이블의 칼럼에 데이터를 입력하기 위한 명령어
문법
INSERT INTO 테이블명
(COLUMN[1]….COLUMN[N])
VALUES
(VALUE[1]…. VALUE[N])
1. 테이블 내용 추가(2) - NULL값 갖는 로우 삽입(1)
->칼럼 값을 모르거나 확정되지 않았을 때, 사용하는 방법.
암시적 방법: 칼럼명 리스트에 해당 칼럼을 생략.
명시적 방법: VALUES 절에 명시적으로 NULL을 입력.
1. 테이블 내용 추가(3)
NULL값 갖는 로우 삽입(2)[암시적 방법]
1. 테이블 내용 추가(4)
NULL값 갖는 로우 삽입(3)[암시적 방법]
1. 테이블 내용 추가(5)
NULL값 갖는 로우 삽입(4)[명시적 방법]
1. 테이블 내용 추가(6)
다른 테이블에서 데이터 복사하기(1)
1. 테이블 내용 추가(7)
다른 테이블에서 데이터 복사하기(2)
1. 테이블 내용 추가(8)
CONDITIONAL INSERT ALL 문법[스크립트 생성]
INSERT ALL
WHEN 조건1 THEN
INTO 테이블 이름1
WHEN 조건2 THEN
INTO 테이블 이름2
ELSE
INTO 테이블 이름3
SUB-QUERY;
1. 테이블 내용 추가(9)
UNCONDITIONAL INSERT ALL 문법[스크립트 생성]
INSERT ALL
[INTO 테이블1 VALUES (칼럼1,칼럼2,...)]
[INTO 테이블2 VALUES (칼럼1,칼럼2,...)]
SELECT 칼럼1, 칼럼2, 칼럼3, 칼럼4, 칼럼5
FROM 테이블3
WHERE 조건;
1. 테이블 내용 추가(10)
CONDITIONAL INSERT FIRST 문법[스크립트 생성]
INSERT FIRST
WHEN 조건절1 THEN
INTO [테이블명1] VALUES[(칼럼1, 칼럼2...)
WHEN 조건절2 THEN
INTO [테이블명2] VALUES[(칼럼1, 칼럼2...)
ELSE
INTO [테이블명3] VALUES[(칼럼1, 칼럼2...)
SUB-QUERY;
1. 테이블 내용 추가(11) - MERGE INTO 문법[스크립트 생성]
MERGE INTO [테이블명/VIEW] 별칭
USING [대상 테이블/VIEW] 별칭
ON [조인조건]
WHEN MATCHED THEN
UPDATE STATEMENT
DELETE STATEMENT
WHEN NOT MATCHED THEN
INSERT STATEMENT
DELETE STATEMENT
[WHERE STATEMENT];
2. 테이블 내용 수정 – 문법, 문제
문법
UPDATE 테이블명
SET
칼럼명[1]=변경할값[1],
〯
칼럼명[n]=변경할값[n]
[WHERE 칼럼명[n] = 조건]
문제
EMPLOYEES 테이블의 구조와 데이터를 복사
한 EMP테이블을 생성하여 ‘IT’사원들[JOB_ID
가 ‘IT’로 시작]의 부서코드를 200으로 수정하
여 출력하세요.
3. 테이블 내용 삭제 - 문법
문법
DELETE 테이블명
[WHERE 칼럼명[n] = 조건];
4. 트랜잭션 관리 및 쿼리의 종류(1) – 설명
- 한 작업의 단위
- 트랜잭션을 기반으로 데이터의 일관성을 보장
[하나 이상의 명령어가 DML[INSERT, DELETE, UPDATE]문으로 구성]
[DML 문이 시작되면 트랜잭션 문도 시작되었다는 뜻]
- ALL OR NOTHING(COMMIT/ROLLBACK)
- 은행 입ㆍ출금 서비스
4. 트랜잭션 관리 및 쿼리의 종류(2) - LOCK
- FOR UPDATE
- 부서코드가 50번인 사람들을 조회[FOR UPDATE]
하고,
다른 세션에선 부서코드가 50번인 사람들의 급여
를 일괄 변경해보기
4. 트랜잭션 관리 및 쿼리의 종류(3) - 확인
1. (EMPLOYEES 테이블을 복사한 EMP 테이블에) 데이터
추가(INSERT INTO) 후[1줄 이상], ROLLBACK 해보기.
2. (테이블은 1번과 동일) 데이터 추가(INSERT INTO)후,
COMMIT해보기. 그 다음 ROLLBACK을 한다.
3. 테이블을 삭제하고(DROP: DDL문), ROLLBACK 해보기.
THANKS FOR EVERYTHING
Q&A

Más contenido relacionado

Más de sang doc Lee

제6장 테이블 조인
제6장 테이블 조인제6장 테이블 조인
제6장 테이블 조인sang doc Lee
 
제4장 sql 함수를 사용해보기
제4장 sql 함수를 사용해보기제4장 sql 함수를 사용해보기
제4장 sql 함수를 사용해보기sang doc Lee
 
제3장 sql plus에 대하여
제3장 sql plus에 대하여제3장 sql plus에 대하여
제3장 sql plus에 대하여sang doc Lee
 
제2장 데이터 조회하기
제2장 데이터 조회하기제2장 데이터 조회하기
제2장 데이터 조회하기sang doc Lee
 
제1장 오라클, dbms설치
제1장 오라클, dbms설치제1장 오라클, dbms설치
제1장 오라클, dbms설치sang doc Lee
 
제12장 시퀀스와 인덱스
제12장 시퀀스와 인덱스제12장 시퀀스와 인덱스
제12장 시퀀스와 인덱스sang doc Lee
 
제10장 데이터 무결성과 제약 조건
제10장 데이터 무결성과 제약 조건제10장 데이터 무결성과 제약 조건
제10장 데이터 무결성과 제약 조건sang doc Lee
 
제7장 서브 쿼리
제7장 서브 쿼리제7장 서브 쿼리
제7장 서브 쿼리sang doc Lee
 
제5장 집계함수, 그룹함수 사용하기
제5장 집계함수, 그룹함수 사용하기제5장 집계함수, 그룹함수 사용하기
제5장 집계함수, 그룹함수 사용하기sang doc Lee
 

Más de sang doc Lee (10)

제6장 테이블 조인
제6장 테이블 조인제6장 테이블 조인
제6장 테이블 조인
 
제4장 sql 함수를 사용해보기
제4장 sql 함수를 사용해보기제4장 sql 함수를 사용해보기
제4장 sql 함수를 사용해보기
 
제3장 sql plus에 대하여
제3장 sql plus에 대하여제3장 sql plus에 대하여
제3장 sql plus에 대하여
 
제2장 데이터 조회하기
제2장 데이터 조회하기제2장 데이터 조회하기
제2장 데이터 조회하기
 
제1장 오라클, dbms설치
제1장 오라클, dbms설치제1장 오라클, dbms설치
제1장 오라클, dbms설치
 
제12장 시퀀스와 인덱스
제12장 시퀀스와 인덱스제12장 시퀀스와 인덱스
제12장 시퀀스와 인덱스
 
제11장 뷰
제11장 뷰제11장 뷰
제11장 뷰
 
제10장 데이터 무결성과 제약 조건
제10장 데이터 무결성과 제약 조건제10장 데이터 무결성과 제약 조건
제10장 데이터 무결성과 제약 조건
 
제7장 서브 쿼리
제7장 서브 쿼리제7장 서브 쿼리
제7장 서브 쿼리
 
제5장 집계함수, 그룹함수 사용하기
제5장 집계함수, 그룹함수 사용하기제5장 집계함수, 그룹함수 사용하기
제5장 집계함수, 그룹함수 사용하기
 

제9장 데이터 조작과 트랜잭션

  • 1. 제9장 데이터 조작과 트랜잭션 (DATA MANIPULATION LANGUAGE AND TRANSACTION) 이 상덕
  • 2. 1. 테이블 내용 추가 INSERT문 3. 테이블 내용 삭제 DELETE문 2. 테이블 내용 수정 UPDATE문 4. 트랜잭션 관리 CONTENTS
  • 3. - 쿼리의 종류 유형 명령문 기능 질의어 DQL(Data Query Language) SELECT 데이터 검색 데이터 조작어 DML(Data Manipulation Language) INSERT UPDATE DELETE 데이터 입력 데이터 수정 데이터 삭제 데이터 정의어 DDL(Data Definition Language) CREATE ALTER DROP RENAME TRUNCATE DB 객체 생성 DB 객체 변경 DB 객체 삭제 DB 객체 이름 변경 데이터 및 저장 공간 삭제 트랜잭션 처리어 TCL(Transaction Control Language) COMMIT ROLLBACK SAVEPOINT 트랜잭션의 정상적인 종료 처리 트랜잭션 취소 트랜잭션내에 임시 저장점 설정 데이터 제어어 DCL(Data Control Language) GRANT REVOKE DB 객체 접근 권한 부여 DB 객체 접근 권한 취소
  • 4. 1. 테이블 내용 추가(1) - 문법 -> 테이블의 칼럼에 데이터를 입력하기 위한 명령어 문법 INSERT INTO 테이블명 (COLUMN[1]….COLUMN[N]) VALUES (VALUE[1]…. VALUE[N])
  • 5. 1. 테이블 내용 추가(2) - NULL값 갖는 로우 삽입(1) ->칼럼 값을 모르거나 확정되지 않았을 때, 사용하는 방법. 암시적 방법: 칼럼명 리스트에 해당 칼럼을 생략. 명시적 방법: VALUES 절에 명시적으로 NULL을 입력.
  • 6. 1. 테이블 내용 추가(3) NULL값 갖는 로우 삽입(2)[암시적 방법]
  • 7. 1. 테이블 내용 추가(4) NULL값 갖는 로우 삽입(3)[암시적 방법]
  • 8. 1. 테이블 내용 추가(5) NULL값 갖는 로우 삽입(4)[명시적 방법]
  • 9. 1. 테이블 내용 추가(6) 다른 테이블에서 데이터 복사하기(1)
  • 10. 1. 테이블 내용 추가(7) 다른 테이블에서 데이터 복사하기(2)
  • 11. 1. 테이블 내용 추가(8) CONDITIONAL INSERT ALL 문법[스크립트 생성] INSERT ALL WHEN 조건1 THEN INTO 테이블 이름1 WHEN 조건2 THEN INTO 테이블 이름2 ELSE INTO 테이블 이름3 SUB-QUERY;
  • 12. 1. 테이블 내용 추가(9) UNCONDITIONAL INSERT ALL 문법[스크립트 생성] INSERT ALL [INTO 테이블1 VALUES (칼럼1,칼럼2,...)] [INTO 테이블2 VALUES (칼럼1,칼럼2,...)] SELECT 칼럼1, 칼럼2, 칼럼3, 칼럼4, 칼럼5 FROM 테이블3 WHERE 조건;
  • 13. 1. 테이블 내용 추가(10) CONDITIONAL INSERT FIRST 문법[스크립트 생성] INSERT FIRST WHEN 조건절1 THEN INTO [테이블명1] VALUES[(칼럼1, 칼럼2...) WHEN 조건절2 THEN INTO [테이블명2] VALUES[(칼럼1, 칼럼2...) ELSE INTO [테이블명3] VALUES[(칼럼1, 칼럼2...) SUB-QUERY;
  • 14. 1. 테이블 내용 추가(11) - MERGE INTO 문법[스크립트 생성] MERGE INTO [테이블명/VIEW] 별칭 USING [대상 테이블/VIEW] 별칭 ON [조인조건] WHEN MATCHED THEN UPDATE STATEMENT DELETE STATEMENT WHEN NOT MATCHED THEN INSERT STATEMENT DELETE STATEMENT [WHERE STATEMENT];
  • 15. 2. 테이블 내용 수정 – 문법, 문제 문법 UPDATE 테이블명 SET 칼럼명[1]=변경할값[1], 〯 칼럼명[n]=변경할값[n] [WHERE 칼럼명[n] = 조건] 문제 EMPLOYEES 테이블의 구조와 데이터를 복사 한 EMP테이블을 생성하여 ‘IT’사원들[JOB_ID 가 ‘IT’로 시작]의 부서코드를 200으로 수정하 여 출력하세요.
  • 16. 3. 테이블 내용 삭제 - 문법 문법 DELETE 테이블명 [WHERE 칼럼명[n] = 조건];
  • 17. 4. 트랜잭션 관리 및 쿼리의 종류(1) – 설명 - 한 작업의 단위 - 트랜잭션을 기반으로 데이터의 일관성을 보장 [하나 이상의 명령어가 DML[INSERT, DELETE, UPDATE]문으로 구성] [DML 문이 시작되면 트랜잭션 문도 시작되었다는 뜻] - ALL OR NOTHING(COMMIT/ROLLBACK) - 은행 입ㆍ출금 서비스
  • 18. 4. 트랜잭션 관리 및 쿼리의 종류(2) - LOCK - FOR UPDATE - 부서코드가 50번인 사람들을 조회[FOR UPDATE] 하고, 다른 세션에선 부서코드가 50번인 사람들의 급여 를 일괄 변경해보기
  • 19. 4. 트랜잭션 관리 및 쿼리의 종류(3) - 확인 1. (EMPLOYEES 테이블을 복사한 EMP 테이블에) 데이터 추가(INSERT INTO) 후[1줄 이상], ROLLBACK 해보기. 2. (테이블은 1번과 동일) 데이터 추가(INSERT INTO)후, COMMIT해보기. 그 다음 ROLLBACK을 한다. 3. 테이블을 삭제하고(DROP: DDL문), ROLLBACK 해보기.