0. ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ์ธ๊ฐ์ง ๋ฐฉ๋ฒ
- ์ ๋ ์ selection : ํ ๋จ์๋ก ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ฐฉ์. ํ ์ด๋ธ ์ ์ฒด ๋ฐ์ดํฐ ์ค ๋ช๋ช ๊ฐ๋ก์ค์ ๋ฐ์ดํฐ๋ง ์ ํํ ๋ ์ฌ์ฉ
- ํ๋ก์ ์ projection : ์นผ๋ผ(์ด) ๋จ์๋ก ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ฐฉ์. ํ ์ด๋ธ ์ ์ฒด ํญ๋ชฉ ์ค ๋ช๋ช ์์ฑ์ ๋ฐ์ดํฐ๋ง ์ ํํ ๋ ์ฌ์ฉ
- ์กฐ์ธ join : ๋ ๊ฐ ์ด์์ ํ ์ด๋ธ์ ์ ์์ ์ฐ๊ฒฐํ์ฌ ๋ง์น ํ๋์ ํ ์ด๋ธ์ธ ๊ฒ ์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ฐฉ์
1. SELECT ๋ฌธ
- SELECT๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณด๊ด๋์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ฐ ์ฌ์ฉ
- SELECT์ ๊ณผ FROM์ ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ผ๋ก SELECT๋ฌธ์ ์์ฑ
- FROM ์ ์ ์ฌ๋ฌ ๊ฐ ํ ์ด๋ธ ์ง์ ์ด ๊ฐ๋ฅ, ์ ํํ ๋งํ๋ฉด ์ด๊ณผ ํ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ ์งํฉ์ด๋ฉด ๋ชจ๋ ์ง์ ๊ฐ๋ฅ( ๋ทฐview, ์๋ธ์ฟผ๋ฆฌsubquery ๋ฑ)
SELECT [์กฐํํ ์นผ๋ผ 1 ์ด๋ฆ], [์นผ๋ผ 2 ์ด๋ฆ], … , [์นผ๋ผ N ์ด๋ฆ]
FROM [์กฐํํ ํ
์ด๋ธ ์ด๋ฆ];
-- 1. ์ ์ฒด ์นผ๋ผ ์กฐํ
SELECT *
FROM EMP;
-- 2. ๋ถ๋ถ ์นผ๋ผ ์กฐํ
SELECT EMPNO, ENAME, DEPTNO
FROM EMP;
(1) * ๋ก ํ ์ด๋ธ ์ ์ฒด ์นผ๋ผ ์กฐํํ๊ธฐ : ์ ์คํฐ๋ฆฌ์คํฌ( * )๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ฒด ์นผ๋ผ ์กฐํ
(2) ์นผ๋ผ์ ์ผํ๋ก ๊ตฌ๋ถํ์ฌ ํ ์ด๋ธ ๋ถ๋ถ ์นผ๋ผ ์กฐํํ๊ธฐ : ๊ฐ ์ด ์ด๋ฆ์ ์ผํ( , )๋ก ๊ตฌ๋ถํ์ฌ ๋ถ๋ถ์ ์ธ ์นผ๋ผ๋ง ์กฐํ
2. DISTINCT ์ต์
- ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ํ DISTINCT๋ก ์ค๋ณต์ ์ ๊ฑฐ. SELECT์ ์ ์นผ๋ผ ์ด๋ฆ์ ๋ช ์ํ๊ธฐ ์ ์ ์ ํ์ ์ผ๋ก ์ฌ์ฉ
-- 1. ์นผ๋ผ์ด ํ๊ฐ์ธ ๊ฒฝ์ฐ
SELECT DISTINCT DEPNO
FROM EMP;
-- 2. ์นผ๋ผ์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ
SELECT DISTINCT JOB, DEPNO
FROM EMP;
-- 3. ์ค๋ณต๋๋ ์นผ๋ผ ์ ๊ฑฐ ์์ด ์ถ๋ ฅ
SELECT ALL JOB, DEPNO
FROM EMP;
(1) ์นผ๋ผ์ด ํ๊ฐ์ธ ๊ฒฝ์ฐ : SELECT์ ์ ๋ช ์ํ ์นผ๋ผ ์ค์ ๊ฐ์ ๋ด์ฉ์ด ๋ ๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ์ค๋ณต ํ์ ํ๊ฐ๋ง ๋จ๊ฒจ๋๊ณ ๋๋จธ์ง๋ ์ ๊ฑฐ
(2) ์นผ๋ผ์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ : ๊ฐ ์นผ๋ผ์ ๋ชจ๋ ์ค๋ณต๋ ํ๋ง ์ ๊ฑฐ.
-> ์ฒซ๋ฒ์งธ ํ : JOB = MANAGER, DEPTNO = 10
๋๋ฒ์งธ ํ : JOB = MANAGER, DEPTNO = 20 ์ฒซ๋ฒ์งธ ํ๊ณผ JOB์ด ๊ฐ์ง๋ง DEPTNO๊ฐ ๋ค๋ฅด๋ฏ๋ก ์ ๊ฑฐX
์ธ๋ฒ์งธ ํ : JOB = PRESIDENT, DEPTNO = 10 ์ฒซ๋ฒ์งธ ํ๊ณผ DEPTNO๊ฐ ๊ฐ์ง๋ง JOB์ด ๋ค๋ฅด๋ฏ๋ก ์ ๊ฑฐX
๋ค๋ฒ์งธ ํ : JOB = MANAGER, DEPTNO = 20 ๋๋ฒ์งธ ํ๊ณผ JOB๊ณผ DEPTNO ๋ชจ๋ ๊ฐ์ผ๋ฏ๋ก ์ ๊ฑฐ
(3) ALL๋ก ์ค๋ณต๋๋ ์นผ๋ผ ์ ๊ฑฐ ์์ด ์ถ๋ ฅ : ALL์ DISTINCT์ ๋ฐ๋๋ก ๋ฐ์ดํฐ ์ค๋ณต์ ์ ๊ฑฐํ์ง ์๊ณ ๊ทธ๋๋ก ์ถ๋ ฅ. ์ค๋ณต ์ค์ ์ด ์์ ๊ฒฝ์ฐ default๊ฐ์ด ALL์ด๊ธฐ ๋๋ฌธ์ ALL๋ DISTINCT๋ ์ฌ์ฉํ์ง ์์์ ๋์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ด
3. ALIAS ์ต์
- ๋ณ์นญ(alias) : ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์ต์ข ์ถ๋ ฅ๋๋ ์นผ๋ผ ์ด๋ฆ์ ์์๋ก ์ง์ ํ ์ ์์ผ๋ฉฐ ๋ณธ๋ ์นผ๋ผ ๋์ ์์๋ก ๋ถ์ด๋ ์ด๋ฆ
-- ์นผ๋ผ์ ์ฐ์ฐ์์ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ
SELECT ENAME, SAL, SAL*12+COMM, COMM
FROM EMP;
-- ์นผ๋ผ์ ๋ณ์นญ์ ์ง์ ํ์ฌ ์ถ๋ ฅ
SELECT ENAME, SAL, SAL*12+COMM ANNSAL, COMM FROM EMP;
SELECT ENAME, SAL, SAL*12+COMM "ANNSAL", COMM FROM EMP;
SELECT ENAME, SAL, SAL*12+COMM AS ANNSAL, COMM FROM EMP;
SELECT ENAME, SAL, SAL*12+COMM AS "ANNSAL", COMM FROM EMP;
- ๋ณ์นญ์ ์ฌ์ฉํ๋ ์ด์
1) ์กฐํํ๋ ค๋ ๋ฐ์ดํฐ์ ๋นํด ์นผ๋ผ ์ด๋ฆ์ด ๋๋ฌด ๊ธธ์ด์ ธ์ ๊ธด ์นผ๋ผ ์ด๋ฆ์ ์งง๊ณ ๊ฐ๋จํ ์ด๋ฆ์ผ๋ก ์๊ธฐ ์ฝ๊ฒ ์ถ๋ ฅํ๊ธฐ ์ํด
2) ๋ณด์์ด๋ ๋ฐ์ดํฐ ๋ ธ์ถ ๋ฌธ์ ๋๋ฌธ : ANNSAL์ ์ฌ์์ ์ฐ๊ฐ ์ด ์์ ์ ์๋ฏธํ๋ ๋ฐ์ดํฐ. ์ฐ๊ฐ ์ด ์์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๋์ถ๋๋์ง ๊ณ์ ์ ์์ฒด๊ฐ ์ด ์ด๋ฆ์ ํตํด ๋ ธ์ถ๋จ
- 3๋ฒ์งธ ๋ฐฉ์์ ๊ฐ์ฅ ์ ํธํ๋ค. ์ด์ ๋
1) AS ๊ฐ ๋ถ์ด์ผ ์ด๋ค ๋จ์ด๊ฐ ๋ณ์นญ์ธ์ง ์์๋ณด๊ธฐ ํธํ๊ธฐ ๋๋ฌธ
2) ํ๋ก๊ทธ๋๋ฐ ์ฝ๋์์ SQL๋ฌธ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ""๋ ๋ฌธ์์ด ๋ฐ์ดํฐ์ ์์๊ณผ ๋์ ์๋ฆฌ๋ ๊ธฐํธ๋ก์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๋ ์์ธ์ํฉ์ด ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