1. DDL
- Create DB
- Drop DB
- Backup DB
- Create Table
- Drop Table
- Alter Table
2. 조인
(1) 개념
- 여러 테이블을 합해서 큰 테이블로 만드는 연산
- 테이블이 여러 개로 나눠진 상태에서 원하는 데이터를 찾으려면 테이블을 합쳐서 필요한 데이터 검색
- 조인은 테이블 단위 연산
- 레코드를 합치는 것이 아님
- 표준조인에서는 조인 과정에서 각 테이블 간의 공통 컬럼이 있어야 함
- 공통컬럼을 외래키라고 함
(2) 특징
- 2개 이상의 테이블을 합쳐 큰 테이블을 만드는 데, 이때 외래키와 Nested-loop Join 방식 사용 (기본)
- 널 값의 허용 여부에 따라 내부조인(Inner Join)과 외부조인(Outer Join)으로 나뉨
(3) Inner Join
- 드라이빙(기준) 테이블/ 드리븐(기준이 아닌 애) 테이블의 널값을 허용하지 않음
- A(Driving Table) Join B(Driven Table)
- 널값을 제외하고 출력됨
(4) Outer Join
- Left: 드라이빙테이블의 레코드가 누락되면 안 됨
- Right: 드리븐 테이블의 레코드가 누락되면 안 됨
- Full Join: 양쪽 모두 누락되면 안 됨 (MySQL 지원X)
- union: 중복제거/ union all: 중복허용
(5) 예시
직원TB(Driving TB) join 부서TB(Driven TB)
① Inner 조인: 직원 중 부서가 없는 직원, 직원이 없는 부서는 누락시킴
② Left 조인: 직원 중 부서가 없는 직원은 누락시키지 않음
③ Right 조인: 부서 중 직원이 없는 부서는 누락시키지 않음
④ Full 조인: 두 경우 모두 누락시키지 않음 (MySQL에서는 지원 x)
(6) 비표준조인
- Cartesian Product(cross join): 두 릴레이션을 그냥 곱해서 만들어진 조인의 형태
- Equi-Join(Theta Join): Cartesian Product를 통해 만들어진 릴레이션 중 실제 있는 것만 필터링한 조인
- Non-equi join: Equi-Join의 여집합
- Natural Join: 알아서 조인(컬럼을 지정하지 않음)
- Self Join: 동일한 테이블을 기준으로 조인/ 자기자신에게 Join (ex. 직원TB에 사수, 부사수 관계를 표시할 때 사용)
'Database' 카테고리의 다른 글
[Database] Insert into select, select into, View, DTL(Data Transactional Language) (0) | 2022.04.19 |
---|---|
[Database] DDL 제약조건, DCL(Data Control Language), DML (0) | 2022.04.19 |
[Database] DML(Data Manupulation Language) 1 (0) | 2022.04.19 |
[Database] RDBMS 연산, 키(슈퍼키, 후보키, 기본키, 대체키, 외래키), 식별관계와 비식별관계 (0) | 2022.03.17 |
[Database] RDBMS의 기본구조 (테이블, 외래키, 정규화) (0) | 2022.03.17 |
댓글