SQL_Sub Query

zooyeongยท2023๋…„ 4์›” 20์ผ
0

12์ฃผ์ฐจ

๋ชฉ๋ก ๋ณด๊ธฐ
3/6
post-thumbnail

๐Ÿ“ŒSub Query๋ž€?

SELECT ์ปฌ๋Ÿผ๋ช…
FROM ํ…Œ์ด๋ธ”๋ช…(or ๋ทฐ)
WHERE ์กฐ๊ฑด์—ฐ์‚ฐ์ž (SELECT ์ปฌ๋Ÿผ๋ช…
				FROM ํ…Œ์ด๋ธ”๋ช…
                WHERE ์กฐ๊ฑด);

์„œ๋ธŒ์ฟผ๋ฆฌ๋ž€ ํ•˜๋‚˜์˜ SQL๋ฌธ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ SQL๋ฌธ์„ ๋งํ•œ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ ๋ถ€๋ถ„์€ WHERE ์ ˆ์˜ ์—ฐ์‚ฐ์ž ์˜ค๋ฅธ์ชฝ์— ์œ„์น˜ํ•ด์•ผ ํ•˜๋ฉฐ ๋ฐ˜๋“œ์‹œ ๊ด„ํ˜ธ๋กœ ๋ฌถ์—ฌ์•ผ ํ•œ๋‹ค. ๋‹จ์ผํ–‰ Sub Query์™€ ๋‹ค์ค‘ํ–‰ Sub Query์— ๋”ฐ๋ผ ์—ฐ์‚ฐ์ž๋ฅผ ์ž˜ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค.

โ–ผ๋‹จ์ผํ–‰ Sub Query

-> student ํ…Œ์ด๋ธ”์—์„œ Anthony Hopkins์™€ ์ „๊ณต์ด ๊ฐ™์€ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„, ํ•™๊ณผ, ํ•™๊ณผ๋ช…์„ ์ถœ๋ ฅํ•˜๊ธฐ


โ–ผ๋‹ค์ค‘ํ–‰ Sub Query / IN

๋ฌธ์ œ) Emp2 ํ…Œ์ด๋ธ”๊ณผ Dept2 ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜์—ฌ ๊ทผ๋ฌด์ง€์—ญ(dept2 ํ…Œ์ด๋ธ”์˜ area ์ปฌ๋Ÿผ)์ด 'Pohang Main Office' ์ธ ๋ชจ๋“  ์‚ฌ์›๋“ค์˜ ์‚ฌ๋ฒˆ๊ณผ ์ด๋ฆ„, ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ.

์˜ค๋ฅ˜ ๋ฐœ์ƒ!
ORA-01427:๋‹จ์ผ ํ–‰ ํ•˜์œ„ ์งˆ์˜์— 2๊ฐœ ์ด์ƒ์˜ ํ–‰์ด ๋ฆฌํ„ด๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ORA-01427์€ ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ 1๊ฑด์„ ์ดˆ๊ณผํ•œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ฌ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์ด๋‹ค.

area ์ปฌ๋Ÿผ์— 'Pohang Main Office'์ธ ๊ฒƒ์€ 4๊ฑด์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด๋Ÿด ๋•Œ ์ฟผ๋ฆฌ์˜ '=' ์—ฐ์‚ฐ์ž๋ฅผ 'IN'์ ˆ๋กœ ์ˆ˜์ •ํ•˜๋ฉด ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ ์ถ”์ถœ๋œ๋‹ค.


โ–ผ๋‹ค์ค‘ํ–‰ Sub Query / EXISTS

์œ„์˜ ์ฟผ๋ฆฌ๋ฅผ EXISTS๋กœ ์ˆ˜์ •ํ•ด๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

IN๊ณผ EXISTS์˜ ์ฐจ์ด๋ฅผ ์‚ดํŽด๋ณด์ž๋ฉด,

IN์€ ์‹ค์ œ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ๋ชจ๋“  ๊ฐ’๊นŒ์ง€ ํ™•์ธํ•˜์ง€๋งŒ, EXISTS๋Š” ํ–‰์ด ์กด์žฌํ•˜๋Š”์ง€๋งŒ ์ฒดํฌํ•˜๊ณ  ๋” ์ด์ƒ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.


โ–ผ๋‹ค์ค‘ํ–‰ Sub Query / ANY

๋น„๊ต ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ํ•œ ๊ฐœ๋ผ๋„ ๋งŒ์กฑํ•˜๋ฉด true์ด๋‹ค.


โ–ผ๋‹ค์ค‘ํ–‰ Sub Query / ALL

์ „์ฒด ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผ true์ด๋‹ค.


โ–ผScalar Sub Query
์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” SELECT์ ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋‹ค. scalar๋Š” 'ํ•œ ๋ฒˆ์— ํ•œ๊ฐ€์ง€๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š”'์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ฆ‰, Scalar Sub Query์— ์˜ํ•ด ๋‚˜์˜ค๋Š” ๊ฒฐ๊ณผ๋Š” ํ•˜๋‚˜์˜ ํ–‰์ด์–ด์•ผ ํ•œ๋‹ค.

์ด๋Š” ์ด์ „์— ํ•™์Šตํ–ˆ๋˜ JOIN์œผ๋กœ๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

profile
Have a good day โŒฏโ€™โ–พโ€™โŒฏ

0๊ฐœ์˜ ๋Œ“๊ธ€