두개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법 중 하나로, 2개 이상의 질의 결과를 하나의 결과로 만들어줌
집합 연산자 | 의미 |
---|---|
UNION | 합집합, 중복된 행 하나로 표시 |
UNION ALL | - 합집합, 중복된 행 그대로 표시 - 중복 없을 시 UNION과 결과가 동일 |
INTERSECT | 교집합, 중복된 행 하나로 표시 |
EXCEPT | 앞의 SQL 결과에서 뒤의 결과를 뺀 차집합, 중복 행 하나로 표시 ( Oracle에서는 MINUS 사용 ) |
테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해 사용
SELECT ...
FROM 테이블
WHERE condition AND condition...
START WITH condition
CONNECT BY [NOCYCLE] condition AND condition...
[ORDER SIBILINGS BY colum, column...]
가상칼럼 | 의미 |
---|---|
LEVEL | 검색 항목의 깊이, 최상위 계층의 레벨은 1 |
CONNECT_BY_ISLEAF | 리프데이터면 1, 그렇지 않으면 0 |
CONNECT_BY_ISCYCLE | 부모 노드와 자식 노드가 같을 때 1. 아니면 0 |
함수 | 의미 |
---|---|
CONNECT_BY_ROOT | 전개할 데이터의 루트 데이터 표시 |
SYS_CONNECT_BY_PATH | 현재 전개할 데이터의 루트 데이터 표시 |
한 테이블 내에서 두 칼럼이 연관 관계가 있는 경우. 동일 테이블 사이의 조인으로 FROM 절에 동일 테이블이 2번 이상 나타남. 반드시 테이블 별칭을 사용해야 함
SELECT ALIAS명1.칼럼명, ALIAS명2.칼럼명, ...
FROM 테이블1 ALIAS명1, 테이블2 ALIAS명2
WHERE ALIAS명1.칼럼명2 = ALIAS명2.칼럼명1;