Day 20
Last updated
Was this helpful?
Last updated
Was this helpful?
์๋ธ์ฟผ๋ฆฌ๋ SELECT์ ์ํ ๋ฐ์ดํฐ ์ง์์ธ๋ฐ, ์๋ถ๊ฐ ์๋ ํ๋ถ์ ๋ถ์์ ์ธ ์ง์๋ฅผ ์๋ฏธํ๋ค ์๋ธ์ฟผ๋ฆฌ๋ SQL ๋ช ๋ น๋ฌธ ์์ ์ง์ ํ๋ ํ๋ถ SELECT๋ช ๋ น์ผ๋ก ๊ดํธ๋ก ๋ฌถ์ด ์ง์ ํ๋ค ์๊น์๋ select์ ๊ณผ ๊ฐ์ผ๋ฉฐ ์ฌ์ฉ์ฒ๋ SELECT, FROM, WHERE ๋ฑ select ๋ช ๋ น์ ๊ฐ ๊ตฌ๋ฅผ ๊ธฐ์ ํ ์ ์๋ค ๋ง์ ์ฌ์ฉ์ฒ๋ SQL๋ช ๋ น์ where์ ์์ ์ฌ์ฉ๋๋ค where ๊ตฌ๋ select, delete, update ์์ ์ฌ์ฉํ ์ ์๋๋ฐ, ์ฌ๊ธฐ ๋ชจ๋์์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค
๊ฐ๋จํ๊ฒ sample54 ํ ์ด๋ธ์์ a ์ด์ ๊ฐ์ด ๊ฐ์ฅ ์์ ํ์ ์ญ์ ํด๋ณด์ ๊ทธ๋ผ a์ ๊ฐ์ด ๊ฐ์ฅ ์์ ๊ฒ์ ์ฐพ์์ผํ๋๋ฐ ๊ทธ ๋ฐฉ๋ฒ์ MINํจ์๋ฅผ ์ฌ์ฉํด์
์ด๋ ๊ฒ ์ฐพ์ ์ ์๊ณ ๊ทธ๋ ๊ฒ ๊ฐ์ฅ ์์ ํ์ ์ฐพ๊ณ ๋ ๋ค์์ ์ญ์ ๋ฅผ ํด์ค ์ ์๊ฒ ๋๋๋ฐ ์ด๋ด ๋ ์ฌ์ฉํ๋๊ฒ ์๋ธ์ฟผ๋ฆฌ์ด๋ค
์ด๋ ๊ฒ ์ํ๋ ๊ณณ์๋ค๊ฐ ๋ผ์๋ฃ์ ์ ์๋ค
์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ์ค์ํ๊ฑด ํด๋น select๊ฐ ์ด๋ค ๊ฐ์ ๋ฆฌํดํ๋์ง๋ฅผ ์ฃผ์ํด์ ๋ณผ ํ์๊ฐ ์๋ค ์๋ธ์ฟผ๋ฆฌ์๋ ์ผ๋ฐ์ ์ผ๋ก 4๊ฐ์ง์ ํจํด์ผ๋ก ๋๋จ ํ๋์ ๊ฐ์ ๋ฆฌํดํ๋ ํจํด
๋ณต์์ ํ์ด ๋ฆฌํด๋์ง๋ง ์ด์ ํ๋์ธ ํจํด
ํ๋์ ํ์ด ๋ฆฌํด๋์ง๋ง ์ด์ด ๋ณต์์ธ ํจํด
๋ณต์์ ํ, ๋ณต์์ ์ด์ด ๋ฆฌํด๋๋ ํจํด SELECT๋ฌธ์ ํตํด์ ํ๋์ ๊ฐ๋ง์ ๋ฆฌํดํ๋ ๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ณ์์๋ ์ค์นผ๋ผ๊ฐ์ ๋ฆฌํดํ๋ค๋ผ๊ณ ํ๋ค ๊ทผ๋ฐ ์ ์ค์นผ๋ผ๊ฐ์ด๋ผ๊ณ ๋ถ๋ฅด๋ฉด์๊น์ง ์ทจ๊ธ์ ํ๋ ์ด์ ๋ ์๋ธ์ฟผ๋ฆฌ๋ก์จ ์ฌ์ฉํ๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ด๋ค ์ด๋ ๊ฒ ์ค์นผ๋ผ๊ฐ์ ๋ฆฌํดํ๋๋ก select๋ฌธ์ ์์ฑํ๊ณ ์ ํ๋ฉด select๊ตฌ์์ ๋จ์ผ ์ด์ ์ง์ ํ๊ฒ ๋๋ค. ๋ณต์ ์ด์ ๋ฆฌํดํ๊ณ ์ ํ๋ฉด 3, 4๋ฒ์งธ๊ฐ ๋๋ค
SELECT์์ ํ๋์ ์ด์ ์ง์ ํ๊ณ , GROUP BY๋ฅผ ์ง์ ํ์ง ์์ ์ฑ ์ง๊ณํจ์๋ฅผ ์ฌ์ฉํ๊ฒ๋๋ฉด ๊ฒฐ๊ณผ๋ ๋จ์ผ ๊ฐ์ด ๋์ค๊ฒ ๋๋ค ๋ง์ฝ GROUP BY๋ก ๊ทธ๋ฃนํ๊ฒ ๋๋ฉด ๋ช ๊ฐ์ง์ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด์ง ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ์ ์ผ๋ก ๋จ์ผ ๊ฐ์ด ์๋์ฌ ์ ์์ ๋ํ WHERE ์กฐ๊ฑด์ผ๋ก ํ๋์ ํ๋ง ๊ฒ์ํ ์ ์๋ค๋ฉด ๋จ์ผ ๊ฐ์ด ๋๋ฏ๋ก ์ค์นผ๋ผ ๊ฐ์ ๋ฆฌํดํ๋ select๋ฌธ์ด ๋จ
๋๋ถ๋ถ ํน์ ํ ๋ ๊ฐ์ง๊ฐ ์๋ก ๋์ผํ์ง๋ฅผ ๋น๊ตํ๋ ๊ฒฝ์ฐ์๋ ๋จ์ผ ๊ฐ์ผ๋ก ๋น๊ตํ๋๋ฐ, ์ด ์๋ฏธ๋ where ์กฐ๊ฑด์์์ ์ค์นผ๋ผ ๊ฐ์ ๋ฆฌํดํ๋ ์๋ธ์ฟผ๋ฆฌ๋ = ์ฐ์ฐ์๋ฅผ ํตํด์ ๋น๊ตํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค
์ค์นผ๋ผ ๊ฐ์ ๋ฆฌํดํ๋ ์๋ธ์ฟผ๋ฆฌ๋ ํน๋ณํ๊ฒ '์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ'๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค ๊ธฐ์กด์ ์ง๊ณํจ์๋ WHERE์์๋ ์ฌ์ฉํ ์ ์๋ค๊ณ ํ๋๋ฐ, ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ where์์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ง๊ณํจ์๋ฅผ ์ฌ์ฉํด์ ์ง๊ณํ ๊ฒฐ๊ณผ๋ฅผ ์กฐ๊ฑด์์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค ใ r ์ด์ธ์๋ ํ๋์ ๊ทธ๋ฃน์ ๋ค๋ฅธ ๊ฐ์ด ์ฌ๋ฌ ๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ ์ค์นผ๋ผ ๊ฐ์ด๋ผ๊ณ ํ ์ ์๋ค
WHERE์ ์ด์ธ์๋ SELECT, UPDATE์ SET๋ฑ ๋ค์ํ ๊ณณ์์ ์ฌ์ฉํ ์ ์๋ค ๋ฌธ๋ฒ์ ์ผ๋ก ์๋ธ์ฟผ๋ฆฌ๋ ํ๋์ ํญ๋ชฉ์ผ๋ก ์ทจ๊ธํ๋ค. ํ์ง๋ง ๋ฌธ๋ฒ์ ์ผ๋ก ํ๋ฆฌ์ง์ง ์์์ง๋ง ์๋ฌ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ค ์ด๋ฌํ ์๋ฌ๊ฐ ๋ฐ์ํ๋ ์ด์ ๋ ์ค์นผ๋ผ ๊ฐ์ ๋ฆฌํด์ ๋ฌธ์ ๊ฐ ์๊ฒจ์์ด๋ค. ์ฆ, ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋๋ ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ก ๋์ด์๋์ง ์ฒดํฌ
์ด๋ ๊ฒ set์์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ค์นผ๋ผ ๊ฐ์ ๋ฐํํ๋๋ก ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ง์ ํ ํ์๊ฐ ์๋ค ํ์ง๋ง ๋ณด๋ฉด update์์๋ ๊ทธ๋ ๊ฒ ๋ง์ด ์ฐ์ด์ง ์์ ๊ฒ์ด๋ค
from์์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ๋ ํ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ ๊ฐ๋ค ํ์ง๋ง from์ ์ ๋ค์ด๊ฐ๋ ์๋ธ์ฟผ๋ฆฌ๋ฌธ์ ๊ตณ--์ด ์ค์นผ๋ผ ๊ฐ์ ๋ฆฌํดํ์ง ์์๋ ๊ด์ฐฎ๋ค ์๊น์๋ฅผ ๋ณด๋ฉด ๊ทธ๋ผ select๋ก๋ถํฐ select๋ฅผ ํ๊ฒ ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ nested๊ตฌ์กฐ, ์ค์ฒฉ๊ตฌ์กฐ, ๋ดํฌ๊ตฌ์กฐ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค ์๋ธ์ฟผ๋ฆฌ๋ ํ ์ด๋ธ๊ณผ ๋ค๋ฅด๊ฒ ์ด๋ฆ์ด ์๊ธฐ ๋๋ฌธ์ ๋ณ์นญ์ ์ฌ์ฉํด์ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค -> oracle์์๋ ๋ถ๊ฐ๋ฅ (as๋ฅผ ์๋ถํ)
insert select๋ช ๋ น์ select ๋ช ๋ น์ ๊ฒฐ๊ณผ๋ฅผ insert into๋ก ์ง์ ํ ํ ์ด๋ธ์ ์ ๋ถ ์ถ๊ฐํ๋ค -> select ๋ช ๋ น์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์ ๋ฆฌํดํด์ฃผ์ง ์๊ณ ์ง์ ๋ ํ ์ด๋ธ๋ก ์ถ๊ฐํ๋ ๊ฒ์ด๋ค ๊ทธ๋ฆฌ๊ณ ์ด ๋๋ฌธ์ ๋ฐ์ดํฐ์ ๋ณต์ฌ, ์ด๋ํ ๋ ์ ์
SELECT์์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ง์ ํ ๋๋ ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๊ฐ ํ์ํ๋ค ์ด๋ ๊ฒ ๊ฐ ํ ์ด๋ธ์ ๊ฐฏ์๋ฅผ ์๋ธ์ฟผ๋ฆฌ๋ก ๊ฐ์ ธ์์ ํ ์ด๋ธ์ ์์ ๋ ๋ฒจ์์ selectํด์ ๋ณด์ฌ์ฃผ๊ณ ์๋ค ์ค์ ํ์ฌ๋ mysql๋ก ์งํํ๊ธฐ ๋๋ฌธ์ ์์ ๋ ๋ฒจ์์๋ from์ ์๋ตํด๋ ๊ด์ฐฎ์ง๋ง Oracle๊ฐ์ ์๋ ๋๋น์์๋ from์ ์๋ตํ์ง ์๊ณ dualํ ์ด๋ธ์ ํตํด์ ์ฌ์ฉํ๋ฉด ๋๋ค
insert์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์กฐํฉํด์ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค insert์ value์ ์ผ๋ถ๋ก ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ value ๋์ select์ ์ฌ์ฉํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค ์ด๋ ์๋ธ์ฟผ๋ฆฌ๋ ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ก ์ง์ ํ ํ์๊ฐ ์๋ค. ๋ํ ์๋ฃํ๋ ์ผ์นํด์ผํ๋ค๋ ์
select๋ฅผ ์ด์ง ์ต์ง์ค๋ฝ๊ฒ ๋ฃ๊ธดํ์ง๋ง ์ด๋ ๊ฒ select๋ก ๋ฐํ๋๋ ๊ฐ์ values ๋์ ๋ฃ์ด์ค ์ ์๋ค๋ ์ ์๋ฌดํผ ๋ฃ์๋ insertํ ํ ์ด๋ธ์ ์๋ฃํ๋ง ๊ฐ์ผ๋ฉด ์ ๋ค์ด๊ฐ๋ค๋ ์