Oacle 트 리 구조 조회

1535 단어 Oacle
Oacle 트 리 조회 의 가장 중요 한 것 은 select. start with.. connect by.. prior 문법 입 니 다.이 문법 을 바탕 으로 우 리 는 하나의 표 형 구 조 를 나무의 순서 로 배열 할 수 있다.다음은 Oacle 에서 트 리 조회 에 자주 사용 되 는 조회 방식 과 트 리 조회 와 관련 된 Oacle 특성 함수 등 을 설명 합 니 다. 여기 서 는 한 장의 표 에 있 는 트 리 조회 방식 만 언급 되 고 여러 표 의 관련 이 없습니다.
부모 메뉴
insert into tb_menu(id, title, parent) values(1, '   1',null);

......
1 단계 메뉴
insert into tb_menu(id, title, parent) values(6, '    6',1);

......
-- 2 단계 메뉴
insert into tb_menu(id, title, parent) values(21, '    21',6);

parent 필드 는 상위 id 를 저장 합 니 다. 최상 위 부모 노드 라면 이 parent 는 null 입 니 다.
2. 나무 조작
우 리 는 가장 기본 적 인 조작 에서 트 리 조회 에서 흔히 볼 수 있 는 조작 을 점차적으로 열거 하고 모든 조회 한 노드 는 가족 중의 세대 로 예 를 들 면 된다.
1) 트 리 의 모든 최상 위 부모 노드 (세대 가 가장 긴 사람) 를 찾 습 니 다.이 트 리 가 디 렉 터 리 구조 라 고 가정 하면 첫 번 째 작업 은 항상 모든 최상 위 노드 를 찾 은 다음 에 이 노드 에 따라 부하 노드 를 찾 습 니 다.
select * from tb_menu m where m.parent is null;

2) 、 한 노드 의 직속 하위 노드 (모든 아들) 를 찾 습 니 다.직속 하위 노드 를 찾 았 다 면 트 리 로 조회 하지 않 아 도 됩 니 다.
select * from tb_menu m where m.parent=1;

3), 한 노드 의 모든 직속 하위 노드 (모든 후대) 를 찾 습 니 다.
select * from tb_menu m start with m.id=1 connect by m.parent=prior m.id;

4), 한 노드 의 모든 직속 부 노드 (조상) 를 찾 습 니 다.
select * from tb_menu m start with m.id=38 connect by prior m.parent=m.id;

좋은 웹페이지 즐겨찾기