관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

집합 연산자와 계층형 질의 6 - 계층형 질의 1 : Oracle 본문

알고리즘 및 자료 관리/SQL

집합 연산자와 계층형 질의 6 - 계층형 질의 1 : Oracle

huenuri 2024. 10. 22. 19:04

집합 연산자가 끝나고 계층형 질의에 대해 학습해 볼 것이다.


 

 

 

이론 5 - 계층형 질의 : Oracle

 

 

 

 

 

사원들의 관계가 계층 형태로 되어 있다.

 

 

 

 

 

START WITH는 최상위 data를 기준으로 삼는다. CONNECT BY는 부모와 자식으로 상위 데이터와 하위 데이터를 연결한다.

 

 

 

 

 

 

1000은 최상위 데이터이고, 1001과1002는 상위 데이터이다.

 

 

 

 

공백이 0에서 하위 데이터에 4씩 증가해서 추가되고 있다. 이런 식으로 계층형 데이터를 응용할 수 있다.

 

 

 

 

 

CONNECT_BY_ROOT는 현재 전개할 루트에서 최상위 데이터 값을 표시할 수 있다. CONNECT_BY_ISLEAF는 최하위 데이터가 아니라면 0이, 맞으면 1이 표시된다. 

SYS_CONNECT_BY_PATH는 루트 데이터부터 경로가 표시되는데 컬럼명과 구분자를 사용한다.

 

 

선생님은 지난번 기초 강의 선생님과 달리 필기를 정말 못하신다. 너무 지저분해서 보기가 힘든 편이다. 강사의 좋은 자질 중에 하나는 글씨를 잘 쓰고 필기를 잘 정리하는 능력도 포함된다고 본다.


 

 

 

 

 

퀴즈 5 - 계층형 질의 1

 

 

 

 

답이 아니었다. 이 문제는 조금 어렵다.

 

 

 

 

이번에도 틀렸다. 이 문제는 퀴즈 해설을 봐야 할 것 같다.

 

 

 

 

PRIOR는 키워드이므로 암기를 해야 한다.


 

 

 

 

퀴즈 6 - 계층형 질의 2

 

 

 

 

이 문제는 잘 맞혔다.

 


 

 

 

학습을 마치고

1시간 동안 정말 많은 공부를 했다. 계층형 질의는 오라클과 MariaDB, SQLServer에서만 있는 개념이다. MySQL에는 없지만 이 과목은 여러 SQL DB를 다루어볼 수 있어서 정말 좋은 것 같다.

나중에 회사에 들어가게 되면 하나의 서버를 다루는 것보다 여러 가지를 다양하게 다룰 수 있으면 더욱 좋을 테니 말이다.