1. Select๋ฌธ ์๊ฐ
Select๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ SQL์ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ ์ค ํ๋์ ๋๋ค. ์ด ๋ฌธ์ฅ์ ์ฌ์ฉํ์ฌ ์ํ๋ ํ ์ด๋ธ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ , ์กฐ๊ฑด์ ์ง์ ํ๊ฑฐ๋ ์ ๋ ฌํ์ฌ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
2. Select๋ฌธ์ ๊ธฐ๋ณธ ํ์
Select๋ฌธ์ ๊ธฐ๋ณธ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
SELECT column1, column2, ...
FROM table_name;
์ ํ์์์ column1
, column2
๋ ์กฐํํ๊ณ ์ ํ๋ ํ๋(์ด)์ ์ด๋ฆ์ด๋ฉฐ, table_name
์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ํ
์ด๋ธ์ ์ด๋ฆ์
๋๋ค. ์ด๋ *
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
3. Select๋ฌธ์ ์กฐ๊ฑด์ ์ฌ์ฉ๋ฒ
Select๋ฌธ์์๋ WHERE ์ ์ ์ฌ์ฉํ์ฌ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง์ ์กฐํํ ์ ์์ต๋๋ค. WHERE ์ ์ ๋ค์๊ณผ ๊ฐ์ด ๊ธฐ์ ๋ฉ๋๋ค.
SELECT column1, column2, ...
FROM table_name
WHERE condition;
condition
์ ํ๋ ๊ฐ ๋น๊ต๋ฅผ ์ํด ์ฌ์ฉ๋๋ฉฐ, ์์๋ฐ์ดํ('')๋ก ๊ฐ์ ๊ฐ์ธ๋ ๊ฒ์ด ์ผ๋ฐ์ ์
๋๋ค. ์๋ฅผ ๋ค์ด, age
ํ๋๊ฐ 30 ์ด์์ธ ๋ฐ์ดํฐ๋ง ์กฐํํ๊ณ ์ถ๋ค๋ฉด WHERE age >= 30
๊ณผ ๊ฐ์ด ์์ฑํฉ๋๋ค.
4. Select๋ฌธ์ ์ ๋ ฌ ๊ธฐ๋ฅ
Select๋ฌธ์์๋ ORDER BY ์ ์ ์ด์ฉํด ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ํน์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ ๋ ฌํ ์ ์์ต๋๋ค. ORDER BY ์ ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค.
SELECT column1, column2, ...
FROM table_name
ORDER BY column_name [ASC|DESC];
column_name
์ ์ ๋ ฌ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉํ ํ๋(์ด)์ ์ด๋ฆ์
๋๋ค. ์ต์
์ผ๋ก ASC
๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ, DESC
๋ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ ์ง์ ํ ์ ์์ต๋๋ค.
5. Select๋ฌธ์ ๊ทธ๋ฃนํ ๊ธฐ๋ฅ
Select๋ฌธ์์๋ GROUP BY ์ ์ ์ฌ์ฉํ์ฌ ํน์ ํ๋ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํ๋ ๊ฒฐ๊ณผ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค. GROUP BY ์ ์ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค.
SELECT column1, column2, ...
FROM table_name
GROUP BY column_name;
column_name
์ ๊ทธ๋ฃนํํ ํ๋(์ด)์ ์ด๋ฆ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋์ผํ ๊ฐ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ด ํต๊ณ๋ ์ง๊ณ ๋ฑ์ ํ์ฉํ ์ ์์ต๋๋ค.
1. Select๋ฌธ ์๊ฐ
Select๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ SQL์ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ ์ค ํ๋์ ๋๋ค. ์ด ๋ฌธ์ฅ์ ์ฌ์ฉํ์ฌ ์ํ๋ ํ ์ด๋ธ์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ , ์กฐ๊ฑด์ ์ง์ ํ๊ฑฐ๋ ์ ๋ ฌํ์ฌ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก Select๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๊ธฐ ์ํด ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๊ตฌ๋ฌธ์ ๋๋ค. ์ด๋ฅผ ํตํด ํน์ ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ๋ถ์ํ ์ ์์ต๋๋ค. Select๋ฌธ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ถ์ ์์ ์ ์ํด ํ์์ ์ผ๋ก ์์์ผ ํ๋ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ ์ค ํ๋๋ก, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ๋ฐ ๊ฐ๋ฐ ์์ ์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
๋ฐ์ดํฐ ์กฐํ์ ์์ด์ ๋ชฉํ๋ ์ํ๋ ์กฐ๊ฑด์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ์ ํํ๋ ๊ฒ์ ๋๋ค. Select๋ฌธ์ ์ด๋ฅผ ์ํด WHERE ์ ์ ์ฌ์ฉํ์ฌ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง์ ์กฐํํ ์ ์์ต๋๋ค. WHERE ์ ์ ํ๋ ๊ฐ ๋น๊ต๋ฅผ ์ํด ์ฌ์ฉ๋๋ฉฐ, ์์๋ฐ์ดํ('')๋ก ๊ฐ์ ๊ฐ์ธ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ์ํ๋ ์กฐ๊ฑด์ผ๋ก ํํฐ๋ง๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ํ, ๋ฐ์ดํฐ์ ์ ๋ ฌ ์ญ์ ์ค์ํ ์์์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ํ๋ ์์๋ก ์ ๋ ฌํ์ฌ ๋ณด๋ ๊ฒ์ ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ์๊ฐํ ์์ ์ ํฐ ๋์์ด ๋ฉ๋๋ค. Select๋ฌธ์์๋ ORDER BY ์ ์ ์ด์ฉํด ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ํน์ ๊ธฐ์ค์ ๋ฐ๋ผ ์ ๋ ฌํ ์ ์์ต๋๋ค. ์ ๋ ฌ์ ๊ธฐ์ค์ด ๋๋ ํ๋(์ด)์ ์ด๋ฆ์ ์ง์ ํ๊ณ , ์ค๋ฆ์ฐจ์ ๋๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ์ ๊ทธ๋ฃนํ ์ญ์ Select๋ฌธ์์ ์ค์ํ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค. ํน์ ํ๋ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํ๋ ๊ฒฐ๊ณผ๋ฅผ ์กฐํํ์ฌ ํต๊ณ๋ ์ง๊ณ๋ฅผ ํ ์ ์์ต๋๋ค. GROUP BY ์ ์ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ ์ ์์ผ๋ฉฐ, ๋์ผํ ๊ฐ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ํน์ ํ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฌถ์ด ํจ๊ณผ์ ์ธ ๋ฐ์ดํฐ ์์ฝ ๋ฐ ๋ถ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
์ด์ฒ๋ผ Select๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ณ ๋ถ์ํ๋๋ฐ ์์ด์ ํ์์ ์ธ ์ญํ ์ ํ๋ ๊ตฌ๋ฌธ์ ๋๋ค. ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ์ ํํ๊ณ , ์กฐ๊ฑด์ ์ง์ ํ์ฌ ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ผ๋ฉฐ, ์ ๋ ฌ๊ณผ ๊ทธ๋ฃนํ๋ฅผ ํตํด ๋ฐ์ดํฐ์ ๊ฐ๊ณต ๋ฐ ๋ถ์ ์์ ์ ์ฉ์ดํ๊ฒ ํ ์ ์์ต๋๋ค. ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๊ณ ์ต์ํด์ง๋ฉด ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๋ถ์ ์์ ์ ์์ด์ ๋์ฑ ํจ์จ์ ์ด๊ณ ํจ๊ณผ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
2. Select๋ฌธ์ ๊ธฐ๋ณธ ํ์
Select๋ฌธ์ ๊ธฐ๋ณธ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
SELECT column1, column2, ...
FROM table_name;
์ ํ์์์ column1
, column2
๋ ์กฐํํ๊ณ ์ ํ๋ ํ๋(์ด)์ ์ด๋ฆ์ด๋ฉฐ, table_name
์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ํ
์ด๋ธ์ ์ด๋ฆ์
๋๋ค. ์ด๋ *
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํ๋๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
Select๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ๋, ์ํ๋ ์ด(ํ๋)์ ์ง์ ํ์ฌ ์ ํํ๋ฉด ๋ฉ๋๋ค. ํ์ํ ์ด์ ์ด๋ฆ์ ์ผํ๋ก ๊ตฌ๋ถํ์ฌ ๋์ดํ๊ณ , FROM ๋ค์ ํ ์ด๋ธ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. SELECT ๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ์ํ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ ์ญํ ์ ์ํํ๋ฏ๋ก, ์ด ๊ธฐ๋ณธ ํ์์ ์ดํดํ๋ฉด ๋ฐ์ดํฐ ์กฐํ ์์ ์ ํฐ ๋์์ด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ํ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ 'students'๋ผ๋ ํ ์ด๋ธ์์ 'name'๊ณผ 'age' ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด Select๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค.
SELECT name, age
FROM students;
์ด๋ ๊ฒ ์์ฑํ๋ฉด 'students' ํ ์ด๋ธ์์ 'name'๊ณผ 'age' ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ๋ฉ๋๋ค.
๋ํ, 'students' ํ ์ด๋ธ์ ๋ชจ๋ ์ด(ํ๋)์ ์ ํํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด Select๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค.
SELECT *
FROM students;
์์ ๊ฐ์ด *
๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ด์ ์ ํํ๋ฉด 'students' ํ
์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค. ํ์ง๋ง ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋๋ ํ์ํ ์ด๋ค๋ง ์ ํํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ผ ์ ์์ผ๋ฏ๋ก, ํ์์ ๋ง๊ฒ ์ด์ ์ง์ ํ์ฌ ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ด์ฒ๋ผ Select๋ฌธ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ํ ์ด(ํ๋)์ ์ ํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์ญํ ์ ํฉ๋๋ค. ํ์ํ ์ ๋ณด๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ํํํ์ฌ Select๋ฌธ์ ์์ฑํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
3. Select๋ฌธ์ ์กฐ๊ฑด์ ์ฌ์ฉ๋ฒ
Select๋ฌธ์์ ์กฐ๊ฑด์ ์ ์ฌ์ฉํ์ฌ ์ํ๋ ์กฐ๊ฑด์ ์ถฉ์กฑํ๋ ๋ฐ์ดํฐ๋ง์ ์ ํํ ์ ์์ต๋๋ค. WHERE ์ ์ ์ด์ฉํ์ฌ ์กฐ๊ฑด์ ์ง์ ํ๊ณ , ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.
์กฐ๊ฑด์ ํน์ ํ๋(์ด)์ ๊ฐ๊ณผ ๋น๊ตํ์ฌ ์ฐธ(True) ๋๋ ๊ฑฐ์ง(False)์ผ๋ก ํ๋จ๋๋ ์์ผ๋ก ํํ๋ฉ๋๋ค. ์ฃผ๋ก ํ๋์ ๊ฐ๊ณผ ๋น๊ตํ๊ธฐ ์ํด ๋น๊ต ์ฐ์ฐ์(=, <>, <, <=, >, >=)์ ๋ ผ๋ฆฌ ์ฐ์ฐ์(AND, OR, NOT)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์๋ฅผ ๋ค์ด, 'students' ํ ์ด๋ธ์์ ๋์ด๊ฐ 20 ์ด์์ธ ํ์๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด Select๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค.
SELECT *
FROM students
WHERE age >= 20;
์์ ์์์์๋ WHERE ์ ์์ 'age >= 20'์ด๋ผ๋ ์กฐ๊ฑด์ ์ง์ ํ์ฌ ๋์ด๊ฐ 20 ์ด์์ธ ํ์๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ 'age'๋ ๋์ด๋ฅผ ๋ํ๋ด๋ ์ด์ ์ด๋ฆ์ด๋ฉฐ, '>='๋ ํฌ๊ฑฐ๋ ๊ฐ๋ค๋ ๋น๊ต ์ฐ์ฐ์์ ๋๋ค. ์ด๋ ๊ฒ ์กฐ๊ฑด์ ์ง์ ํ๋ฉด ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง์ ์กฐํํ ์ ์์ต๋๋ค.
์ฌ๋ฌ ๊ฐ์ ์กฐ๊ฑด์ ์กฐํฉํ๊ณ ์ถ์ ๋๋ ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ๊ฒฐํฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 'students' ํ ์ด๋ธ์์ ์ด๋ฆ์ด 'John'์ด๊ณ ์ฑ๋ณ์ด '๋จ์'์ธ ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด Select๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค.
SELECT *
FROM students
WHERE name = 'John' AND gender = '๋จ์';
์์ ์์์์๋ WHERE ์ ์์ 'name = 'John''๊ณผ 'gender = '๋จ์''๋ผ๋ ๋ ๊ฐ์ ์กฐ๊ฑด์ AND ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐํฉํ์์ต๋๋ค. ์ด๋ ๊ฒ ์กฐ๊ฑด์ ๊ฒฐํฉํ์ฌ ์ํ๋ ์กฐ๊ฑด์ ๊ตฌ์ฒด์ ์ผ๋ก ํํํ ์ ์์ต๋๋ค.
์ด์ฒ๋ผ Select๋ฌธ์์ ์กฐ๊ฑด์ ์ ์ฌ์ฉํ์ฌ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ง์ ์ ํํ ์ ์์ต๋๋ค. ํ์ํ ์กฐ๊ฑด์ ์ ํํ๊ฒ ํํํ์ฌ Select๋ฌธ์ ์์ฑํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ค ์ ํํ๊ฒ ํํฐ๋งํ ์ ์์ต๋๋ค.
4. Select๋ฌธ์ ์ ๋ ฌ ๊ธฐ๋ฅ
Select๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ๋, ์ํ๋ ์ ๋ ฌ ์์๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด ORDER BY ์ ์ ์ฌ์ฉํฉ๋๋ค.
ORDER BY ์ ์ Select๋ฌธ์ ๋ง์ง๋ง์ ์์นํ๋ฉฐ, ์ ํํ ์ด(ํ๋)์ ๊ฐ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฆ์ฐจ์(ASC)์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ง๋ง, ๋ด๋ฆผ์ฐจ์(DESC)์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ์ ๋๋ DESC ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, 'students' ํ ์ด๋ธ์์ ๋์ด๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด Select๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค.
SELECT *
FROM students
ORDER BY age ASC;
์์ ์์์์๋ ORDER BY ์ ์์ 'age ASC'๋ผ๋ ์ ๋ ฌ ์กฐ๊ฑด์ ์ง์ ํ์ฌ ๋์ด๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ 'ASC'๋ ์ค๋ฆ์ฐจ์์ ๋ํ๋ด๋ ํค์๋์ ๋๋ค. ๋ฐ๋ผ์ ๋์ด๊ฐ ์์ ํ์๋ถํฐ ํฐ ํ์ ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ํ๋ฉ๋๋ค.
๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ์ ๋๋ ASC ๋์ DESC ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, 'students' ํ ์ด๋ธ์์ ์ฑ์ ์ด ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด Select๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค.
SELECT *
FROM students
ORDER BY score DESC;
์์ ์์์์๋ ORDER BY ์ ์์ 'score DESC'๋ผ๋ ์ ๋ ฌ ์กฐ๊ฑด์ ์ง์ ํ์ฌ ์ฑ์ ์ด ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ 'DESC'๋ ๋ด๋ฆผ์ฐจ์์ ๋ํ๋ด๋ ํค์๋์ ๋๋ค. ๋ฐ๋ผ์ ์ฑ์ ์ด ๋์ ํ์๋ถํฐ ๋ฎ์ ํ์ ์์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ํ๋ฉ๋๋ค.
์ด์ฒ๋ผ Select๋ฌธ์์ ORDER BY ์ ์ ์ฌ์ฉํ์ฌ ์ํ๋ ์ ๋ ฌ ์์๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ์ ์์ต๋๋ค. ํ์ํ ์ด(ํ๋)์ ์ ํํ๊ณ ORDER BY ์ ์ ์ ์ ํ ์ ๋ ฌ ์กฐ๊ฑด์ ์ง์ ํ์ฌ Select๋ฌธ์ ์์ฑํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ์ํ๋ ์์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.
5. Select๋ฌธ์ ๊ทธ๋ฃนํ ๊ธฐ๋ฅ
Select๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ๋, ํน์ ์ด(ํ๋)์ ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด GROUP BY ์ ์ ์ฌ์ฉํฉ๋๋ค.
GROUP BY ์ ์ Select๋ฌธ์ ๋์ค์ ์์นํ๋ฉฐ, ์ ํํ ์ด์ ๊ฐ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค. ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ๋ ๊ทธ๋ฃน๋ณ๋ก ํ ๊ฐ์ ํ์ผ๋ก ์ถ๋ ฅ๋ฉ๋๋ค. GROUP BY ์ ์ ์ฌ์ฉํ ๋๋ ์ฃผ๋ก ์ง๊ณ ํจ์๋ฅผ ํจ๊ป ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน๋ณ๋ก ๋ฐ์ดํฐ๋ฅผ ์ง๊ณํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, 'students' ํ ์ด๋ธ์์ ์ฑ๋ณ ๋ณ๋ก ํ๊ท ๋์ด๋ฅผ ์ถ๋ ฅํ๊ณ ์ถ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด Select๋ฌธ์ ์์ฑํ ์ ์์ต๋๋ค.
SELECT gender, AVG(age) as average_age
FROM students
GROUP BY gender;
์์ ์์์์๋ GROUP BY ์ ์์ 'gender' ์ด์ ์ ํํ์ฌ ์ฑ๋ณ ๋ณ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํฉ๋๋ค. ์ดํ SELECT ๋ฌธ์์ AVG ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ฃน ๋ณ๋ก ํ๊ท ๋์ด๋ฅผ ๊ณ์ฐํฉ๋๋ค. 'as average_age'๋ ๊ณ์ฐ๋ ํ๊ท ๋์ด๋ฅผ 'average_age'๋ผ๋ ๋ณ์นญ์ผ๋ก ์ง์ ํ์ฌ ์ถ๋ ฅํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ ๋๋ ๊ฐ ๊ทธ๋ฃน๋ณ๋ก ํ ๊ฐ์ ํ์ด ์ถ๋ ฅ๋ฉ๋๋ค. ์์ ์์์์๋ ์ฑ๋ณ '๋จ์'์ '์ฌ์' ๋ ๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๊ทธ๋ฃนํ๋์๊ธฐ ๋๋ฌธ์, ์ถ๋ ฅ๋๋ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ๋๋ค.
gender | average_age
-------|-------------
๋จ์ | 25
์ฌ์ | 23
์ด์ฒ๋ผ Select๋ฌธ์์ GROUP BY ์ ์ ์ฌ์ฉํ์ฌ ํน์ ์ด์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค. ๊ทธ๋ฃนํ๋ ๋ฐ์ดํฐ๋ฅผ ์ง๊ณ ํจ์์ ํจ๊ป ์ฌ์ฉํ๋ฉด, ๊ทธ๋ฃน ๋ณ๋ก ์ํ๋ ์ง๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ํ์ํ ์ด์ ์ ํํ๊ณ GROUP BY ์ ์ ์ ์ ํ ๊ทธ๋ฃนํ ๊ธฐ์ค์ ์ง์ ํ์ฌ Select๋ฌธ์ ์์ฑํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ๊ทธ๋ฃนํ๋ ๊ฒฐ๊ณผ๋ฅผ ์กฐํํ ์ ์์ต๋๋ค.
๋๊ธ