Day 20

์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” SELECT์— ์˜ํ•œ ๋ฐ์ดํ„ฐ ์งˆ์˜์ธ๋ฐ, ์ƒ๋ถ€๊ฐ€ ์•„๋‹Œ ํ•˜๋ถ€์˜ ๋ถ€์ˆ˜์ ์ธ ์งˆ์˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” SQL ๋ช…๋ น๋ฌธ ์•ˆ์— ์ง€์ •ํ•˜๋Š” ํ•˜๋ถ€ SELECT๋ช…๋ น์œผ๋กœ ๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด ์ง€์ •ํ•œ๋‹ค ์ƒ๊น€์ƒˆ๋Š” select์ ˆ๊ณผ ๊ฐ™์œผ๋ฉฐ ์‚ฌ์šฉ์ฒ˜๋Š” SELECT, FROM, WHERE ๋“ฑ select ๋ช…๋ น์˜ ๊ฐ ๊ตฌ๋ฅผ ๊ธฐ์ˆ ํ•  ์ˆ˜ ์žˆ๋‹ค ๋งŽ์€ ์‚ฌ์šฉ์ฒ˜๋Š” SQL๋ช…๋ น์˜ where์ ˆ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค where ๊ตฌ๋Š” select, delete, update ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์—ฌ๊ธฐ ๋ชจ๋‘์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

DELETE์˜ WHERE ์ ˆ์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ

๊ฐ„๋‹จํ•˜๊ฒŒ sample54 ํ…Œ์ด๋ธ”์—์„œ a ์—ด์˜ ๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ํ–‰์„ ์‚ญ์ œํ•ด๋ณด์ž ๊ทธ๋Ÿผ a์˜ ๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์„ ์ฐพ์•„์•ผํ•˜๋Š”๋ฐ ๊ทธ ๋ฐฉ๋ฒ•์€ MINํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ

select min(a) from sample54;

์ด๋ ‡๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ  ๊ทธ๋ ‡๊ฒŒ ๊ฐ€์žฅ ์ž‘์€ ํ–‰์„ ์ฐพ๊ณ  ๋‚œ ๋‹ค์Œ์— ์‚ญ์ œ๋ฅผ ํ•ด์ค„ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š”๋ฐ ์ด๋Ÿด ๋•Œ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์„œ๋ธŒ์ฟผ๋ฆฌ์ด๋‹ค

delete from sample54 where a=(select min(a) from sample54);

์ด๋ ‡๊ฒŒ ์›ํ•˜๋Š” ๊ณณ์—๋‹ค๊ฐ€ ๋ผ์›Œ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค

์Šค์นผ๋ผ ๊ฐ’

์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ค‘์š”ํ•œ๊ฑด ํ•ด๋‹น select๊ฐ€ ์–ด๋–ค ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š”์ง€๋ฅผ ์ฃผ์˜ํ•ด์„œ ๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค ์„œ๋ธŒ์ฟผ๋ฆฌ์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 4๊ฐ€์ง€์˜ ํŒจํ„ด์œผ๋กœ ๋‚˜๋‰จ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ํŒจํ„ด img.png

๋ณต์ˆ˜์˜ ํ–‰์ด ๋ฆฌํ„ด๋˜์ง€๋งŒ ์—ด์€ ํ•˜๋‚˜์ธ ํŒจํ„ด img_1.png

ํ•˜๋‚˜์˜ ํ–‰์ด ๋ฆฌํ„ด๋˜์ง€๋งŒ ์—ด์ด ๋ณต์ˆ˜์ธ ํŒจํ„ด img_2.png

