MySQL ๊ทธ๋ฃนํจ์ ์ฝ๊ฒ ๋ฐฐ์ฐ๊ธฐ!
์ด๋ฒ ์์์์๋ MySQL์์ ์์ฃผ ์ฌ์ฉํ๋ **๊ทธ๋ฃนํจ์(์ง๊ณํจ์)**๋ฅผ ์ฝ๊ณ ์ฌ๋ฏธ์๊ฒ ๋ฐฐ์๋ด
๋๋ค. ๊ทธ๋ฃนํจ์๋ ์ฌ๋ฌ ๋ฐ์ดํฐ๋ค์ ๋ชจ์์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ํจ์์์. ์๋ฅผ ๋ค์ด, ์ง์ ์๋ฅผ ์ธ๊ฑฐ๋, ๊ธ์ฌ์ ํฉ๊ณ์ ํ๊ท , ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๊ตฌํ ๋ ์ฌ์ฉํฉ๋๋ค.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
๊ทธ๋ฃนํจ์๋? [00:00:13]
โข
๊ทธ๋ฃนํจ์๋ ์ฌ๋ฌ ํ(๋ฐ์ดํฐ)์ ๋ชจ์์ ํ๋์ ๊ฒฐ๊ณผ๋ฅผ ๊ณ์ฐํด ์ฃผ๋ ํจ์์์. ๊ทธ๋์ย ์ง๊ณํจ์๋ผ๊ณ ๋ ๋ถ๋ฌ์.
โข
๋ํ์ ์ธ ๊ทธ๋ฃนํจ์:
โฆ
COUNT: ๋ฐ์ดํฐ ๊ฐ์ ์ธ๊ธฐ
โฆ
SUM: ํฉ๊ณ ๊ตฌํ๊ธฐ
โฆ
AVG: ํ๊ท ๊ตฌํ๊ธฐ
โฆ
MAX: ์ต๋๊ฐ ๊ตฌํ๊ธฐ
โฆ
MIN: ์ต์๊ฐ ๊ตฌํ๊ธฐ
์๋ฅผ ๋ค์ด, ์ง์ ํ
์ด๋ธ์์ ์ง์ ์๋ฅผ ์ธ๊ฑฐ๋, ๊ธ์ฌ์ ์ต๋๊ฐ์ ๊ตฌํ ๋ ์๋๋ค.
๊ธฐ๋ณธ ๊ทธ๋ฃนํจ์ ์ฌ์ฉ๋ฒ (COUNT, MAX, MIN, SUM, AVG) [00:01:15]
โข
์ง์ ์ ์ธ๊ธฐ:
SELECT COUNT(*) FROM employees;
SQL
๋ณต์ฌ
โ ์ง์์ด ์ด ๋ช ๋ช
์ธ์ง ์๋ ค์ค์.
โข
์ต๋ ๊ธ์ฌ ๊ตฌํ๊ธฐ:
SELECT MAX(salary) FROM employees;
SQL
๋ณต์ฌ
โ ๊ฐ์ฅ ๋์ ๊ธ์ฌ๊ฐ ์ผ๋ง์ธ์ง ์๋ ค์ค์.
โข
์ต์ ๊ธ์ฌ ๊ตฌํ๊ธฐ:
SELECT MIN(salary) FROM employees;
SQL
๋ณต์ฌ
โ ๊ฐ์ฅ ๋ฎ์ ๊ธ์ฌ๊ฐ ์ผ๋ง์ธ์ง ์๋ ค์ค์.
โข
๊ธ์ฌ ํฉ๊ณ์ ํ๊ท ๊ตฌํ๊ธฐ:
SELECT SUM(salary), AVG(salary) FROM employees;
SQL
๋ณต์ฌ
โ ๋ชจ๋ ์ง์ ๊ธ์ฌ๋ฅผ ๋ํ ๊ฐ๊ณผ ํ๊ท ๊ธ์ฌ๋ฅผ ์๋ ค์ค์.
๋ถ์๋ณ ๊ทธ๋ฃนํจ์ ์ ์ฉํ๊ธฐ (GROUP BY) [00:04:34]
โข
GROUP BYย ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด, ํน์ ๊ธฐ์ค๋ณ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฌถ์ด์ ๊ทธ๋ฃนํจ์๋ฅผ ์ ์ฉํ ์ ์์ด์.
โข
์๋ฅผ ๋ค์ด, ๋ถ์๋ณ๋ก ๊ธ์ฌ์ ํฉ๊ณ, ํ๊ท , ์ต๋, ์ต์๋ฅผ ๊ตฌํ ๋:
SELECT department_id,
MAX(salary),
MIN(salary),
SUM(salary),
AVG(salary)
FROM employees
GROUP BY department_id;
SQL
๋ณต์ฌ
โข
์ด๋ ๊ฒ ํ๋ฉด ๋ถ์๋ณ๋ก ๊ธ์ฌ ์ ๋ณด๋ฅผ ํ๋์ ๋ณผ ์ ์๋ต๋๋ค.
โข
์ํ์ด๋ ์ฝ๋ฉ ํ
์คํธ์์ "OO๋ณ"์ด๋ผ๋ ํํ์ด ๋์ค๋ฉด, ๋ฐ๋ก ์ดย GROUP BY๋ฅผ ๋ ์ฌ๋ฆฌ๋ฉด ์ข์์!
๊ทธ๋ฃน์ปจ์บฃ(GROUP_CONCAT)์ผ๋ก ๋ฌธ์์ด ํฉ์น๊ธฐ [00:08:15]
โข
GROUP_CONCATย ํจ์๋ ๊ทธ๋ฃน๋ณ๋ก ์ฌ๋ฌ ๋ฌธ์์ด์ ํ๋๋ก ํฉ์ณ์ ๋ณด์ฌ์ค์.
โข
์๋ฅผ ๋ค์ด, ๋ถ์๋ณ ์ฌ์ ์ด๋ฆ์ ์ฝค๋ง(,)๋ก ๊ตฌ๋ถํด์ ํ ์ค๋ก ์ถ๋ ฅํ ์ ์์ด์:
SELECT department_id,
GROUP_CONCAT(name ORDER BY name ASC SEPARATOR ', ') AS employee_names
FROM employees
GROUP BY department_id;
SQL
๋ณต์ฌ
โข
์ด ํจ์ ๋๋ถ์ ๋ถ์๋ณ๋ก ๋๊ฐ ์๋์ง ํ๋์ ํ์
ํ ์ ์๋ต๋๋ค.
โข
ORDER BY๋ก ์ด๋ฆ ์์๋ ์ ํ ์ ์๊ณ ,ย SEPARATOR๋ก ๊ตฌ๋ถ์๋ ๋ฐ๊ฟ ์ ์์ด์.
๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ [00:10:35]
โข
๊ทธ๋ฃนํจ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ ๊ณ์ฐํ ๋ ๊ผญ ํ์ํ ๋๊ตฌ์์.
โข
๊ธฐ๋ณธ ํจ์๋ค(COUNT,ย MAX,ย MIN,ย SUM,ย AVG)์ ์ ์ตํ๊ณ ,ย GROUP BY๋ก ๊ทธ๋ฃน ๊ธฐ์ค์ ์ ํ๋ ๋ฒ์ ์์๋์ธ์.
โข
๋ฌธ์์ด์ ํฉ์น๋ย GROUP_CONCAT๋ ์ ์ฉํ๊ฒ ํ์ฉํ ์ ์๋ต๋๋ค.
โข
์ค์ต์ ํตํด ์ง์ ์จ๋ณด๋ฉด ๋ ์ฝ๊ฒ ์ดํดํ ์ ์์ด์!
์ด์ MySQL ๊ทธ๋ฃนํจ์, ์ด๋ ต์ง ์์ฃ ? ๋ฐ์ดํฐ ๋ถ์์ด๋ ๋ณด๊ณ ์ ์์ฑํ ๋ ์์ฃผ ์ ์ฉํ๋ ๊ผญ ์ตํ๋์ธ์! ๋ค์ ์์์์ ๋ ๋ง๋์~ 