MySQL ๊ธฐํํจ์ ์ฝ๊ฒ ์ดํดํ๊ธฐ!
์ด๋ฒ ์์์์๋ MySQL์์ ์์ฃผ ์ฐ์ด๋ ๊ธฐํ ํจ์๋ค์ ์ฝ๊ณ ์ฌ๋ฏธ์๊ฒ ๋ฐฐ์๋ด
๋๋ค. ํนํ ์กฐ๊ฑด๋ฌธ ์ญํ ์ ํ๋ย CASE์ย IFย ํจ์, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ณด๋ฅผ ํ์ธํ๋ ํจ์๋ค์ ์ค์ต๊ณผ ํจ๊ป ์ค๋ช
ํด์. ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ์์ด๋ ์ดํดํ ์ ์๋๋ก ์น์ ํ๊ฒ ํ์ดํด๋๋ฆด๊ฒ์!
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
1. MySQL ๊ธฐํ ํจ์ ์๊ฐ [00:00:34]
MySQL์์ ์์ฃผ ์ฐ์ด๋ ๊ธฐํ ํจ์๋ค์ ๋ฐฐ์๋ณผ ๊ฑฐ์์. ํนํ ์กฐ๊ฑด๋ฌธ์ฒ๋ผ ๋์ํ๋ ํจ์๋ค์ด ๋ง์์, ๋ฐ์ดํฐ๋ฅผ ๋ค์ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ต๋๋ค.
2. IF ํจ์๋? ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฐ ์ ํํ๊ธฐ [00:01:00]
โข
IF ํจ์๋ "๋ง์ฝ์ ~๋ผ๋ฉด"์ด๋ผ๋ ์กฐ๊ฑด๋ฌธ์ด์์.
โข
์๋ฅผ ๋ค์ด,ย IF(์กฐ๊ฑด, ์ฐธ์ผ ๋ ๊ฐ, ๊ฑฐ์ง์ผ ๋ ๊ฐ)ย ํํ๋ก ์๋๋ค.
โข
์ฝ๊ฒ ๋งํด, ์กฐ๊ฑด์ด ๋ง์ผ๋ฉด A๋ฅผ, ์๋๋ฉด B๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ค์์น ๊ฐ์ ๊ฑฐ์ฃ !
โข
์:ย IF(salary > 3000000, '๊ณ ์๋', '์ ์๋')โ ๊ธ์ฌ๊ฐ 300๋ง ์ ๋์ผ๋ฉด '๊ณ ์๋', ์๋๋ฉด '์ ์๋' ํ์
3. CASE WHEN ๋ฌธ๋ฒ๊ณผ ์ฌ์ฉ๋ฒ [00:02:20]
โข
CASE WHEN์ ์ฌ๋ฌ ์กฐ๊ฑด์ ์์๋๋ก ๊ฒ์ฌํด์ ํด๋นํ๋ ๊ฐ์ ๋ฐํํด์.
โข
๋ฌธ๋ฒ์ ์๋์ ๊ฐ์์:
CASE
WHEN ์กฐ๊ฑด1 THEN ๊ฒฐ๊ณผ1
WHEN ์กฐ๊ฑด2 THEN ๊ฒฐ๊ณผ2
...
ELSE ๊ธฐ๋ณธ๊ฐ
END
SQL
๋ณต์ฌ
โข
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ย switch-case์ ๋น์ทํด์.
โข
์กฐ๊ฑด์ด ์ฌ๋ฌ ๊ฐ์ผ ๋ ์ ์ฉํ๊ฒ ์ฐ์
๋๋ค!
4. CASE๋ก ๊ธ์ฌ ๊ตฌ๊ฐ ๋๋๊ธฐ ์ค์ต [00:03:47]
โข
์ฌ์ ํ
์ด๋ธ์์ ๊ธ์ฌ๋ฅผ 300๋ง ์๋, 400๋ง ์๋ ๋ฑ ๊ตฌ๊ฐ๋ณ๋ก ๋๋ ์ ํ์ํด ๋ด
๋๋ค.
โข
์์:
SELECT emp_no, name, salary,
CASE
WHEN salary BETWEEN 3000000 AND 3999999 THEN '1์๋'
WHEN salary BETWEEN 4000000 AND 4999999 THEN '2์๋'
WHEN salary BETWEEN 5000000 AND 5999999 THEN '3์๋'
ELSE '๊ธฐํ'
END AS ์๋๊ตฌ๋ถ
FROM employees;
SQL
๋ณต์ฌ
โข
์ด๋ ๊ฒ ํ๋ฉด ๊ธ์ฌ ๊ตฌ๊ฐ๋ณ๋ก '1์๋', '2์๋' ๊ฐ์ ์ด๋ฆ์ ๋ถ์ฌ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์์ด์.
โข
์ค์ต ๊ฒฐ๊ณผ๋ฅผ ํตํด ์กฐ๊ฑด๋ณ๋ก ๋ฐ์ดํฐ๊ฐ ์ ๋๋์ด์ง๋ ๊ฑธ ํ์ธํ ์ ์๋ต๋๋ค!
5. IF ํจ์๋ก ๋ณด๋์ค ์ ๋ฌด ํ๋จํ๊ธฐ [00:07:37]
โข
์ฌ์๋ค์ ์ปค๋ฏธ์
(์์๋ฃ)๊ณผ ๋ณด๋์ค ์ง๊ธ ์ฌ๋ถ๋ฅผ IF ํจ์๋ก ํ์ธํด ๋ด
๋๋ค.
โข
์:
SELECT emp_no, commission_pct,
IF(commission_pct IS NULL, '์์', '์์') AS ์ปค๋ฏธ์
์ ๋ฌด,
IF(bonus IS NULL, '์์', '์์') AS ๋ณด๋์ค์ ๋ฌด
FROM employees;
SQL
๋ณต์ฌ
โข
์กฐ๊ฑด์ ๋ ๋ณต์กํ๊ฒ ๋ง๋ค๊ณ ์ถ์ผ๋ฉด AND, OR ๊ฐ์ ๋
ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์จ์ ์ฌ๋ฌ ์กฐ๊ฑด์ ๋์์ ๊ฒ์ฌํ ์๋ ์์ด์!
โข
์๋ฅผ ๋ค์ด ์ปค๋ฏธ์
๊ณผ ๋ณด๋์ค๊ฐ ๋ชจ๋ ์์ผ๋ฉด '์์', ์๋๋ฉด '์์' ํ์ํ๊ธฐ๋ ๊ฐ๋ฅํด์.
6. ๋ฒ์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์ ์ ์ ๋ณด ํ์ธ ํจ์ [00:12:18]
โข
MySQL ์๋ฒ ๋ฒ์ , ํ์ฌ ์ฌ์ฉ ์ค์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ, ์ ์ํ ์ ์ ์ด๋ฆ์ ํ์ธํ๋ ํจ์๋ ์์ด์!
โข
์:
SELECT VERSION() AS ๋ฒ์ ,
DATABASE() AS ๋ฐ์ดํฐ๋ฒ ์ด์ค,
USER() AS ์ ์ ;
SQL
๋ณต์ฌ
โข
์ด๊ฑธ๋ก ๋ด ํ๊ฒฝ์ด ์ด๋ค ์ํ์ธ์ง ์ฝ๊ฒ ์ ์ ์๋ต๋๋ค.
7. ๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ [00:20:00]
โข
์ค๋์ MySQL์์ ์กฐ๊ฑด๋ฌธ์ฒ๋ผ ํ์ฉํ๋ย CASE์ย IFย ํจ์, ๊ทธ๋ฆฌ๊ณ ํ๊ฒฝ ์ ๋ณด๋ฅผ ํ์ธํ๋ ํจ์๋ค์ ๋ฐฐ์ ์ด์.
โข
CASE๋ ์ฌ๋ฌ ์กฐ๊ฑด์ ์ธ ๋,ย IF๋ ๊ฐ๋จํ ์กฐ๊ฑด ํ๋๋ฅผ ์ธ ๋ ์ข์ต๋๋ค.
โข
์ค์ต์ ํตํด ์ง์ ์จ๋ณด๋ ์ดํด๊ฐ ๋ ์ฌ์ ์ฃ ?
โข
์ด ํจ์๋ค์ ์ ํ์ฉํ๋ฉด ๋ฐ์ดํฐ ์กฐํ ์ ์ํ๋ ์กฐ๊ฑด์ ๋ง๊ฒ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ํ๊ฒ ์กฐ์ ํ ์ ์์ด์!
์์ฝ
MySQL์ ๊ธฐํ ํจ์ ์คย CASE์ย IF๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฐ์ ๋ณด์ฌ์ฃผ๋ ์์ฃผ ์ ์ฉํ ๋๊ตฌ์
๋๋ค.ย CASE๋ ์ฌ๋ฌ ์กฐ๊ฑด์ ์ฐจ๋ก๋๋ก ๊ฒ์ฌํ ๋,ย IF๋ ๋จ์ ์กฐ๊ฑด์ผ ๋ ์ฌ์ฉํด์. ๋ํย VERSION(),ย DATABASE(),ย USER()ย ํจ์๋ก ํ์ฌ ํ๊ฒฝ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ํ์ธํ ์ ์๋ต๋๋ค. ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ์ ํ์ฉํด์ ๋ ๋๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด ๋ณด์ธ์!
๊ถ๊ธํ ์ ์์ผ๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์! ์ฆ๊ฑฐ์ด ์ฝ๋ฉ ๋์ธ์~ 