728x90
목차
2021.12.11 - [Programming/기초 지식] - SQL 트랜잭션(Transaction)
1. 조인
1.1. 조인의 개념
- 하나의 SQL 질의문에 의해서 여러 테이블에 저장된 데이터를 한번에 조회할 수 있는 기능
- 두 개 이상의 테이블을 '결합'한다는 의미
- 조인의 필요성
- 하나의 SQL 질의문이 하나의 테이블만 검색할 수 있다고 하면 너무나 불편하기 때문.
1.2. 간단한 조인
- SQL에서 간단한 조인 표기법
- FROM절 조인에 참여하는 테이블을 기록
- WHERE절에 조인 조건을 기술
- 조인문 작성시 유의사항
- 컬럼 이름의 모호성
- 컬럼 이름 앞에 테이블 이름을 접두사로 사용한다.
- 테이블 이름과 컬럼 이름은 점( . )으로 구분
- .테이블의 이름이 긴 경우 테이블 이름 대신 별명을 사용할 수 있다
- 하나의 SQL에서 테이블 이름과 별명을 혼용해서 쓸 수 없다.
- 컬럼 이름의 모호성
2. 다양한 조인 구문
2.1. 다양한 조인들
- 카티샨 프로덕트 (Cartesian Product)
- 두 테이블에 속한 튜블들의 모든 가능한 쌍을 생성
- FROM절에 두 개 이상의 테이블명을 기록
- WHERE절에는 조인조건을 기술하지 않는다
- 동등 조인
- 조인 조건이 "="인 경우
- 자연 조인
- 조인 조건을 명시하지 않고 조인한다고 할 때 두 테이블에 공통으로 나타나는 속성의 동등조인으로 생각
- MS-SQL에서는 자연 조건을 명시적으로 지원하지는 않는다.
- 쎄타 조인
- 조인 조건으로 <, >, <=, >=, != 등을 사용할 수 있다.
- 일반적인 조인 조건에 대하여 쎄타 조인이라고 한다.
- 셀프 조인
- 하나의 테이블 내에 있는 컬럼끼리 연관시켜 조인이 필요한 경우
- 조인 대상 테이블이 두 개 인데 동일한 테이블
- 물리적으로 1개이나 논리적으로 서로 다른 테이블이라고 생각하면 된다.
- 다중 조인
- 조인 질의의 경우 조인에 참여하는 테이블이 2개로 이를 보통 '2중 조인(2-way join)'이라고 한다
- 경우에 따라 여러 테이블 간의 조인이 필요한 경우도 있다.
- ANSI 조인
- SQL을 표준화할 때 만든 ANSI 표준 문법
- 기존 SQL과 차이점은 조인 조건을 WHERE로 표현하지 않고 FROM절에 표현한다
- 크로스 조인 : 카티샨 프로덕트의 다른 표현법
FROM 테이블명 CROSS JOIN 테이블명
- 내부 조인 : 일반적으로 조건의 ANSI 조인 표기법
FROM 테이블명 INNER JOIN 테이블명 ON 조인조건
FROM 테이블명 JOIN 테이블명 ON 조인조건
- 외부 조인
- 일반적인 조인은 조인 조건을 만족하는 튜플들만이 조인 결과에 나옴
- 조인 조건을 만족하지 않는 튜플들도 결과로 보고 싶을 경우
: 조인에 참여하는 테이블에 속한 모든 튜플 출력 - ANSI 조인 표기법 : 명시적 표기법
- LEFT OUTER JOIN : 왼쪽 테이블에 있는 튜플들은 다 나옴
- RIGHT OUTER JOIN : 오른쪽 테이블에 있는 튜플들은 다 나옴
- FULL OUTER JOIN : 양쪽 테이블에 있는 튜플들은 다 나옴
300x250