ORACLE

#29 [ORACLE] ์„œ๋ธŒ์ฟผ๋ฆฌ

dP fla 2022. 11. 11. 17:45

๐Ÿ“Œ ์„œ๋ธŒ ์ฟผ๋ฆฌ

๐Ÿ’ก ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ ๋ฌธ์žฅ ๋‚ด์— ํฌํ•จ๋œ ๋˜ ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ ๋ฌธ์žฅ

๐Ÿ’ก ๋น„๊ต ์—ฐ์‚ฐ์ž์˜ ์˜ค๋ฅธ์ชฝ์— ๊ธฐ์ˆ ํ•ด์•ผ ํ•˜๊ณ  ๋ฐ˜๋“œ์‹œ ๊ด„ํ˜ธ ์•ˆ์— ๋„ฃ์–ด์•ผ ํ•จ

๐Ÿ’ก ๋ฉ”์ธ ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ด์ „์— ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋จ


๐Ÿ“Œ SELECT์ ˆ ์„œ๋ธŒ ์ฟผ๋ฆฌ

SELECT์ ˆ ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์„œ๋ธŒ ์ฟผ๋ฆฌ

: ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋‹จ์ผ ํ–‰์ด๋‚˜, SUM, COUNT ๋“ฑ์˜ ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ๊ฑฐ์นœ ๋‹จ์ผ ๊ฐ’์œผ๋กœ ๋ฆฌํ„ด๋˜์–ด์•ผ ํ•จ

์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ๋๋งˆ์นœ ๊ฐ’ ํ•˜๋‚˜๋ฅผ ๋ฉ”์ธ์ฟผ๋ฆฌ์—์„œ SELECT ํ•˜๊ธฐ ๋•Œ๋ฌธ

SELECT ํ•™์ƒ์ด๋ฆ„,
       (  SELECT ํ•™๊ณผ.ํ•™๊ณผ์ด๋ฆ„
            FROM ํ•™๊ณผ
           WHERE ํ•™๊ณผ.ํ•™๊ณผID = ํ•™์ƒ.ํ•™์ƒID ) AS ํ•™๊ณผ์ด๋ฆ„
  FROM ํ•™์ƒ
 WHERE ํ•™์ƒ์ด๋ฆ„ = 'ํ™๊ธธ๋™' ;

 

๐Ÿ“˜ NOTE
๐Ÿ’ก ๋‹จ์ผํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ
: ์„œ๋ธŒ์ฟผ๋ฆฌ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ์˜ค์ง ํ•˜๋‚˜์˜ ROW(ํ–‰)๋งŒ์„ ๋ฐ˜ํ™˜
ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง€๊ณ  ๋ฉ”์ธ ์ฟผ๋ฆฌ๋Š” ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰
๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ๋‹จ์ผํ–‰ ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ ( >, >=, <, <=, = ,...)

๐Ÿ“Œ FROM์ ˆ ์„œ๋ธŒ ์ฟผ๋ฆฌ

FROM ์ ˆ ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์„œ๋ธŒ ์ฟผ๋ฆฌ (์ธ๋ผ์ธ ๋ทฐ)

: ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ ๋ฆฌํ„ด๋˜์–ด์•ผ ํ•จ

์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ๋๋งˆ์นœ ํ…Œ์ด๋ธ” ํ•˜๋‚˜๋ฅผ ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ FROM์—์„œ ํ…Œ์ด๋ธ”๋กœ ์žก๊ธฐ ๋•Œ๋ฌธ

SELECT ํ•™์ƒ์ด๋ฆ„, ์ˆ˜ํ•™์ ์ˆ˜
  FROM ( SELECT ํ•™์ƒ.ํ•™์ƒ์ด๋ฆ„ AS ํ•™์ƒ์ด๋ฆ„,
                ๊ณผ๋ชฉ.๊ณผ๋ชฉ์ ์ˆ˜ AS ์ˆ˜ํ•™์ ์ˆ˜
           FROM ํ•™์ƒ, ๊ณผ๋ชฉ
          WHERE ํ•™์ƒ.ํ•™์ƒ์ด๋ฆ„ = ๊ณผ๋ชฉ.ํ•™์ƒ์ด๋ฆ„
            AND  ๊ณผ๋ชฉ.๊ณผ๋ชฉ์ด๋ฆ„ = '์ˆ˜ํ•™' ) ;

๐Ÿ“Œ WHERE์ ˆ ์„œ๋ธŒ ์ฟผ๋ฆฌ

์ค‘์ฒฉ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ WHERE์ ˆ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ

๊ฐ€์žฅ ์ž์ฃผ ์“ฐ์ด๋Š” ๋Œ€์ค‘์ ์ธ ์„œ๋ธŒ ์ฟผ๋ฆฌ, ๋‹จ์ผํ–‰๊ณผ ๋ณต์ˆ˜ํ–‰ ๋‘˜ ๋‹ค ๋ฆฌํ„ด ๊ฐ€๋Šฅ

์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ๋๋งˆ์นœ ๊ฐ’๋“ค์„ ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ์กฐ๊ฑด์ ˆ์„ ํ†ตํ•ด ๋น„๊ต ๋“ฑ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ

SELECT *
  FROM ํ•™์ƒ
 WHERE ํ•™์ƒ.ํ•™์ƒ์ด๋ฆ„ IN ( SELECT ๊ณผ๋ชฉ.ํ•™์ƒ์ด๋ฆ„ FROM ๊ณผ๋ชฉ WHERE ๊ณผ๋ชฉ.๊ณผ๋ชฉ์ด๋ฆ„ = '์ˆ˜ํ•™' ) ;

 

๐Ÿ“˜ NOTE
๐Ÿ’ก  ๋ณต์ˆ˜ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ
: ์„œ๋ธŒ ์ฟผ๋ฆฌ์˜ ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‘ ๊ฑด ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
๋น„๊ต ์—ฐ์‚ฐ์ž๋Š” ๋‹ค์ค‘ํ–‰ ๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉ (IN, ANY, SOME, ALL, EXITS,... )

- IN : ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ๋น„๊ต์กฐ๊ฑด์ด ์„œ๋ธŒ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ์ค‘์— ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋ฉด ์ฐธ
- ALL : ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ๋น„๊ต์กฐ๊ฑด์ด ์„œ๋ธŒ ์ฟผ๋ฆฌ์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์™€ ๋ชจ๋“  ๊ฐ’์ด ์ผ์น˜ํ•˜๋ฉด ์ฐธ 
- ANY : ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ๋น„๊ต์กฐ๊ฑด์ด ์„œ๋ธŒ ์ฟผ๋ฆฌ์˜ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ์™€ ํ•˜๋‚˜ ์ด์ƒ์ด ์ผ์น˜ํ•˜๋ฉด ์ฐธ
- EXITS : ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ๋น„๊ต์กฐ๊ฑด์ด ์„œ๋ธŒ ์ฟผ๋ฆฌ์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ค‘์— ํ•˜๋‚˜๋ผ๋„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’์ด ์กด์žฌํ•˜๋ฉด ์ฐธ

 

๋ฐ˜์‘ํ˜•