subquery

2023. 3. 3. 10:05ใ†DB

์„œ๋ธŒ์ฟผ๋ฆฌ : 

์ฟผ๋ฆฌ ์•ˆ์— ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์Œ

 

๊น€์‚ฌ๋ž‘ ์‚ฌ์›๊ณผ ๊ฐ™์€ ๊ธ‰์—ฌ๋ฅผ ๊ฐ–๋Š” ์‚ฌ์›์˜ ๋ชจ๋“  ์ •๋ณด ์กฐํšŒ๋ฅผ ํ•œ๋‹ค๋ฉด

SELECT SAL
FROM EMP
WHERE ENAME = '๊น€์‚ฌ๋ž‘';

SELECT *
FROM EMP
WHERE SAL = 300;

์œ„์™€ ๊ฐ™์ด 2๋ฒˆ์˜ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•จ.

๊ทธ๋Ÿฌ๋‚˜ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•œ๋ฒˆ์— ์ž‘์„ฑ ๊ฐ€๋Šฅ.

SELECT *
FROM EMP
WHERE SAL = (SELECT SAL
            FROM EMP
            WHERE ENAME = '๊น€์‚ฌ๋ž‘');

์„œ๋ธŒ ์ฟผ๋ฆฌ๋Š” ๋ฌด์กฐ๊ฑด ()์•ˆ์— ๊ฐ์‹ธ์ ธ์•ผ ํ•˜๊ณ , ํ•ด์„ํ•  ๋•Œ๋Š” ์•„๋ž˜ ์ฟผ๋ฆฌ๋ถ€ํ„ฐ ํ•ด์„

--๊ฐ•ํ˜œ์ • ์‚ฌ์›๊ณผ ๊ฐ™์€ ๋ถ€์„œ์—์„œ ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ์›๋“ค์˜ ๋ชจ๋“  ์ •๋ณด ์กฐํšŒ

SELECT *
FROM EMP
WHERE DEPTNO = (SELECT DEPTNO
                FROM EMP
                WHERE ENAME = '๊ฐ•ํ˜œ์ •');

--๋ชจ๋“  ์‚ฌ์›์˜ ๊ธ‰์—ฌ์˜ ํ‰๊ท ๋ณด๋‹ค ๊ธ‰์—ฌ๋ฅผ ๋” ๋งŽ์ด ๋ฐ›๋Š” ์‚ฌ์›๋“ค์˜ ๋ชจ๋“  ์ •๋ณด ์กฐํšŒ
SELECT *
FROM EMP
WHERE SAL > (SELECT AVG(SAL)
            FROM EMP);

--๋ถ€์„œ๋ฒˆํ˜ธ๊ฐ€ 20๋ฒˆ์ธ ๋ถ€์„œ์— ์†ํ•œ ์‚ฌ์› ์ค‘
--๊ธ‰์—ฌ๊ฐ€ ์ „์ฒด ์‚ฌ์›์˜ ๊ธ‰์—ฌ๋ณด๋‹ค ๋†’์€ ์‚ฌ์›๋“ค์˜
--์‚ฌ๋ฒˆ, ์ด๋ฆ„, ๋ถ€์„œ๋ฒˆํ˜ธ, ๋ถ€์„œ๋ช…, ๊ธ‰์—ฌ๋ฅผ ์กฐํšŒ
--์ด๋•Œ, ์กฐํšŒ๋œ ๋ฐ์ดํ„ฐ๋Š” ์ง๊ธ‰ ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ ํ›„ ๊ฐ™์€ ์ง๊ธ‰์ผ ๋•Œ๋Š” ๊ธ‰์—ฌ ๊ธฐ์ค€ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ
--๋ชจ๋“  ์‚ฌ์›์˜ ์‚ฌ๋ฒˆ, ์‚ฌ์›๋ช…, ๋ถ€์„œ๋ฒˆํ˜ธ, ๋ถ€์„œ๋ช…์„ ์กฐํšŒ. ์กฐ์ธ ์‚ฌ์šฉx

SELECT EMPNO
    , ENAME
    , DEPTNO
    , (SELECT DNAME
        FROM DEPT
        WHERE DEPTNO = EMP.DEPTNO) AS ๋ถ€์„œ๋ช…
FROM EMP;

--์ธ์ฒœ์— ์œ„์น˜ํ•œ ๋ถ€์„œ์— ์†ํ•œ ์‚ฌ์›๋“ค์˜ ๊ธ‰์—ฌ๋ฅผ ํ˜„์žฌ ๊ธ‰์—ฌ์—์„œ 100 ์ธ์ƒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑ
UPDATE EMP 
SET SAL = SAL + 100
WHERE DEPTNO = (SELECT DEPTNO 
                FROM DEPT 
                WHERE LOC = '์ธ์ฒœ');

'DB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์›”๋ณ„ ๋ฐ์ดํ„ฐ ๋ฝ‘๋Š” ์ฟผ๋ฆฌ๋ฌธ  (0) 2023.04.15
SELECT ๊ทธ๋ฃน ํ•จ์ˆ˜  (0) 2023.04.13
โ˜…select-join2  (1) 2023.03.02
โ˜…select-join  (0) 2023.02.27
๋งŽ์ด ์“ฐ๋Š” ํ•จ์ˆ˜  (0) 2023.02.23