โ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ์ด๋ ๋ชฉ๋ก์ผ๋ก ๋์๊ฐ๊ธฐ
๐๏ธ SQL ์์ธ ๊ฐ์ด๋ โ
"๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)๋ผ๋ ๊ฑฐ๋ํ ์ง์ ์๊ณ ์์ ์ํ๋ ์ฑ ์ ๋จ 0.1์ด ๋ง์ ๊บผ๋ด์ค๋ ๋ช ๋ น์ ์ด์ "
๐ก 1. 30๋ ์ฐจ ์ ๋ฐฐ์ ์ฌ์ด ์ค๋ช โ
ํ๋ ๋ชจ๋ IT ์๋น์ค์ ํต์ฌ์ "๋ฐ์ดํฐ"์ ๋๋ค. ํ์ ์ ๋ณด, ์ํ ์ฌ๊ณ , ๊ฒ์ํ ๊ธ ๋ฑ ๋ชจ๋ ์ค์ ์์ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)๋ผ๋ ๊ธ๊ณ ์ ๊ตฌ์กฐํ๋์ด ์ ์ฅ๋ฉ๋๋ค. SQL(์์คํ์) ์ ์ด ๊ธ๊ณ ์ ๋ํํ ์ ์๋ ์ ์ผํ ๋ํ์ ์ธ์ด์ ๋๋ค.
์ด๋ค ๊ฐ๋ฐ ๋ถ์ผ(ํ๋ก ํธ์๋, ๋ฐฑ์๋, ์ฑ, ๋ฐ์ดํฐ๋ถ์)๋ฅผ ๊ฐ๋๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ์ง ์๋ ๊ณณ์ ์์ต๋๋ค. ๋ฐ๋ผ์ SQL์ ์ ํ ๊ณผ๋ชฉ์ด ์๋๋ผ "๋ชจ๋ ๊ฐ๋ฐ์์ ํ์ ๊ณตํต ๊ต์" ์ ๋๋ค. SQL์ "์ด๋ฆ์ด ๊น ์จ์ด๊ณ ๋์ด๊ฐ 20์ธ ์ด์์ธ ํ์ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ์ผ ์์ผ๋ก ์ ๋ ฌํด์ ๊ฐ์ ธ์์ค!"์ฒ๋ผ ์์ด ๋ฌธ์ฅ๊ณผ ๋งค์ฐ ํก์ฌํ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํ, ์ถ๊ฐ, ์์ , ์ญ์ (CRUD)ํฉ๋๋ค.
- ๋น์ ํ์๋ฉด: ๊ฑฐ๋ํ ๋งํธ ์ฐฝ๊ณ (DB)์ ๋ค์ด๊ฐ์ ๋ฐ์ด์ด๊ฐ ์ํ๋ ์ํ๋ค๋ง ์ ๋ณํด ๊น๋ํ๊ฒ ๋ฐ์ค ํฌ์ฅํด์ ํธ๋ญ์ ์ค์ด ๋ด๋ณด๋ด๋ ์ฐฝ๊ณ ๋ฌผ๋ฅ ๊ด๋ฆฌ ์์คํ ์ฉ ์ฃผ๋ฌธ์์ ๊ฐ์ต๋๋ค.
๐ ๏ธ 2. ์ด๋์ ์ฃผ๋ก ์ฐ์ด๋์? โ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS) ์ ์ด: MySQL, PostgreSQL, Oracle, MS-SQL ๋ฑ ์์ฉ/์คํ์์ค DB ์๋ฒ ๋ด์ ๋ฐ์ดํฐ ์กฐํ ๋ฐ ์คํค๋ง ์ค๊ณ.
- ๋ฐ์ดํฐ ๋ฐฑ์๋ ๊ฐ๊ณต: ๋ฐฑ์๋ ์๋ฒ ๋ก์ง์์ ๊ฐ์ , ๋ก๊ทธ์ธ, ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ DB์ ์์ ํ๊ฒ ์ฐ๊ฑฐ๋ ๋ถ๋ฌ์ฌ ๋ ํ์ฉ๋ฉ๋๋ค.
โ๏ธ 3. ์ฅ์ ๊ณผ ๋จ์ (์ ๋ฐฐ์ ์์ง ํ๋ง๋) โ
- ์ฅ์ (์๊ฐ์ ๊ฑฐ์ค๋ฅด๋ ์ธ์ด):
- ์๋์ ๋ฒ์ฉ์ฑ: ํ ๋ฒ ๋ฐฐ์๋๋ฉด ๊ฑฐ์ ๋ชจ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฌธ๋ฒ์ด 95% ์ด์ ๋๊ฐ์ด ์ฌ์ฉ๋๋ฏ๋ก ํ์ ์จ๋จน๋ ๋ฌด๊ธฐ๊ฐ ๋ฉ๋๋ค.
- ์ง๊ด์ ์ธ ์ฐ์ฐ: ๋ณต์กํ ๋ฐ๋ณต๋ฌธ์ ์ง์ ๊ตฌํํ ํ์ ์์ด SQL ๋ช ๋ น์ด ๋จ ๋ช ์ค์ด๋ฉด ์๋ฐฑ๋ง ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์์๊ฐ์ ๋งค์นญ(JOIN) ๋ฐ ์ง๊ณํด๋ ๋๋ค.
- ๋จ์ (๋๋ ์ฟผ๋ฆฌ์ ๋ฏธ๋ก):
- ์ฑ๋ฅ ํ๋์ ๋ฒฝ: ๋ฐ์ดํฐ๊ฐ ์์ต ๊ฑด์ผ๋ก ์ปค์ง๋ฉด ์ฟผ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ์์ฑํ๋๋์ ๋ฐ๋ผ ์คํ ์๊ฐ์ด 0.01์ด์์ 10๋ถ ์ด์์ผ๋ก ๊ทน๋จ์ ์ผ๋ก ๋ฒ์ด์ง๋๋ค. (์ธ๋ฑ์ค ์ค๊ณ ํ์)
๐ 4. ์ด๋ณด์๋ฅผ ์ํ ์ฒซ๊ฑธ์ ์ฝ๋ โ
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์์ ์กฐ๊ฑด์ ๊ฑธ์ด ํน์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ํ์ค์ ์ธ SELECT ์ฟผ๋ฆฌ๋ฌธ์ ๋๋ค.
-- 1. members ํ
์ด๋ธ์์ ๋์ด๊ฐ 25์ธ ์ด์์ธ ํ์์ ํํฐ๋งํฉ๋๋ค.
SELECT name, email, join_date
FROM members
WHERE age >= 25 AND status = 'active'
-- 2. ๊ฐ์
์ผ์(join_date)๊ฐ ๊ฐ์ฅ ์ต์ ์ธ ํ์ ์์๋ก ์ ๋ ฌ(DESC)ํฉ๋๋ค.
ORDER BY join_date DESC
-- 3. ์์ 5๋ช
๋ง ์ ํํ์ฌ ๊ฐ์ ธ์ต๋๋ค.
LIMIT 5;๐ฏ 5. ์ด๋ณด์ ์ถ์ฒ ๊ณต๋ถ ๋ฐฉํฅ โ
- ๋ก์ปฌ PC์ ๊ฐ๋ณ๊ณ ์ค์น๊ฐ ์ฌ์ด MySQL ์ด๋ PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ธํ ํด๋ณด์ธ์.
- ๊ธฐ๋ณธ ์กฐํ์ธ
SELECT,WHERE,ORDER BY๋ฅผ ๋ง์คํฐํ ๋ค, ์ฌ๋ฌ ๊ฐ์ ํ ์ด๋ธ์ ๋ฌถ์ด ์ฐ๊ด ์ง๋JOIN๊ฐ๋ ์ ์์ ํ ์ดํดํ์ ์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ฌ์ ๋๋ค. - ์ง์ ์ผํ๋ชฐ์ '๊ณ ๊ฐ', '์ฃผ๋ฌธ', '์ํ' ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ์ข ์ด์ ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๊ด๊ณํ ๋ฐ์ดํฐ๋ก ์ค๊ณํด๋ณด๋ ์ฐ์ต(๋ฐ์ดํฐ ๋ชจ๋ธ๋ง)์ ํด๋ณด๋ฉด ๋ฐฑ์๋ ์ค๊ณ๋ ฅ์ด ๊ธ์ฑ์ฅํฉ๋๋ค.