SELECT๋ฌธ ๊ตฌ์กฐ
SELECT [DISTINCT] ํ๋ ์ด๋ฆ
FROM ํ
์ด๋ธ ์ด๋ฆ
WHERE ์กฐ๊ฑด
GROUP BY ํ๋ ์ด๋ฆ [ํํ์]
HAVING ์กฐ๊ฑด
ORDER BY ํ๋ ์ด๋ฆ ASC[DESC]
LIMIT ๋ณด์ฌ์ค ๋ฐ์ดํฐ ๊ฐฏ์
OFFSET ๊ฑด๋๋ธ ๊ฐฏ์
SELECT๋ฌธ ์คํ ์์
โ FROM
- SELECT ๋ฌธ์ ํ์ํ ํ
์ด๋ธ ์ ํ
โก WHERE
- WHERE ์กฐ๊ฑด์ ์ ์ด์ฉํ์ฌ ํ(row) ๋ฐ์ดํฐ ํํฐ๋ง (๊ทธ๋ฃนํจ์ ์ฌ์ฉ ๋ถ๊ฐ๋ฅ!! HAVING ๊ตฌ๋ฌธ์์๋ง)
โข GROUP BY
- GROUP BY ์ ์ ์ด์ฉํ์ฌ ํน์ ์ปฌ๋ผ์ ๊ทธ๋ฃนํ๋ฅผ ์ํ
โฃ HAVING
- HAVING ์ ์ ์ด์ฉํ์ฌ ๊ทธ๋ฃนํ๋ ๊ฒฐ๊ณผ์ ๋ํ ์กฐ๊ฑด ํํฐ๋ง
โค SELECT
- SELECT ์ ์์ ์ฌ์ฉํ ์ปฌ๋ผ ์ ํ
โฅ ORDER BY
- ORDER BY ์ ์ ์ด์ฉํ์ฌ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ ์ ๋ ฌ
โฆ LIMIT
- LIMIT ์ ์ ์ด์ฉํ์ฌ ์ถ๋ ฅํ ๋ฐ์ดํฐ์ ๊ฐ์ ์ ํ (MySQL, MariaDB ํ์ , Oracle์ ๋ฏธ์ง์)
GROUP BY ์ ์ ํน์ ํ๋๋ฅผ ์ง์ ํ์ง ์๋ ๊ฒฝ์ฐ, SELECT ์ ์์ ํด๋น ํ๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค!
๋ฌผ๋ก , ๊ทธ๋ฃน ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ง์ ํ ์๋ ์์ผ๋ ๊ธฐ๋ณธ์ ์ผ๋ก GROUP BY๋ ํด๋น ํ๋์ ๋ํด ์ค๋ณต๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฃนํ๋ ํ๋์ ๊ทธ๋ฃนํ๋์ง ์์ ํ๋๋ฅผ ๊ฐ์ด ์ถ๋ ฅํ๋ค๋ ๊ฑด ์์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค!
๋ํ, GROUP BY ์ ์๋ ์ปฌ๋ผ์ ์ง์ ๋ช ์ํ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ DATE_FORMAT(Column, '%Y-%m')๊ณผ ๊ฐ์ด ํ๋์ ํจ์๋ฅผ ์ ์ฉํ์ฌ ํํ์์ ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ ์๋ ์๋ค.
โ [์ฐธ๊ณ ] LIMIT
์ค๋ผํด์์๋ LIMIT ํค์๋๋ฅผ ์ง์ํ์ง ์์ผ๋ฏ๋ก ์ถ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ์์์๋ถํฐ ์ ํํ๊ณ ์ ํ๋ค๋ฉด ROWNUM (๊ฐ์ ๋ฒํธ)๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
ROWNUM์ ORDER BY ์ ์ ๊ฐ ๋ ์ฝ๋์ ๋ํด ๊ฐ์ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๋ฏ๋ก ์ธ๋ผ์ธ ๋ทฐ๋ฅผ ์ด์ฉํ์ฌ ORDER BY๋ฅผ ์ฒ๋ฆฌํ ๋ค์ ROWNUM์ ํ์ฉํด์ผ ํ๋ค!
'๐จโ๐ป Back End > MySQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Join (์กฐ์ธ) - ๋ด๋ถ ์กฐ์ธ (Inner Join) & ์ธ๋ถ ์กฐ์ธ (Outer Join) (0) | 2023.07.22 |
---|---|
SubQuery (์๋ธ์ฟผ๋ฆฌ) (0) | 2023.07.22 |
ERD (Entity-Relationship Diagram) (0) | 2023.07.21 |
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง (0) | 2023.07.21 |
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธ (0) | 2023.07.21 |