4. GROUP BY
ํน์ ์ปฌ๋ผ์ ๊ฐ์ผ๋ก ๋ ์ฝ๋๋ฅผ ๊ทธ๋ฃจํํ๊ณ , ๊ทธ๋ฃน๋ณ๋ก ์ง๊ณ๋ ๊ฒฐ๊ณผ๋ฅผ ํ๋์ ๋ ์ฝ๋๋ก ์กฐํ
GROUP BY๋ฅผ ์ฌ์ฉํ ๋ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ์ ์ฉํ ๊ธฐ๋ฅ
โณ๏ธ WITH ROLLUP
- ๊ทธ๋ฃจํ๋ ๊ทธ๋ฃน๋ณ๋ก ์๊ณ๋ฅผ ๊ฐ์ ธ์ด
โณ๏ธ ๋ ์ฝ๋๋ฅผ ์ปฌ๋ผ์ผ๋ก ๋ณํ
- ๋ชฉ์ ์ด๋ ์ฉ๋์ ๋ง๊ฒ SUM, COUNT, MIN, MAX, AVG ๋ฑ์ ์งํฉ ํจ์ ์ฌ์ฉ
5. ORDER BY
๊ฒ์๋ ๋ ์ฝ๋๋ฅผ ์ด๋ค ์์๋ก ์ ๋ ฌํ ์ง ๊ฒฐ์
ORDER BY ์ ์ด ๋ช ์๋์ง ์์ ์ฟผ๋ฆฌ์ ๋ํด์ ์ ๋ ฌ์ ๋ํ ๋ณด์ฅ X
โณ๏ธ ORDER BY ์ฌ์ฉ๋ฒ ๋ฐ ์ฃผ์์ฌํญ
- 1๊ฐ ๋๋ ๊ทธ ์ด์ ์ฌ๋ฌ ๊ฐ์ ์ปฌ๋ผ์ผ๋ก ์ ๋ ฌ ์ํ ๊ฐ๋ฅ ๐ ์ปฌ๋ผ๋ณ๋ก ์ ๋ ฌ ์์ ๋ค๋ฅด๊ฒ ๋ช ์ ๊ฐ๋ฅ
- ์ ๋ ฌํ ๋์์ ์ปฌ๋ผ๋ช ์ด๋ ํํ์์ผ๋ก ๋ช ์ํ์ง๋ง, SELECT๋๋ ์ปฌ๋ผ ์๋ฒ ๋ช ์ ๊ฐ๋ฅ
SELECT first_name, last_name FROM employees
ORDER BY last_name;
SELECT first_name, last_name FROM employees
ORDER BY 2;
- ORDER BY ๋ค์ ์ซ์ ๊ฐ์ด ์๋ ๋ฌธ์์ด ์์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ตํฐ๋ง์ด์ ๊ฐ ORDER BY ์ ์์ฒด๋ฅผ ๋ฌด์
SELECT first_name, last_name FROM employees
ORDER BY "last_name";
6. ์๋ธ์ฟผ๋ฆฌ
- ๋จ์ ์ฒ๋ฆฌ๋ณ๋ก ์ฟผ๋ฆฌ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ์์ฑ ๊ฐ๋ฅ
- ์ฌ๋ฌ ์์น์์ ์ฌ์ฉ ๊ฐ๋ฅ (SELECT, FROM, WHERE ์ )
- ์ฌ์ฉ๋๋ ์์น์ ๋ฐ๋ผ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ ์ํฅ๋์ MySQL ์๋ฒ ์ต์ ํ ๋ฐฉ๋ฒ์ด ์์ ํ ๋ฌ๋ผ์ง
๐ถ ์๋ธ์ฟผ๋ฆฌ ์ข ๋ฅ
๐ธ ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ : ๋ ์ฝ๋์ ์ปฌ๋ผ์ด ๊ฐ๊ฐ ํ๋์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋
๐ธ ๋ก์ฐ(๋ ์ฝ๋) ์๋ธ์ฟผ๋ฆฌ : ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ณด๋ค ๋ ์ฝ๋ ๊ฑด์๊ฐ ๋ง๊ฑฐ๋ ์ปฌ๋ผ ์๊ฐ ๋ง์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ด๋ ์๋ธ ์ฟผ๋ฆฌ
โณ๏ธ SELECT ์ ์์ ์ฌ์ฉ
- ๋ด๋ถ์ ์ผ๋ก ์์ ํ ์ด๋ธ์ ๋ง๋ค๊ฑฐ๋ ์ฟผ๋ฆฌ๋ฅผ ๋นํจ์จ์ ์ผ๋ก ์คํํ๊ฒ ๋ง๋ค์ง ์์
- ์๋ธ์ฟผ๋ฆฌ๋ ํญ์ ์ปฌ๋ผ๊ณผ ๋ ์ฝ๋๊ฐ ํ๋์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
๐ ๊ทธ ๊ฐ์ด NULL์ด๋ ์๋๋ ๊ด๊ณ์์ด ๋ ์ฝ๋๊ฐ 1๊ฑด์ด ์กด์ฌํด์ผ ํจ - ์๋ธ์ฟผ๋ฆฌ์ ๋ก์ฐ ์๋ธ์ฟผ๋ฆฌ ์ฌ์ฉ ๋ถ๊ฐ
- ์ค๋ก์ง ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ง ์ฌ์ฉ ๊ฐ๋ฅ
โณ๏ธ FROM ์ ์์ ์ฌ์ฉ
- ์ตํฐ๋ง์ด์ ๊ฐ FROM ์ ์ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ธ๋ถ ์ฟผ๋ฆฌ๋ก ๋ณํฉํ๋ ์ต์ ํ ์ํ ๐ ๊ตณ์ด ์์ ํ ์ด๋ธ ๋ง๋ค์ง X
- ๋ณํฉ๋์ง ์๋ ๊ฒฝ์ฐ ๐ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ์๋ธ์ฟผ๋ฆฌ์ ์ฌ์ฉ๋๋ฉด ์ธ๋ถ ์ฟผ๋ฆฌ๋ก ๋ณํฉ๋์ง ๋ชปํจ
- ์งํฉ ํจ์ ์ฌ์ฉ
- DISTINCT
- GROUP BY, HAVING
- LIMIT
- UNION, UNION ALL
- SELECT ์ ์ ์๋ธ์ฟผ๋ฆฌ๊ฐ ์ฌ์ฉ๋ ๊ฒฝ์ฐ
- ์ฌ์ฉ์ ๋ณ์ ์ฌ์ฉ
โณ๏ธ WHERE ์ ์ ์ฌ์ฉ๋ ์๋ธ์ฟผ๋ฆฌ
- SELECT ์ ์ด๋ FROM ์ ๋ณด๋ค๋ ๋ค์ํ ์ฐ์ฐ์ ์ฌ์ฉ ๊ฐ๋ฅ
- ๋๋ฑ ๋๋ ํฌ๋ค, ์๋ค ๋น๊ต
- ์๋ธ์ฟผ๋ฆฌ๋ฅผ ๋จผ์ ์คํํ ํ ์์๋ก ๋ณํํ๊ณ ์์ซ๊ฐ์ผ๋ก ์๋ธ์ฟผ๋ฆฌ๋ฅผ ๋์ฒดํด์ ๋๋จธ์ง ์ฟผ๋ฆฌ ๋ถ๋ถ์ ์ฒ๋ฆฌ
- IN ๋น๊ต
- ์ค์ JOIN์ ์๋์ง๋ง ํ ์ด๋ธ์ ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ ์ฝ๋๋ฅผ ์ด์ฉํ ํํ์๊ณผ ์ผ์นํ๋์ง๋ฅผ ์ฒดํฌํ๋ ํํ (์ธ๋ฏธ ์กฐ์ธ)
- NOT IN ๋น๊ต
- RDBMS์์ Not-Equal ๋น๊ต๋ ์ธ๋ฑ์ค๋ฅผ ํ์ฉํ ์ ์๋ ๊ฒ์ฒ๋ผ ์ํฐ ์ธ๋ฏธ ์กฐ์ธ ๋ํ ์ต์ ํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ง์ง ์์
- NOT EXISTS, ๊ตฌ์ฒดํ๋ก ์ต์ ํ๋ฅผ ์ํํ์ง๋ง ๊ทธ๋ค์ง ์ฑ๋ฅ ํฅ์์ ๋์์ด ๋์ง ์์ผ๋ฏ๋ก ์ฟผ๋ฆฌ๊ฐ ์ต๋ํ ๋ค๋ฅธ ์กฐ๊ฑด์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ ๊ฒ์ ๋ฒ์๋ฅผ ์ขํ ์ ์๊ฒ ํ๋ ๊ฒ์ด ์ข์
- WHERE ์ ์ ๋จ๋ ์ผ๋ก ์ํฐ ์ธ๋ฏธ ์กฐ์ธ ์กฐ๊ฑด๋ง ์๋ค๋ฉด ํ ํ ์ด๋ธ ์ค์บ์ ํผํ ์ ์์ผ๋ฏ๋ก ์ฃผ์ ํ์