๋ณต์ˆ˜์˜ ํ–‰, ๋ณต์ˆ˜์˜ ์—ด์ด ๋ฆฌํ„ด๋˜๋Š” ํŒจํ„ด img_3.png SELECT๋ฌธ์„ ํ†ตํ•ด์„œ ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ์„ ๋ฆฌํ„ดํ•˜๋Š” ๊ฒƒ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—…๊ณ„์—์„œ๋Š” ์Šค์นผ๋ผ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค๋ผ๊ณ  ํ•œ๋‹ค ๊ทผ๋ฐ ์™œ ์Šค์นผ๋ผ๊ฐ’์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉด์„œ๊นŒ์ง€ ์ทจ๊ธ‰์„ ํ•˜๋Š” ์ด์œ ๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ์จ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค ์ด๋ ‡๊ฒŒ ์Šค์นผ๋ผ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋„๋ก select๋ฌธ์„ ์ž‘์„ฑํ•˜๊ณ ์ž ํ•˜๋ฉด select๊ตฌ์—์„œ ๋‹จ์ผ ์—ด์„ ์ง€์ •ํ•˜๊ฒŒ ๋œ๋‹ค. ๋ณต์ˆ˜ ์—ด์„ ๋ฆฌํ„ดํ•˜๊ณ ์ž ํ•˜๋ฉด 3, 4๋ฒˆ์งธ๊ฐ€ ๋œ๋‹ค

SELECT์—์„œ ํ•˜๋‚˜์˜ ์—ด์„ ์ง€์ •ํ•˜๊ณ , GROUP BY๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์€ ์ฑ„ ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด ๊ฒฐ๊ณผ๋Š” ๋‹จ์ผ ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค ๋งŒ์•ฝ GROUP BY๋กœ ๊ทธ๋ฃนํ•˜๊ฒŒ ๋˜๋ฉด ๋ช‡ ๊ฐ€์ง€์˜ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋‰˜์–ด์งˆ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‹จ์ผ ๊ฐ’์ด ์•ˆ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Œ ๋˜ํ•œ WHERE ์กฐ๊ฑด์œผ๋กœ ํ•˜๋‚˜์˜ ํ–‰๋งŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋‹จ์ผ ๊ฐ’์ด ๋˜๋ฏ€๋กœ ์Šค์นผ๋ผ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” select๋ฌธ์ด ๋จ

๋Œ€๋ถ€๋ถ„ ํŠน์ •ํ•œ ๋‘ ๊ฐ€์ง€๊ฐ€ ์„œ๋กœ ๋™์ผํ•œ์ง€๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋‹จ์ผ ๊ฐ’์œผ๋กœ ๋น„๊ตํ•˜๋Š”๋ฐ, ์ด ์˜๋ฏธ๋Š” where ์กฐ๊ฑด์‹์—์„œ ์Šค์นผ๋ผ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” = ์—ฐ์‚ฐ์ž๋ฅผ ํ†ตํ•ด์„œ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

์Šค์นผ๋ผ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ํŠน๋ณ„ํ•˜๊ฒŒ '์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ'๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค ๊ธฐ์กด์— ์ง‘๊ณ„ํ•จ์ˆ˜๋Š” WHERE์—์„œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ, ์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” where์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ง‘๊ณ„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์กฐ๊ฑด์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค ใ… r ์ด์™ธ์—๋„ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์— ๋‹ค๋ฅธ ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์Šค์นผ๋ผ ๊ฐ’์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์—†๋‹ค

SELECT ๊ตฌ์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ

WHERE์ ˆ ์ด์™ธ์—๋„ SELECT, UPDATE์˜ SET๋“ฑ ๋‹ค์–‘ํ•œ ๊ณณ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค ๋ฌธ๋ฒ•์ ์œผ๋กœ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ํ•˜๋‚˜์˜ ํ•ญ๋ชฉ์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ๋ฒ•์ ์œผ๋กœ ํ‹€๋ฆฌ์ง€์ง„ ์•Š์•˜์ง€๋งŒ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค ์ด๋Ÿฌํ•œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” ์Šค์นผ๋ผ ๊ฐ’์˜ ๋ฆฌํ„ด์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒจ์„œ์ด๋‹ค. ์ฆ‰, ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ๋˜์–ด์žˆ๋Š”์ง€ ์ฒดํฌ

