โ select-join
EMP ํ ์ด๋ธ์์ ์ฌ์์ ๋ถ์๋ช ์ด ๋ฌด์์ธ์ง ์ ์ ์์๊น?
SELECT * FROM EMP;
SELECT * FROM DEPT;
EMP๋ฅผ ์กฐํํด์๋ ์ฌ์๋ค์ ๋ถ์๋ฒํธ๋ ์กฐํ ๊ฐ๋ฅํ์ง๋ง ๋ถ์๋ช ์ด ๋ฌด์์ธ์ง ์ ์ ์์.
๋ถ์๋ช ์ DEPT์ ์ ๋ณด๊ฐ ์๊ธฐ ๋๋ฌธ์ 2๋ฒ ์กฐํํด์ผ ํจ.
์กฐ์ธ ํ์ต์ ์ํ ์ฌ์ ์ง์
SELECT EMP.EMPNO, EMP.ENAME, EMP.SAL
FROM EMP;
์ ์ฟผ๋ฆฌ ๊ฐ๋ฅ! ์ปฌ๋ผ๋ช ์์๋ ํ ์ด๋ธ๋ช ์ด ์จ์ด์ ธ ์์ด์ ํํํด๋ ์ฟผ๋ฆฌ ์คํ ๋จ.
ํ ์ด๋ธ๋ช ์ ๋ณ์นญ๋ ์ค ์ ์๋ค! AS๋ ์๋ตํจ
SELECT E.EMPNO, E.ENAME, E.SAL
FROM EMP E;
์ฌ์๋ค์ ์ฌ๋ฒ, ์ฌ์๋ช , ๋ถ์๋ฒํธ, ๋ถ์๋ช , ๋ถ์์ง์ญ ์กฐํํด๋ณด์
SELECT EMPNO
, ENAME
, DEPTNO
, ENAME
, LOC
FROM EMP, DEPT;
์ ์ฟผ๋ฆฌ ์ค๋ฅ > DEPTNO๋ EMP, DEPT์ ๋ ๋ค ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ํ ์ด๋ธ์ ์ปฌ๋ผ์ ์๋ฏธํ๋์ง ๋ชจ๋ฆ
JOIN :
์ฌ๋ฌ ํ ์ด๋ธ์ ์ ๋ณด๋ฅผ ํ๋ฒ์ ์กฐํ
JOIN์ ์ด์ฉํ๋ฉด SELECT๋ฌธ์ 1๋ฒ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ง ํ ์ด๋ธ ๋์ ์กฐํ ๊ฐ๋ฅ.
๋ ํ ์ด๋ธ์ด ๊ณตํต์ ์ผ๋ก ์ง๋๊ณ ์๋ ์ปฌ๋ผ ํ์ธ ํ ๊ทธ ๋์์ ์ง๋ ์ปฌ๋ผ์ด ๊ฐ์ ๊ฐ์ธ์ง๋ฅผ ์กฐํํ๋ฉด JOIN์ด ๋๋ค.
JOIN์ ํต์์ ์ผ๋ก ์ธ๋ํค๋ก ๊ฑด๋ค.
์ธ๋ํค๋ ๋ ํ ์ด๋ธ์ด ๊ณตํต์ ์ด ๋ค ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ
SELECT EMPNO
, ENAME
, EMP.DEPTNO
, DNAME
, LOC
FROM EMP, DEPT
WHERE EMP.DEPTNO = DEPT.DEPTNO
ORDER BY ENAME;
์ฐ์ต๋ฌธ์ 1,2
--1. 20๋ฒ ๋ถ์๋ฅผ ์ ์ธํ ์ฌ์๋ค์ ์ฌ์, ๋ถ์๋ฒํธ, ๋ถ์๋ช
, ์ง์ญ์ ์กฐํ
SELECT JOB
, D.DEPTNO
, DNAME
, LOC
FROM EMP E, DEPT D
WHERE D.DEPTNO != 20
AND E.DEPTNO = D.DEPTNO;
--2.์ด๋ฌธ์ธ ์ฌ์์ด ์ํ ๋ถ์์ ๋ถ์๋ช
์ ์กฐํ
SELECT DNAME
FROM DEPT D, EMP E
WHERE ENAME = '์ด๋ฌธ์ธ'
AND D.DEPTNO = E.DEPTNO;
์ฐ์ต๋ฌธ์ 3
--๊ฒ์๊ธ ์ ๋ชฉ์ 'java'๋ผ๋ ๊ธ์๊ฐ ํฌํจ๋ ๊ฒ์๊ธ์ ๊ธ๋ฒํธ, ์ ๋ชฉ, ์์ฑ์ id, ์์ฑ์ผ, ์์ฑ์๋ช
์ ์กฐํ
SELECT BOARD_NUM
, TITLE
, M.MEM_ID
, CREATE_DATE
, MEM_NAME
FROM BOARD_MEMBER M, BOARD B
WHERE TITLE LIKE '%java%'
AND M.MEM_ID = B.WRITER;
์ฐ์ต๋ฌธ์ 4
--๊ธ๋ฒํธ๊ฐ 3๋ฒ์ธ ๊ฒ์๊ธ์ ๋ฌ๋ฆฐ ๋๊ธ์ ๋ด์ฉ, ๋๊ธ ์์ฑ์, ๋๊ธ์ด ๋ฌ๋ฆฐ ๊ฒ์๊ธ์ ์ ๋ชฉ์ ์กฐํ
SELECT P.CONTENT --๋ด์ฉ์ B,P ํ
์ด๋ธ์ ๋ค ์์ ๋๊ธ์ ๋ด์ฉ์ ์กฐํํ๊ธฐ ๋๋ฌธ์ P ๋ถ์ด์ผ ๋จ.
, P.WRITER
, TITLE
FROM BOARD B, BOARD_REPLY P
WHERE B.BOARD_NUM = 3 --๊ธ๋ฒํธ๋ ์ด๋ค ํ
์ด๋ธ์ ๊ธ๋ฒํธ์ธ์ง ์ง์
AND B.BOARD_NUM = P.BOARD_NUM;
์ฐ์ต๋ฌธ์ 5
--EMP ํ
์ด๋ธ์ MGR ์ปฌ๋ผ์ ํด๋น ์ฌ์์ ์ง์์๊ด ์ฌ๋ฒ์ด๋ค.
--์ด๋ฅผ ์ฐธ๊ณ ํด์ ์ฌ์๋ฒํธ, ์ฌ์๋ช
, ์ง์์๊ด ์ฌ๋ฒ, ์ง์์๊ด๋ช
์ ์กฐํํ๋ ์ฟผ๋ฆฌ๋ฌธ
SELECT E1.EMPNO
, E1.ENAME
, E1.MGR ์ง์์๊ด์ฌ๋ฒ
, E2.ENAME
FROM EMP E1, EMP E2
WHERE E1.MGR = E2.EMPNO;
--JOIN ์ฌ์ฉ / ๊ฐ์ ํ
์ด๋ธ ๋๋ฒ ์กฐํํ๋ ๋ฐฉ๋ฒ ์ฌ์ฉํด์ผ ํจ.