Top N 쿼리
ROWNUM
현재 저장된 데이터를 그대로 두면서 각 행에 순차적인 번호 부여
테이블의 첫 행부터 차례로 순회하면서 값을 반환하기 때문에 중간을 건너뛰고 값을 가져올 수 없음
윈도우 함수의 순위 함수
RANK : 순위를 매기면서 같은 순위가 존재하면 존재하는 수만큼 다음 순서를 건너뛴 상위 N 순위까지 출력
DENSE_RANK : 순위를 매기면서 같은 순위가 존재해도 다음 순위를 건너뛰지 않고, 이어서 매긴 상위 N 순위까지 출력
ROW_NUMBER : 순위를 매기면서 동일한 값이라도 각기 다른 순위를 부여한 상위 N 순위까지 출력
계층형 질의
테이블에 계층 구조를 이루는 컬럼이 존재할 경우 계층형 질의를 이용해서 데이터를 출력할 수 있음
LEVEL : 전체 계층 구조에서 현재의 레벨 또는 깊이인 DEPTH 반환. 루트 노드가 1이 되며 한 레벨 내려갈 때마다 1씩 증가
SYS_CONNECT_BY_PATH (컬럼, 구분자) : 루트 노드로부터 현재 노드까지의 경로 출력. 해당 경로는 ‘/’로 구분
START WIHT : 경로가 시작되는 루트 노드를 생성해주는 절
CONNECT BY : 루트로부터 자식 노드를 생성해주는 절. 조건에 만족하는 데이터가 없을 때까지 노드 생성
CONNECT_BY_ROOT 컬럼 : 루트 노드의 주어진 컬럼값 반환. 루트 노드의 특정 컬럼값을 조회하고 싶을 때 사용
COONNCT_BY_ISLEAF : 현재 노드가 말단 노드(Leaf Node)이면 1을 그 외에는 0을 반환
PRIOR : 바로 상위의 부모 노드 반환. 부모-자식 관계에서 부모 값을 참조할 때 사용
- 순방향 전개 : CONNECT BY PRIOR 자식 = 부모
- 역방향 전개 : CONNECT BY PRIOR 부모 = 자식
NOCYCLE : 사이클 발생 이후의 데이터를 전개하지 않음으로써 무한 루프 방지
ORDER SIBLINGS BY : ORDER BY 절이 전체를 정렬하는 것과 달리, 같은 레벨의 형제(Sibling) 노드끼리 정렬. 형제 노드 간의 정렬 순서를 지정할 때 사용
PIVOT, UNPIVOT 절
PIVOT
행을 열로 바꿈. 지정된 컬럼의 각 행 속성값이 새로운 컬럼 헤더가 되고 이에 맞게 전체 속성값들 재배치
UNPIVOT
PIVOT과 반대로 열을 행으로 바꿈. 컬럼 헤더들이 한 컬럼의 각 행 속성값이 되고 이에 맞게 전체 속성값들 재배치
정규 표현식
메타 문자
문자 그 자신이 가진 의미가 아니라 다른 의미로 사용되는 문자
리터럴 문자
문자 그 자체가 가진 의미 그대로 사용되는 문자로, 정규 표현식에서 패턴 매칭을 수행할 때 처리되는 최소 단위
'SQL' 카테고리의 다른 글
관리 구문 DDL과 DCL (0) | 2025.03.11 |
---|---|
관리 구문 DML과 TCL (0) | 2025.03.10 |
SQL 활용 그룹 함수와 윈도우 함수 (0) | 2025.03.08 |
SQL 활용 서브쿼리와 집합 연산자 (0) | 2025.03.07 |
SQL 기본 SELECT 문 조건 절 (0) | 2025.03.06 |