본문 바로가기

SQL

SQLD 시험 대비 - SQL 활용편(1)

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