ERD(Entity Relationship Diagram)
- 개체(테이블)간의 관계를 이해하기 쉽게 그림으로 표현한 것
기본키(Primary key) : 테이블을 대표하며 각 행을 유일하게 식별하는 값 (UNIQUE + NOT NULL을 만족)
외래키(Foreign key) : 테이블 간에 서로 연결 관계를 정의하는 외래키
고유키(Unique key) : 중복된 값 허용하지 않음 유일한 값으로 존재(Null 허용 가능)
NOT NULL : null 값을 허용하지 않음, 값 입력 필수
CHECK : 범위나 조건을 설정하여 지정된 값만 허용
ERD 실선은 필수 관계 점선은 선택적 관계
======================================================================
조인
- 한 개 이상의 테이블과 테이블을 서로 연결하여 사용하는 기법
- 테이블이 한 개 인것 처럼 사용 가능
조인 종류
동등 조인
- 조인 조건이 정확히 일치하는 경우 결과를 출력한다.
- 기본키와 외래키의 관계를 이용하여 조인함
ex)
SELECT to_char(A.hire_date,'MM'), sum(B.MAX_SALARY)
FROM employees A, JOBS B
WHERE A.JOB_ID = B.JOB_ID
group by to_char(A.hire_date,'MM'); --oracle join
select to_char(e.hire_date,'MM'), sum(j.MAX_SALARY)
from EMPLOYEES e inner join jobs j
on (e.JOB_ID = j.job_ID)
group by to_char(e.hire_date,'MM'); --ANSI
외부 조인
- 조인 조건이 정확히 일치하지 않는 경우에 결과를 출력하다.
- 동등 조인을 만족하지 못해 누락되는 행을 출력하기위해 사용
- (+) 기호는 외부 조인하려는 한쪽에만 기술할 수 있음 테이블 양쪽에 기술하는건 불가능
ex)
select *
from EMPLOYEES e , DEPARTMENTS d
where (e.DEPARTMENT_ID (+)= d.DEPARTMENT_ID); --oracle
select *
from EMPLOYEES e full outer join DEPARTMENTS d --ANSI FULL OUTER JOIN
on (e.DEPARTMENT_ID = d.DEPARTMENT_ID);
자체 조인
- 자체 테이블에서 조인하고자 할 때 사용한다.
- 자기 자신의 테이블을 조인하는 것
집합 연산자
- 한번 만 쓰는게 아니고 여러번 사용 가능
- 열 개수와 데이터 타입이 일치해야 한다
UNION
- 합집합 , 중복된 행은 한 번만 출력
UNION ALL
- 합집합, 중복된 행도 그대로 출력
INTERSET
- 교집합 , 중복되는 행만 출력
MINUS
- 차집합 조회 결과에서 두 번째 조회 결과를 뺌
ex)
(select salary, LAST_NAME
from EMPLOYEES
UNION
select MANAGER_ID , DEPARTMENT_NAME
from DEPARTMENTS)
minus
select MIN_SALARY, JOB_ID
from jobs;
모두의 SQL 누구나 쉽게 배우는 데이터 분석 기초
김도연 지음 길벗
'데이터 베이스' 카테고리의 다른 글
| DML : 데이터의 삽입/갱신/삭제 (0) | 2021.05.14 |
|---|---|
| 서브쿼리 : SELECT 문 안에 있는 SELECT 문 (0) | 2021.05.14 |
| 함수 : 함수로 데이터를 쉽게 가공하기 (0) | 2021.05.13 |
| SELECT : 데이터 조회의 기본 (0) | 2021.05.12 |
| 관계형 데이터베이스와 SQL (0) | 2021.05.12 |