JOIN
여러 테이블의 공통컬럼이 있다면
그 테이블들을 연결하여 조회하는 것을 말한다
LEFT 조인 , RIGHT 조인 , INNER 조인 등등이 있다.
여기선 가장 일반적인 조인들만 볼것이다.
특징
1) 여러개의 테이블의 공통컬럼을 이용하여 연결이 가능( 권장 : 5개 이내 )
2) 공통컬럼의 데이터형식이 같아야 함
< 1 >
일반 JOIN
이퀄조인 (=) 의 특징
두 테이블에 공통컬럼에 NULL값이 있으면 NULL 값을 제외하여 연결됨
사용법
SELECT A.컬럼명 , B.컬럼명
FROM TalbeA A, TableB B
WHERE A.공통컬럼 = B.공통컬럼
< 2 >
아우터 조인
이퀄조인 (=) 의 특징
두 테이블에 공통컬럼에 NULL값이 있으면 NULL 값을 제외하여 연결됨
다만, 아우터 조인(OUTER JOIN) 은 NULL 값을 포함하여 연결됨
용도
NULL을 포함한 데이터도 화면에 표시하고 싶을 때 사용
사용법
(=) 이퀄 조인을 하되 NULL 값이 있는 쪽에 (+) 를 붙이면 NULL 값도 같이 나옴
왼쪽(+) : RIGHT OUTER JOIN / 오른쪽(+) : LEFT OUTER JOIN
(분명 또 있었던거 같은데... 기억이 안난다 ㅋㅋㅋㅋㅋ)
LEFT OUTER JOIN
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A , TableB B
WHERE A.공통컬럼 = B.공통컬럼 (+)
RIGHT OUTER JOIN
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A , TableB B
WHERE A.공통컬럼 (+) = B.공통컬럼
< 3 >
SQL-99 표준 표기법
전세계 SQL(질의어) 표준 : ANSI SQL(표준 기구)
특징
오라클 / MySQL 등에서 지원 가능
사용법
( 조인문 , 조건문은 따라다니며 여러번 반복 사용이 가능하다 [테이블을 여러개 조인할때] )
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A
JOIN TableB B <ㅡ 조인문
ON (A.공통컬럼 = B.공통컬럼) <ㅡ ON : 조건문
이 녀석은 LEFT RIGHT INNER 조인부터 시작해 OUTER 조인 까지
표현이 전체적으로 가능한데
많기도 하고..
이미지를 올려도 되는 이미지인지도 모르겠고.. ㅎ
그냥 타이핑이나 하자
INNER JOIN
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A
INNER JOIN TableB B
ON (공통컬럼 조건)
LEFT JOIN
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A
LEFT JOIN TableB B
ON (공통컬럼 조건)
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A
LEFT JOIN TableB B
ON (공통컬럼 조건)
WHERE B.컬럼 IS NULL
RIGHT JOIN
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A
RIGHT JOIN TableB B
ON (공통컬럼 조건)
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A
RIGHT JOIN TableB B
ON (공통컬럼 조건)
WHERE A.컬럼 IS NULL
FULL OUTER JOIN
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A
FULL OUTER JOIN TableB B
ON (공통컬럼 조건)
SELECT A.컬럼명 , B.컬럼명 ...
FROM TableA A
FULL OUTER JOIN TableB B
ON (공통컬럼 조건)
WHERE A.컬럼 IS NULL
OR B.칼럼 IS NULL
WHERE 절은 자기가 하기 나름인것 같고...
SQL JOINS 라고 치면 여러 이미지들을 보면서 하면
이해하기 좋다
'데이터베이스 > ORACLE_DB' 카테고리의 다른 글
Oracle_SQL - 테이블 생성 , 수정 , 삭제 (DDL) (0) | 2023.09.13 |
---|---|
Oracle_SQL - SubQuery (서브쿼리) (0) | 2023.09.12 |
Oracle_SQL - GROUP BY (그룹함수) (0) | 2023.09.11 |
Oracle_SQL - 자료형 변환 함수 (0) | 2023.09.08 |
Oracle_SQL - 내장함수(숫자/날짜) 몇가지 (0) | 2023.09.08 |