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 누구나 쉽게 배우는 데이터 분석 기초

김도연 지음 길벗

+ Recent posts