0. JOIN
관계형 데이터베이스에서 두 개 이상의 테이블을 연결하고 관련된 데이터를 결합하는 데 사용되는 연산
1. INNER JOIN
두 개 이상의 테이블을 연결하고, 두 테이블 간에 일치하는 행만 반환
2. OUTER JOIN
INNER JOIN의 반대 연산으로
두 개 이상의 테이블을 연결하고 일치하지 않는 행도 포함하여 결과를 반환하는 연산
2-1. LEFT OUTER JOIN
왼쪽 테이블의 모든 행을 유지하고 오른쪽 테이블에서 일치하는 행이 있는 경우에만 오른쪽 테이블의 해당 행을 가져옴
일치하지 않는 경우에는 NULL 값으로 채움
2-2. RIGHT OUTER JOIN
LEFT OUTER JOIN의 반대개념.
오른쪽 테이블의 모든 행을 유지하고 왼쪽 테이블에서 일치하는 행이 있는 경우에만 해당 행을 가져옴
일치하지 않는 경우에는 NULL 값으로 채움
2-3. FULL OUTER JOIN
두 테이블 간의 모든 행을 유지하고 일치하는 행을 연결. 일치하지 않는 경우에는 NULL 값으로 채
3. CROSS JOIN
조인할 두 테이블에서 연결할 같은 속성이 없을 때 , 두 개 이상의 테이블을 모든 가능한 조합으로 결합
결과는 두 테이블의 크기에 따라 지수적으로 증가
( a테이블의 인스턴스 개수 n, b테이블의 인스턴스 개수가 m일 때
cross join 결과값으로 나오는 인스턴스의 개수는 n*m 개로, 이를 카티션 곱 또는 카테시안 곱 이라고도 표현함)
4. SELF JOIN
하나의 테이블 내에서 자체를 연결하는 연산
ex) 직원 테이블의 컬럼은 (직원번호, 이름, 부서, 상사번호, 입사일 ) 등으로 구성되어 있고,
어떤 직원의 직속상사를 조회하고 싶다면 직원테이블을 두 번 join하여 구할 수 있다 (자기자신을 self-join)
'자격증고나리 > ⚽ SQLD 슈웃' 카테고리의 다른 글
[SQL] 상위 n개를 선택하는 윈도우 함수 (LIMIT,TOP,ROWNUM, FETCH FRIST) (0) | 2023.09.07 |
---|---|
[SQL] NOT EXISTS (0) | 2023.09.06 |
데이터베이스의 함수 (0) | 2023.09.05 |
무결성과 제약조건 (0) | 2023.09.04 |
절차적/비절차적 DML의 차이 (1) | 2023.09.04 |