계층형 쿼리 = Hierachical Query
명확하게 상하 관계를 보여주고 싶을 때 쓰는 쿼리
문법:
SELECT LPAD(칼럼이름,LEVEL*숫자,'채울문자')
FROM 테이블명
CONNECT BY PRIOR 칼럼1 = (PRIOR) 칼럼2
START WITH 칼럼=값 ;
문법설명:
LEVEL*숫자 --> 출력할 바이트 길이
LEVEL은 해당 데이터가 몇번째 단계이냐를 의미하는 것
CONNECT BY절 --> 연결조건, 서로 어떻게 연결이 되야 하는가? (JOIN에서 WHERE절 쓰는거랑 비슷하다고 생각하면 될듯)
서브쿼리를 사용할 수는 없음
PRIOR --> 칼럼1에 두느냐 칼럼2에 두느냐가 중요,
해당 키워드가 설정되어 있는 칼럼에서 바로 이전의 데이터 값을 찾는다
쉽게 말해서 START WITH에서 쓴 처음조건부터 시작해서 이 조건의 PRIOR를 붙인 칼럼의 값을 찾아서 해당데이터를 출력
START WITH --> 검색을 시작할 조건
두개 이상의 테이블을 쓸 때는 JOIN을 사용해 WHERE절을 추가해서 사용해도 된다.
예제들 캡쳐
'SQL + PL/SQL > SQL' 카테고리의 다른 글
SYNONYM (0) | 2013.01.13 |
---|---|
SEQUENCE - 시퀀스 (0) | 2013.01.13 |
VIEW - 뷰 (0) | 2013.01.13 |
INDEX - 인덱스 (0) | 2013.01.13 |
CONSTRAINT - 제약조건 (0) | 2013.01.13 |