์ค๋ณต ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ DISTINCT
SELECT๋ฌธ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ํ DISTINCT๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต์ ์ ๊ฑฐํ ์ ์๋ค.
DISTINCT๋ SELECT์ ์ ์ด ์ด๋ฆ์ ๋ช ์ํ๊ธฐ ์ ์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
DISTINCT๋ก ์ด ์ค๋ณต ์ ๊ฑฐํ๊ธฐ (์ด์ด 1๊ฐ์ธ ๊ฒฝ์ฐ)
์ด์ด 1๊ฐ์ธ ๊ฒฝ์ฐ DISTINCT๋ ๊ฐ๋จํ๋ค, SELECT์ ์ ๋ช ์ํ ์ด ์ค์์ ๊ฐ์ ๋ด์ฉ์ด 2๊ฐ ์ด์์ธ ๊ฒฝ์ฐ ์ค๋ณต ํ์ ํ๊ฐ๋ง ๋จ๊ฒจ๋๊ณ ๊ทธ ๋ฐ์ ํ์ ๋ชจ๋ ์ ๊ฑฐํ๋ค.
SELECT DISTINCT AGE
FORM STUDENT;
DISTINCT๋ก ์ด ์ค๋ณต ์ ๊ฑฐํ๊ธฐ (์ด์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ)
์ด์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ DISTINCT๋ SELECT์ ์ ๋ช ์ํ ๋ชจ๋ ์ด์ ๊ฐ์ด ์ผ์นํ ๊ฒฝ์ฐ์๋ง ์ค๋ณต์ ์ ๊ฑฐํ๋ค.
(๋ง์ฝ NAME๊ณผ AGE๋ฅผ SELECT์ ์ ๋ช ์ํ ๊ฒฝ์ฐ, 22์ด์ ์ ๋ํ๊ณผ 23์ด์ ์ ๋ํ์ ๊ฐ์ง ์๊ธฐ์ ๋ชจ๋ ์ถ๋ ฅ๋๋ค.)
SELECT DISTINCT AGE, NAME
FORM STUDENT;
ALL๋ก ์ค๋ณต๋๋ ์ด ์์ด ๊ทธ๋๋ก ์ถ๋ ฅํ๊ธฐ
ALL์ DISTINCT์ ๋ฐ๋๋ก ๋ฐ์ดํฐ ์ค๋ณต์ ์ ๊ฑฐํ์ง ์๊ณ ๊ทธ๋๋ก ์ถ๋ ฅํ๋ค.
SELECT์ ์ ๊ธฐ๋ณธ ์ค์ ์ด ALL์ด๊ธฐ ๋๋ฌธ์, ๋ณ๋ค๋ฅธ ์ค๋ณต ์ค์ ์ ํด์ฃผ์ง ์์ผ๋ฉด ์ค๋ณต์ ์ ๊ฑฐ๋์ง ์์ ์ฑ๋ก ์ถ๋ ฅ๋๋ค.
SELECT (ALL) AGE
FROM STUDENT;
๋ณ์นญ(alias) ์ค์ ํ๊ธฐ
์์์ ํ์ตํ SELECT๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด SELECT์ ์ ๋ช ์ํ ์ด ์ด๋ฆ์ด ๊ฒฐ๊ณผ ํ๋ฉด์ ์์ชฝ์ ์ถ๋ ฅ๋๋ค.
SQL๋ฌธ์์๋ ์ต์ข ์ถ๋ ฅ๋๋ ์ด ์ด๋ฆ์ ์์๋ก ์ง์ ํ ์๋ ์๋ค.
์ด๋ ๊ฒ ๋ณธ๋์ ์ด ์ด๋ฆ ๋์ ๋ถ์ด๋ ์ด๋ฆ์ ๋ณ์นญ(alias)์ด๋ผ๊ณ ํ๋ค.
์ด์ ๋ณ์นญ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋ฉด์, ์ถ๊ฐ๋ก ์ด์ ์ฐ์ฐ์์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋๋ก ํ๊ฒ ๋ค.
์ด๊ณผ ์ฐ์ฐ์
SELECT NAME, SAL, SAL*12+COMM, COMM
FROM EMP;
๋ ธ๋์์ผ๋ก ํ์ํ ๋ถ๋ถ์ ๋ค๋ฅธ ์ด๋ค๊ณผ๋ ๋ค๋ฅด๊ฒ, ํ๋ ์ด์์ ์ด, ์ซ์, ์ฐ์ฐ์์ ํจ๊ณ ์ฌ์ฉํ๋ค
*์ ๊ณฑํ๊ธฐ, +๋ ๋ํ๊ธฐ์ด๋ฉฐ, SAL์ ๊ธ์ฌ ๋ฐ์ดํฐ, COMM์ ๊ธ์ฌ ์ธ ์ถ๊ฐ ์๋น์ ์๋ฏธํ๋ค.
์ ์ฐ์ฐ์์ '์ฐ๊ฐ ์ด ์์ต'์ ๊ตฌํ๋ ์ฐ์ฐ์์ด๋ฉฐ, ์คํ ๊ฒฐ๊ณผ์ ์ด์ ๋ค์๊ณผ ๊ฐ๋ค.
NAME | SAL | SAL*12+COMM | COMM |
์ ๋ํ | 800 | ||
๊น์ ๊ฒธ | 1600 | 19500 | 300 |
์ฐ์ฐ์์ ์ฌ์ฉํ ์ด๋ ๋ค๋ฅธ ์ด๋ค๊ณผ ๋์ผํ๊ฒ SAL*12+COMM์ผ๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ์ ์ ์๋ค.
(์ถ๊ฐ๋ก '์ ๋ํ'์ COMM์ด NULL์ด๊ธฐ ๋๋ฌธ์ SAL*12+COMM์ด์ ๋ฐ์ดํฐ๊ฐ ์ถ๋ ฅ๋์ง ์์๋ค. ์ด์ ๋ํด์๋ ๋์ค์ ์์ธํ ์์๋ณด๊ฒ ๋ค.)
์์์ ์ฌ์ฉํ ์ฐ๊ฐ ์ด ์์ต์ ๊ณ์ฐํ๋ ์ฐ์ฐใด์์ ์ด๋ฆ์ด ๋๋ฌด ๊ธธ๊ณ , ๋ฌด์์ ์๋ฏธํ๋์ง ํ ๋์ ํ์ ํ๊ธฐ๊ฐ ์ด๋ ต๋ค.
์์๊ฐ์ด ๊ธด ์ด์ ์ด๋ฆ์ '์งง๊ณ ๊ฐ๋จํ ๋ค๋ฅธ ์ด๋ฆ'์ผ๋ก ์ถ๋ ฅํ ๋ ๋ณ์นญ์ ์ฌ์ฉํ๋ค.
๋ณ์นญ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ
๋ณ์นญ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์๋ ๋ค์ 4๊ฐ์ง์ ๋ฐฉ๋ฒ์ด ์๋ค.
์์๋ฅผ ์ํด ์์์ ์กฐํํ SAL*12+COMM์ ANNSAL(annual salary)๋ก ์กฐํํด๋ณด๋๋ก ํ์.
์ฌ์ฉ ๋ฐฉ๋ฒ | ์ค๋ช |
SAL*12+COMM ANNSAL | ์ฐ์ฐ ๋ฐ ๊ฐ๊ณต๋ ๋ฌธ์ฅ ์ดํ ํ ์นธ ๋์ฐ๊ณ ๋ณ์นญ ์ง์ |
SAL*12+COMM "ANNSAL" | ์ฐ์ฐ ๋ฐ ๊ฐ๊ณต๋ ๋ฌธ์ฅ ์ดํ ํ ์นธ ๋์ฐ๊ณ ๋ณ์นญ์ ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ด ์ง์ |
SAL*12+COMM AS ANNSAL | ์ฐ์ฐ ๋ฐ ๊ฐ๊ณต๋ ๋ฌธ์ฅ ์ดํ ํ ์นธ ๋์ด ํ 'AS, ํ ์นธ ๋ค์ ๋ณ์นญ ์ง์ |
SAL*12+COMM AS "ANNSAL" | ์ฐ์ฐ ๋ฐ ๊ฐ๊ณต๋ ๋ฌธ์ฅ ์ดํ ํ ์นธ ๋์ด ํ 'AS, ํ ์นธ ๋ค์ ๋ณ์นญ์ ํฐ๋ฐ์ดํ๋ก ๋ฌถ์ด ์ง์ |
์ฌ์ฉํ๋ฉด ์๋์ ๊ฐ๋ค.
SELECT NAME, SAL, SAL*12+COMM AS ANNSAL, COMM
FROM EMP;
TIP - ์ค๋ฌด์์์ ๋ณ์นญ ์ง์
(์ฑ ์ ๋์จ ๋ด์ฉ์ ๋๋ค..!)
์ค๋ฌด์์๋ ๋ณ์นญ์ ์ง์ ํ๋ 4๊ฐ์ง ๋ฐฉ์ ์ค ์ธ ๋ฒ์งธ ๋ฐฉ์์ ์ ํธํ๋ ๊ฒฝํฅ์ด ์๋ค.
์ฐ์ 'AS'๊ฐ ๋ถ๋ ํ์์ ์ ํธํ๋ ์ด์ ๋ ์กฐํํด์ผ ํ ์ด์ด ์์ญ, ์๋ฐฑ ๊ฐ์ผ ๊ฒฝ์ฐ์ ์ด๋ค ๋จ์ด๊ฐ ๋ณ์นญ์ธ์ง ์์๋ณด๊ธฐ ํธํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ํ ๊ฐ์ง ์ด์ ๋ ํฐ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ ค๋ ๊ฐ๋ฐ์๋ค์ ์ต๊ด ๋๋ฌธ์ด๋ค.
(์กฐ๊ธ ๋ ์๋๋ฐ ์ฌ๊ธฐ๊น์ง๋ง ์๊ณ ๋์ด๊ฐ๋ ๋ ๊ฑฐ ๊ฐ๋ค.)
์ํ๋ ์์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ ORDER BY
SELECT๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์๊ฐ์ด๋ ์ด๋ฆ ์์ ๋๋ ์ด๋ค ๋ค๋ฅธ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํด์ ์ถ๋ ฅํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๊ธด๋ค.
์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌ๋ ์ํ๋ก ์ถ๋ ฅํ๊ธฐ ์ํด ORDER BY์ ์ ์ฌ์ฉํ๋ค.
ORDER BY์ ์ SELECT๋ฌธ์ ์์ฑํ ๋ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ์ ์ค ๊ฐ์ฅ ๋ง์ง๋ง ๋ถ๋ถ์ ์ฌ์ฉํ๋ค.
SELECT [์กฐํํ ์ด1 ์ด๋ฆ], [์กฐํํ ์ด2 ์ด๋ฆ], ...
FROM [์กฐํํ ํ ์ด๋ธ ์ด๋ฆ]
.
. (๊ทธ ๋ฐ์ ์ ๋ค)
.
ORDER BY [์ ๋ ฌํ๋ ค๋ ์ด ์ด๋ฆ (์ฌ๋ฌ ์ด ์ง์ ๊ฐ๋ฅ)] [์ ๋ ฌ ์ต์ ];
ํค์๋ | ํ์ ์์ | ์ ํ ์์ | ์ค๋ช |
ORDER BY | ์ ๋ ฌํ๋ ค๋ ์ด ์ด๋ฆ์ ํ๋ ์ด์ ์ง์ | ์ ๋ ฌํ๋ ์ด๋ง๋ค ์ค๋ฆ์ฐจ์(ASC), ๋ด๋ฆผ์ฐจ์(DESC) ์ง์ | ORDER BY์ ์ ์ง์ ํ ์ด์ ๋จผ์ ์ง์ ํ ์ด์ ์ฐ์ ์ผ๋ก ์ ๋ ฌํ๋ค. ๋ง์ฝ ์ ๋ ฌ ์ต์ ฉ์ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ค๋ฆ์ฐจ์์ด ์ค์ ๋๋ค. |
์ค๋ฆ์ฐจ์(ASC) ์ฌ์ฉํ๊ธฐ
ORDER BY์ ์๋ ์ ๋ ฌ ๊ธฐ์ค์ด ๋๋ ์ด ์ด๋ฆ์ ์ง์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์ด๋ฆ์ ํ๋ ๋๋ ์ฌ๋ฌ๊ฐ์ ์ด์ ์ง์ ํ ์ ์๋ค.
SELECT *
FROM EMP
ORDER BY SAL; (์ ๋ ฌ ์ต์ ์ ์ง์ ํ์ง ์์์ผ๋ฏ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ)
์ SQL์ ์คํํ๋ฉด ๊ธ์ฌ๊ฐ ๋ฎ์ ์ฌ์๋ถํฐ ๊ธ์ฌ๊ฐ ๋์ ์ฌ์ ์์๋ก ์ ๋ ฌ๋๋ค.
๋ด๋ฆผ์ฐจ์(DESC) ์ฌ์ฉํ๊ธฐ
SELECT *
FROM EMP
ORDER BY SAL DESC;
์ฌ๋ฌ ๊ฐ์ ์ด์ ๋ด๋ฆผ์ฐจ์๊ณผ ์ค๋ฆ์ฐจ์ ๋์์ ์ฌ์ฉํ๊ธฐ
ORDER BY์ ์๋ ์ฐ์ ์์๋ฅผ ๊ณ ๋ คํ์ฌ ์ฌ๋ฌ ๊ฐ์ ์ ๋ ฌ ๊ธฐ์ค์ ์ง์ ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ๋ถ์ ๋ฒํธ(DEPTNO)๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ , ๋ถ์ ๋ฒํธ๊ฐ ๊ฐ์ ์ฌ์์ผ ๊ฒฝ์ฐ ๊ธ์ฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ์๋ ์๋ค.
์ ์์๋ฅผ ํ๋ฒ SQL๋ฌธ์ผ๋ก ์์ฑํด๋ณด์.
SELECT *
FROM EMP
ORDER BY DEPTNO (ASC), SAL DESC;
ORDER BY์ ์ฌ์ฉ ์ ์ฃผ์์ฌํญ
ORDER BY์ ์ ๊ผญ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
์ฌ๊ธฐ์ ๊ธฐ ํฉ์ด์ ธ ์๋ ๋ฐ์ดํฐ๋ค์ ํน์ ๊ธฐ์ค์ ๋ฐ๋ผ ๊ฐ์ง๋ฐํ ์์๋ฅผ ๋ง์ถ๋ ๊ฒ์ ๋ง์ ์์, ์ฆ ๋ง์ ๋น์ฉ์ ์๋ชจํ๊ธฐ ๋๋ฌธ์ด๋ค.
ORDER BY์ ์ด ์กด์ฌํ ๊ฒฝ์ฐ SELECT๋ฌธ์ ํตํด ์กฐํํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํ์ ํ ์ํ์์ ORDER BY์ ์ ๋ช ์๋ ๊ธฐ์ค์ ๋ฐ๋ผ ์ ๋ ฌํ๋ค. ์ด๋ ๋ฐ์ดํฐ์ ์ ๋๋ ์ ๋ ฌํ๋ ๋ฐฉ์์ ๋ฐ๋ผ์ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ๋ ์๊ฐ๋ณด๋ค ์ ๋ ฌํ๋ ๋ฐ ๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆด ์๋ ์๋ค. ์ฆ ์ ๋ ฌ์ ํ์ง ์์ผ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ ๋นจ๋ฆฌ ์ถ๋ ฅํ ์ ์๋ค๋ ์ด์ผ๊ธฐ์ด๋ค.(์ด์ฐ๋ณด๋ฉด ๋น์ฐํ ์๋ฆฌ์ด๋ค.)
SQL๋ฌธ์ ํจ์จ์ด ๋ฎ์์ง๋ค๋ ๊ฒ์ ์๋น์ค์ ์๋ต ์๊ฐ์ด ๋๋ ค์ง๋ค๋ ๊ฒ์ด๋ฏ๋ก ๋ฐ๋ผ์ ์ ๋ ฌ์ด ๊ผญ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด ORDER BY์ ์ ๋ฃ์ง ์๋๋ก ์ฃผ์ํ์.