728x90
반응형
SMALL

* Youtube Link - https://www.youtube.com/watch?v=j-Zh1kR8s8Q&list=PLVsNizTWUw7FzFgU1qe-n7_M7eMFA9d-f&index=14

 

CTE (공통 테이블 표현)

WITH CTE_테이블이름(열이름)

AS

(

            <쿼리문>

)

SELECT 열이름 FROM CTE_테이블이름;

실습

WITH절을 통해서 abc 라는 cte, 임시 테이블을 만들 수 있다.

WITH절에서 정의한 함수와 가로 안의 SELECT문의 열이 1:1로 매치가 되어야 한다.

userID -> userID, SUM(price*amount) -> total

중복 CTE (공통 테이블 표현)

각 지역별 최고키 평균을 구하였다.

지역별 최고키를 구하고

cte를 만든 다음

 지열별 최고키의 평균을 구하였다.

재귀 cte를 통해서 다음과 같은 여러 cte테이블들을 사용해서

전체 평균값을 구해보았다.

 

 

SQL의 분류

DML문은 실수할 수도 있다. 그래서 ROLLBACK을 시키면 입력하고 변경한 것을 취소할 수 있다.

COMMIT을 시키면 입력하고 변경한 것을 확정을 지을 수 있다.

트랜잭션을 완전 적용할 수 있는 것은 COMMIT 그리고 취소시킬 수 있는 것은 ROLLBACK이다.

DDL문은 CREATE, DROP, ALTER이다. COMMIT이나 ROLLBACK이 필요 없다. 그래서 DDL문은 실행 즉시 Oracle에 적용된다.

DCL문은 GRANT/REVOKE/DENY 등이 이에 해당한다.

DML문

INSERT INTO 테이블(열1, 열2, ...) VALUES (값1, 값2, ...)

열을 입력하지 않으면 테이블에 정의된 모든 열들을 차례대로 값을 입력해주면 된다.

MERGE

멤버 테이블은 굉장히 중요한 테이블이다.

변경 테이블을 만들어 놓을 것이다.

1주일에 한번씩 변경 작업을 일괄적으로 할 것이다.

사유에 따라서 한꺼번에 적용되게끔 어떻게 하는지 한번 살펴보겠다.

changeTBL을 토대로 

memberTBL의 userID값과 같은 값들을 체크해서

주소를 변경하고

만약 변경 사유가 '회원탈퇴'라면

DELETE 한다.

만약 MATCH가 되지 않는다면

memberTBL에 새로 INSERT한다.

 

감사합니다.

728x90
반응형
LIST

+ Recent posts