· ROWNUM
- Oracle DB의 SELECT문 결과에 대해 논리적인 일련번호를 부여
- 조회되는 행 수를 제한할 때 많이 사용 (페이지 단위 출력은 인라인 뷰)
* 인라인 뷰 (Inline View)
- 인라인 뷰는 SELECT문에서 FROM절에 사용되는 서브쿼리를 의미
SELECT * FROM // MAIN QUERY
(SELECT * FROM EMP) a; // SUBQUERY (INLINE VIEW)
* SQL Server의 TOP구문과 MySQL의 limit 구문
ex) 10명만 인출(Fetch) 하는 예제
[SQL Server] : SELECT TOP(10) FROM EMP;
[MySQL] : SELECT * FROM EMP LIMIT 10;
· ROWID
- Oracle DB 내에서 데이터를 구분할 수 있는 유일한 값으로, 데이터가 어떤 데이터 파일, 어느 블록에 저장되어 있는지 확인 가능
· ROWID 구조
1) 오브젝트 번호 (1~6) : 오브젝트 별로 유일한 값을 가짐
2) 상대 파일 번호 (7~9) : 테이블스페이스에 속한 데이터 파일에 대한 상대파일번호
3) 블록 번호 (10~15) : 데이터 파일 내부에서 어느 블록에 데이터가 존재하는지 알려줌
4) 데이터 번호 (16~18) : 데이터 블록에 저장되어 있는 순서를 의미
· 계층형 조회 (CONNECT BY)
-> Oracle DB에서 지원하는 것으로 계층형 데이터 조회가 가능
· 계층형 조회의 특징
1) 트리 형태의 구조로 질의를 수행하여 위에서 아래로 탐색 (역방향 가능)
- START WITH구 : 시작조건
- CONNECT BY PRIOR : 조인 조건
2) MAX (LEVEL)을 사용하여 최대 계층 수를 구할 수 있음 즉, 계층형 구조에서 마지막 Leaf Node의 계층 값을 구함
· CONNECT BY 키워드
1) LEVEL : 검색 항목의 깊이를 의미, 계층 구조에서 가장 상위레벨은 1
2) CONNECT_BY_ROOT : 계층 구조에서 가장 최상위 값을 표시
3) CONNECT_BY_ISLEAF : 계층 구조에서 가장 최하위 값을 표시
4) SYS_CONNECT_BY_PATH : 계층 구조의 전체 전개 경로 표시
5) NOCYCLE : 순환 구조가 발생지점 까지만 전개
6) CONNECT_BY_ISCYCLE : 순환 구조 발생 지점을 표시
· 계층형 조회
1) START WITH 조건 : 계층 전개의 시작 위치를 지정
2) PRIOR 자식 = 부모 : 부모에서 자식방향으로 검색을 수행, 순방향 전개
3) PRIOR 부모 = 자식 : 자식에서 부모방향으로 검색을 수행, 역방향 전개
4) NOCYCLE : 데이터 전개 시 조회된 데이터를 재조회하면 CYCLE 형성, 이 때 NOCYCLE은 사이클이 발생되지 않도록 함
5) Order siblings by 칼럼명 : 동일 레벨 형제노드 사이에서 정렬 수행
'📊DataBase > 📈SQL' 카테고리의 다른 글
[🪪SQLD] 2과목 - SQL 활용 : 정규표현식 (24년 개정 요약) (0) | 2024.02.22 |
---|---|
[🪪SQLD] 2과목 - SQL 활용 : PIVOT 절과 UNPIVOT 절 (24년 개정 요약) (0) | 2024.02.22 |
[🪪SQLD] 2과목 - SQL 활용 : 집합연산자/그룹함수/윈도우함 (24년 개정 요약) (0) | 2024.02.22 |
[🪪SQLD] 2과목 - SQL 기본 : 조인 / 표준조인 (24년 개정 요약) (0) | 2024.02.22 |
[🪪SQLD] 2과목 - SQL 기본 : 함수 (24년 개정 요약) (1) | 2024.02.22 |