SQL 기본에서 익힌 것을 복습하고 기본에서 익힌 것을 활용하여 더 복합적인 것을 배운다.
집합 연산자 : 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회할 때 사용
Select 절의 컬럼 수가 동일 하고 Select 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환될 때 사용 가능
일반 집합 연산자 :
1. UNION : 합집합 ( 중복 행 1개로 정렬)
2. UNION ALL : 합집합 ( 중복 행도 표시 ) 정렬 x
3. INTERSECT : 교집합 (중복 행 1개로)
4. MINUS : 차집합( 중복 행 1개로 )
5. CROSS JOIN: 곱집합 (PRODUCT)
ALIAS는 처음 테이블, 정렬은 마지막 테이블 기준
순수 집합 연산자 : 관계형 DB를 새롭게 구현
1. Select = > WHERE절로 구현 ( 현재 SQL 기능상)
2. Project= > SELECT 절로 구현 ( 속성 LIST의 Attribute 만 추출)
3. Natrual Join => 다양한 조인으로 구현(inner, outer, natural, Using 조건 절, On 조건절, Cross 조건절 등등)
4. Divide -> 현재는 사용 안한다.
*Self Join : 한 테이블 내의 2개 칼럼이 연관관계
다양한 조인의 특징
1. Inner Join : 조인 조건에서 동일한 값이 있는 행만 반환, Using이나 On 절을 필수적으로 사용
2. Outer Join(Left, Right, Full) : 조인 조건에서 동일한 값이 없는 행도 반환 가능하다. Using이나 On 조건절은 반드시 사용해야 한다.
2-1. Left Outer : 먼저 표기된 좌측 테이블에 해당하는 데이터 먼저 읽은 후, 나중 표기된 우측 테이블에 해당하는 데이터에서 JOIN 대상 데이터를 읽어온다. 우측 데이터에서 값이 없는 경우 Null 값으로 채운다.
2-2. Right Outer : Letf와 반대
2-3. Full Outer : 좌 우측 테이블의 모든 데이터를 읽어 Join 하여 결과를 생성한다. 중복 데이터는 삭제한다.
3. Natural Join 두 테이블 간의 동일한 이름을 갖고 있는 모든 칼럼들에 대해 EQUI JOIN을 수행, Natural Join이 명시되면 추가로 Using , On, Where 절에서 Join 조건을 정의할 수 없다. SQL Server는 지원 x
4. Using 조건절 (ALIAS, 테이블 명 사용 불가)
: 같은 이름을 가진 칼럼들 중에서 원하는 칼럼에 대해서만 선택적으로 EQUI JOIN을 할 수 있다. JOIN칼럼에 대해서
ALIAS나 테이블 이름과 같은 접두사는 사용불가.
5. ON 조건절:
On 조건절과 where 조건절을 분리하여 이해가 쉬우며 , 칼럼명이 다르더라도 Join 조건을 사용할 수 있는 장점이 있다.
ALIAS나 테이블명 반드시 사용.
6. Cross Join : 카티시안 곱
양쪽 집합의 M*N건의 데이터 조합이 발생한다.
'SQL' 카테고리의 다른 글
SQLD 시험 대비 - SQL 활용편(3) (0) | 2023.03.08 |
---|---|
SQLD 시험 대비 - SQL 활용편(2) (0) | 2023.03.07 |
SQLD 시험 대비 - SQL 기본 (3) (0) | 2023.03.06 |
SQLD 시험 대비 - SQL 기본 (2) (0) | 2023.03.05 |
SQLD 시험 대비 - SQL 기본 (1) (0) | 2023.03.05 |