MERGE 사용법

 

*사용법

MERGE INTO [table] [alias]

USING [table | view | subquery] alias

ON[join condition]

WHEN MATCHED THEN

             UPDATE SET ...

WHEN NOT MATCHED THEN

             INSERT INTO ...

             VALUES ...;

 

-MERGE INTO : 하나의 테이블로 합치기 위한 결과 테이블

-USING : 테이블, 뷰, 서브쿼리에 대한 별명 지정

-ON : 조인 조건 지정

-WHEN MATCHED THEN : ON 절의 조인 조건을 만족하는 행 존재하면 지정된 값으로 행을 UPDATE

-WHEN NOT MATCHED THEN : ON 절의 조인 조건을 만족하지 않을 경우 새로운 행으로 INSERT

-WHEN MATCHED THEN 절과 WHEN NOT MATCHED THEN 절에서는 테이블이나 뷰 이름 대신에 USING 절에서 지정한 별명 사용

 

 

MERGE

 

*MERGE 개요

-구조가 같은 두개의 테이블을 비교하여 하나의 테이블로 합치기 위한 데이터 조작어

-WHEN 절의 조건절에서 결과 테이블에 해당 행이 존재하면 UPDATE 명령문에 의해 새로운 값으로 수정, 그렇지 않으면 INSERT 명령문으로 새로운 행을 삽입

-대량의 데이터를 분석하기 위한 업무에 유용

-예를 들면,

  。전자상거래 회사에서 하루 수만건의 데이터를 평소에는 판매 데이터를 월 단위로 분리하여 별도의 테이블에서 관리하다가 연말에 판매 실적 분석을 위해 하나의 테이블로 합치는 경우

 

 

 

서브쿼리를 이용한 데이터 삭제 예

 

*사용 예

-학생 테이블에서 컴퓨터공학과에 소속된 학생을 모두 삭제하여라.

 

 

 

서브쿼리를 이용한 데이터 삭제

 

*서브쿼리를 이용한 데이터 삭제 개요

-WHERE 절에서 서브쿼리 이용

-다른 테이블에 저장된 데이터를 검색하여 한꺼번에 여러행의 내용을 삭제 함

-WHERE 절의 칼럼 이름은 서브쿼리의 칼럼 이름과 달라도 됨

-데이터 타입과 칼럼 수는 일치

 

*사용법

DELETE FROM table

WHERE (column1, column2, ...)=(SELECT s_column1, s_column2, ...

                                                FROM table2

                                                [WHERE condition2]);

 

 

 

단일 행 삭제 예

 

*사용 예

-학생 테이블에서 학번이 20103인 학생의 데이터를 삭제하여라.

 

 

데이터 삭제

 

*데이터 삭제 개요

-DELETE 명령문은 테이블에 저장된 데이터 삭제를 위한 조작어

-WHERE 절을 생략하면 테이블의 모든 행 삭제

 

*사용법

DELETE [FROM] table

[WHERE condition1];

 

 

서브쿼리를 이용한 데이터 수정 예

 

*사용 예

-서브쿼리를 이용하여 학번이 10201인 학생의 학년과 학과 번호를 10103 학번 학생의 학년과 학과 번호와 동일하게 수정하여라.

 

 

 

서브쿼리를 이용한 데이터 수정 예

 

*사용 예

-서브쿼리를 이용하여 학번이 10201인 학생의 학년과 학과 번호를 10103 학번 학생의 학년과 학과 번호와 동일하게 수정하여라.

 

 

 

 

+ Recent posts