์ฝ์ง๋จ
๋ค์คํ ์๋ธ์ฟผ๋ฆฌ ๋ณธ๋ฌธ
๐ก ์คํ ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๋ค์คํ ์๋ธ์ฟผ๋ฆฌ
๋ค์คํ ์๋ธ์ฟผ๋ฆฌ๋ ์คํ ๊ฒฐ๊ณผ ํ์ด ์ฌ๋ฌ ๊ฐ๋ก ๋์ค๋ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
์ ์๊ฐ์ ๋ณธ ๋จ์ผํ ์๋ธ์ฟผ๋ฆฌ์ ๋ฌ๋ฆฌ ์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ์ฌ๋ฌ ๊ฐ์ด๋ฏ๋ก ๋จ์ผํ ์ฐ์จ์๋ ์ฌ์ฉํ ์ ์๊ณ ๋ค์คํ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด์ผ ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋น๊ตํ ์ ์๋ค.
โ

โ
ex) ๊ฐ๋ถ ์๋ณ ์ต๊ณ ๊ธ์ฌ์ ๋์ผํ ๊ธ์ฌ๋ฅผ ๋ฐ๋ ์ฌ์ ์ ๋ณด ์ถ๋ ฅ(IN์ฐ์ฐ์)
SELECT *
FROM EMP
WHERE SAL IN (SELECT MAX(SAL)
FROM EMP
GROUP BY DEPTNO);
โ
โ
โ
โ
tip) ANY ์ฐ์ฐ์,SOME ์ฐ์ฐ์๋ฅผ ๋ฑ๊ฐ ๋น๊ต ์ฐ์ฐ์(=) ์ ํจ๊ป ์ฌ์ฉํ๋ฉด IN ์ฐ์ฐ์์ ์ ํ์ด ๊ฐ์ ๊ธฐ๋ฅ์ํ
โ
ex) ๊ฐ๋ถ ์๋ณ ์ต๊ณ ๊ธ์ฌ์ ๋์ผํ ๊ธ์ฌ๋ฅผ ๋ฐ๋ ์ฌ์ ์ ๋ณด ์ถ๋ ฅ(ANY์ฐ์ฐ์)
SELECT *
FROM EMP
WHERE SAL = ANY (SELECT MAX(SAL)
FROM EMP
GROUP BY DEPTNO);
โ
โ
ex)30๋ฒ ๋ถ์ ์ฌ์๋ค์ ์ต๋ ๊ธ์ฌ๋ณด๋ค ์ ์ ๊ธ์ฌ๋ฅผ ๋ฐ๋ ์ฌ์ ์ ๋ณด ์ถ๋ ฅ
โ
SELECT *
FROM EMP
WHERE SAL < ANY (SELECT SAL
FROM EMP
WHERE DEPTNO=30) ORDER BY SAL, EMPNO;
โ
์์๊ฒฝ์ฐ ANY ์ฐ์ฐ์๋ฉด ์๋ธ์ฟผ๋ฆฌ ์ ๊ฐ์ค ํ๋๋ง TRUE๋ฉด ๋๋ค.
์ต๋๊ฐ 2850 ์์ผ๋ก 2850 ๋ณด๋ค ์์ ๊ฐ์ ๋ชจ๋ ์ถ๋ ฅํ๋ค.
โ
ex)30๋ฒ ๋ถ์ ์ฌ์๋ค์ ์ต์ ๊ธ์ฌ๋ณด๋ค ๋ง์ ๊ธ์ฌ๋ฅผ ๋ฐ๋ ์ฌ์ ์ ๋ณด์ถ๋ ฅ
โ
SELECT *
FROM EMP
WHERE SAL > ANY (SELECT SAL
FROM EMP
WHERE DEPTNO =30);
โ
์ฌ๋ฌ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ์ค ์ต์๊ฐ๋ณด๋ค๋ง ํฌ๋ฉด๋๋ค.
โ
ex ๋ถ์ ๋ฒํธ๊ฐ 30๋ฒ์ธ ์ฌ์๋ค์ ์ต์ ๊ธ์ฌ๋ณด๋ค ๋ ์ ์ ๊ธ์ฌ๋ฅผ ๋ฐ๋ ์ฌ์ ์ถ๋ ฅ(ALL ์ฌ์ฉ)
SELECT * FROM EMP WHERE SAL < ALL
(SELECT SAL FROM EMP WHERE DEPTNO = 30);
โ
โ
ALL์ ๋ชจ๋ ์กฐ๊ฑด์ ๋ง์กฑ์์ผ์ผํ๋ค.
์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ(950,1250,1500,1600,2850) ๋ณด๋ค ์์๊ฐ์ ๋ง์กฑ์์ผ์ผํ๋
์ต์๊ฐ์ธ 950 ๋ณด๋ค ์์ผ๋ฉด ์์ ๋ชจ๋ 5๊ฐ์์กฐ๊ฑด์ ๋ง์กฑ.
โ
EX) ์์๋น์ทํ ์์ ์์ (์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ๊ฐ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ) EXIST
โ
SELECT *
FROM EMP
WHERE EXISTS ( SELECT DNAME FROM DEPT WHERE DEPTNO = 10;
โ
๐ก๋ค์ค์ด ์๋ธ์ฟผ๋ฆฌ ์ฌ์ฉํด๋ณด๊ธฐ
๋ค์ค์ด ์๋ธ์ฟผ๋ฆฌ๋ ์๋ธ์ฟผ๋ฆฌ์ SELECT์ ์ ๋น๊ตํ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ๊ฐ ์ง์ ํ๋ ๋ฐฉ์.
โ
ex)
SELECT * FROM WHERE (DEPTNO,SAL) IN (SELECT DEPTNO, MAX(SAL)
FROM EMP GROUP BY DETPNO);
โ
๐กFROM์ ์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
์์์์ ์๋ธ์ฟผ๋ฆฌ๋ค์ WHERE์ ์์ ์กฐ๊ฑด์ ๋์์ผ๋ก ์ฌ์ฉํ๋ค. ํ์ง๋ง FROM์๋ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. FROM์ ์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ๋ ์ธ๋ผ์ธ ๋ทฐ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ธ๋ผ์ธ ๋ทฐ๋ ํน์ ํ ์ด๋ธ ์ ์ฒด ๋ฐ์ดํฐ๊ฐ ์๋ SELECT๋ฌธ์ ํตํด ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ์ถ์ถํด ์จํ ๋ณ์นญ์ ์ฃผ์ด ์ฌ์ฉํ๋ค.
โ
ex) SELECT E10.EMPNO, E10.ENAME , E10.DEPTNO , D.DNAME , D.LOC
FROM (SELECT * FROM EMP WHERE DEPTNO=10 ) E10,
(SELECT * FROM DEPT) D
WHERE E10.DEPTNO=D.DEPTNO;
โ
โ
๐กSELECT์ ์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
์๋ธ์ฟผ๋ฆฌ๋ SELECT์ ์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํํ ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ ๋ผ๊ณ ๋ถ๋ฅด๋ ์ด ์๋ธ์ฟผ๋ฆฌ๋ SELECT์ ์ ํ๋์ ์ด ์์ญ์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ ์ ์๋ค.
๋ค์ ์๋ฅผํตํด SELECT์ ์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ๋ณด์.
โ
TIP)SELECT์ ์ ๋ช ์ํ๋ ์๋ธ์ฟผ๋ฆฌ๋ ๋ฐ๋์ ํ๋์ ๊ฒฐ๊ณผ๋ง ๋ฐํํ๋๋ก ์์ฑํด์ค์ผ ํ๋ค.
โ
ex)
SELECT EMPNO,ENAME,SAL,
(SELECT GRADE FROM SALGRADE WHERE e.SAL BETWEEN LOSAL AND HISAL) as SALGRADE
FROM EMP e;
'Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2021.12.12 |
---|---|
ํธ๋์ญ์ (0) | 2021.12.12 |
์๋ธ์ฟผ๋ฆฌ,๋จ์ผํ ์๋ธ์ฟผ๋ฆฌ (0) | 2021.12.12 |
์๋ธ์ฟผ๋ฆฌ ON, WHERE ์ฐจ์ด์ (0) | 2021.12.12 |
์๋ธ์ฟผ๋ฆฌ ๋? (0) | 2021.12.12 |