💬
계층형 쿼리(START WITH, CONNECT BY, ORDER SIBLINGS BY)
: 상위 타입과 하위 타입간의 관계를 계층식으로 표현할 수 있게 하는 질의어(SELECT)
1. START WITH : 상위 타입(최상위 부모)으로 사용될 행을 지정 (서브쿼리로 지정 가능)
2. CONNECT BY : 상위 타입과 하위 타입 사이의 관계를 규정 + PRIOR(이전의) 연산자와 같이 사용
1) 부모 -> 자식 계층 구조
CONNECT BY PRIOR 자식 컬럼 = 부모 컬럼
2) 자식 -> 부모 계층 구조
CONNECT BY PRIOR 부모 컬럼 = 자식 컬럼
3. ORDER SIBLINGS BY : 계층 구조 정렬
5 : SELECT
1 : FROM (+JOIN)
4 : WHERE
2 : START WITH
3 : CONNECT BY
6 : ORDER SIBLINGS BY
❗ WHERE절이 계층형 쿼리보다 해석 순서가 늦게 때문에
먼저 조건을 반영하고 싶은 경우 FROM절 서브쿼리(인라인뷰)를 이용
💬
:자원을 이름으로 구분하여, 자원의 상태를 주고 받는 것
: 주소를 명시하고 Http Method (GET, POST, PUT, DELETE)를 이용해 지정된 자원에 대한
CRUD 진행
Create : 생성, 삽입 (POST)
Read : 조회 (GET)
Update : 수정 (PUT, PETCH)
Delete : 삭제 (DELETE)
🔎 sql문
// 댓글 목록 조회(계층형 쿼리 적용)
SELECT LEVEL, C.* FROM
(SELECT COMMENT_NO, COMMENT_CONTENT,
TO_CHAR(C_CREATE_DATE, 'YYYY"년" MM"월" DD"일" HH24"시" MI"분" SS"초"') C_CREATE_DATE,
BOARD_NO, MEMBER_NO, MEMBER_NICKNAME, PROFILE_IMG,
PARENT_NO, COMMENT_DEL_FL
FROM "COMMENT"
JOIN MEMBER USING(MEMBER_NO)
WHERE BOARD_NO = 2004) C
WHERE COMMENT_DEL_FL = 'N'
START WITH PARENT_NO IS NULL
CONNECT BY PRIOR COMMENT_NO = PARENT_NO
ORDER SIBLINGS BY COMMENT_NO