SELECT์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ง€์ •ํ•  ๋•Œ๋Š” ์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค img_4.png ์ด๋ ‡๊ฒŒ ๊ฐ ํ…Œ์ด๋ธ”์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ๊ฐ€์ ธ์™€์„œ ํ…Œ์ด๋ธ”์˜ ์ƒ์œ„ ๋ ˆ๋ฒจ์—์„œ selectํ•ด์„œ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋‹ค ์‹ค์ œ ํ˜„์žฌ๋Š” mysql๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์œ„ ๋ ˆ๋ฒจ์—์„œ๋Š” from์„ ์ƒ๋žตํ•ด๋„ ๊ดœ์ฐฎ์ง€๋งŒ Oracle๊ฐ™์€ ์˜›๋‚  ๋””๋น„์—์„œ๋Š” from์„ ์ƒ๋žตํ•˜์ง€ ์•Š๊ณ  dualํ…Œ์ด๋ธ”์„ ํ†ตํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค

SET ๊ตฌ์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ

UPDATE sample54 SET a = (SELECT MAX(a) FROM sample54);

์ด๋ ‡๊ฒŒ set์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์Šค์นผ๋ผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค ํ•˜์ง€๋งŒ ๋ณด๋ฉด update์—์„œ๋Š” ๊ทธ๋ ‡๊ฒŒ ๋งŽ์ด ์“ฐ์ด์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค

FROM ๊ตฌ์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ ์‚ฌ์šฉํ•˜๊ธฐ

from์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ํ‰์†Œ์— ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ž‘ ๊ฐ™๋‹ค ํ•˜์ง€๋งŒ from์ ˆ์— ๋“ค์–ด๊ฐ€๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฌธ์€ ๊ตณ--์ด ์Šค์นผ๋ผ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜์ง€ ์•Š์•„๋„ ๊ดœ์ฐฎ๋‹ค ์ƒ๊น€์ƒˆ๋ฅผ ๋ณด๋ฉด ๊ทธ๋Ÿผ select๋กœ๋ถ€ํ„ฐ select๋ฅผ ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋ฅผ nested๊ตฌ์กฐ, ์ค‘์ฒฉ๊ตฌ์กฐ, ๋‚ดํฌ๊ตฌ์กฐ๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ํ…Œ์ด๋ธ”๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ด๋ฆ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„์นญ์„ ์‚ฌ์šฉํ•ด์„œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค -> oracle์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅ (as๋ฅผ ์•ˆ๋ถ™ํž˜)

INSERT ๋ช…๋ น๊ณผ ์„œ๋ธŒ์ฟผ๋ฆฌ

insert์™€ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์กฐํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค insert์˜ value์˜ ์ผ๋ถ€๋กœ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์™€ value ๋Œ€์‹  select์„ ์‚ฌ์šฉํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค img_5.png ์ด๋•Œ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ๋˜ํ•œ ์ž๋ฃŒํ˜•๋„ ์ผ์น˜ํ•ด์•ผํ•œ๋‹ค๋Š” ์ 

INSERT SELECT

img_6.png select๋ฅผ ์‚ด์ง ์–ต์ง€์Šค๋Ÿฝ๊ฒŒ ๋„ฃ๊ธดํ–ˆ์ง€๋งŒ ์ด๋ ‡๊ฒŒ select๋กœ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ’์„ values ๋Œ€์‹  ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ์•„๋ฌดํŠผ ๋„ฃ์„๋•Œ insertํ•  ํ…Œ์ด๋ธ”์˜ ์ž๋ฃŒํ˜•๋งŒ ๊ฐ™์œผ๋ฉด ์ž˜ ๋“ค์–ด๊ฐ„๋‹ค๋Š” ์ 

insert select๋ช…๋ น์€ select ๋ช…๋ น์˜ ๊ฒฐ๊ณผ๋ฅผ insert into๋กœ ์ง€์ •ํ•œ ํ…Œ์ด๋ธ”์— ์ „๋ถ€ ์ถ”๊ฐ€ํ•œ๋‹ค -> select ๋ช…๋ น์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ๋ฆฌํ„ดํ•ด์ฃผ์ง€ ์•Š๊ณ  ์ง€์ •๋œ ํ…Œ์ด๋ธ”๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด๋‹ค ๊ทธ๋ฆฌ๊ณ  ์ด ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ๋ณต์‚ฌ, ์ด๋™ํ• ๋•Œ ์ž˜ ์”€

Last updated

Was this helpful?