* 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한다.
감사합니다.
'Oracle' 카테고리의 다른 글
[이것이 오라클이다] [Oracle] 조인(내부조인,외부조인,상호조인 등) (0) | 2024.11.04 |
---|---|
[이것이 오라클이다] 07장 1교시: [Oracle] 데이터 형식, 변수, 형 변환 (2) | 2024.11.04 |
[이것이 오라클이다] 06장 2교시: [Oracle] WHERE절, GROUP BY절, HAVING절 (0) | 2024.11.03 |
[이것이 오라클이다 리뷰] PL/SQL 기본 (0) | 2024.11.03 |
[이것이 오라클이다] 05장 02교시: [Oracle] 외부 Oracle 접속, 사용자 관리 (0) | 2024.11.03 |