테이블과 테이블을 연결해서 사용하는 기법
= 으로 묶는거
조건값이 정확이 일치할때만 행을 가져옴
AND를 이용해서 여러조건을 부여할수도 있다
첫 조인조건의 결과테이블과 2번째 조건을 비교 -> 결과값
조건에 부합하지않는 데이터도 모두 출력
(+)사용
없어도 결과를 표시하고싶은 (null값을 출력할)테이블에 표시
양쪽에는 사용불가
LEFT OUTER JOIN, RIGHT OUTER JOIN키워드로도 표현가능하다.
== RIGHT OUTER JOIN 예시
SELECT *
FROM employees A, departments B
where A.department_id (+) = B.department_id
동일
SELECT *
FROM employees A RIGHT OUTER JOIN departments B
ON(A.department_id = B.department_id )
== LEFT OUTER JOIN 예시
SELECT *
FROM employees A, departments B
where A.department_id = B.department_id (+)
동일
SELECT *
FROM employees A LEFT OUTER JOIN departments B
ON(A.department_id = B.department_id )
자기자신을 조인하는거기때문에 무조건 별칭으로 구분해줘야됨
이건 사실 잘안쓰는거 같다...
종류 | 설명 | 집합종류 |
---|---|---|
UNION | 조회결과의 합집합, 중복되는 행은 한번만 | 합집합 |
UNION ALL | 조회결과의 합집합, 중복도 그대로 출력 | 합집합 |
INTERSECT | 조회결과의 교집합, 중복만 출력 | 교집합 |
MINUS | 첫번째결과에서 두번째를 뺀다 | 차집합 |
SELECT 문 2개로 수행
SELECT ~
UNION, UNION ALL, INTERSECT, MINUS
SELECT ~
연산은 위에서 아래로 수행
MINUS는 첫번째 SELECT문에서 교집합을 뺀것과 결과가 같다.