1. WHERE ์
- ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ํน์ ์กฐ๊ฑด์ ๊ธฐ์ค์ผ๋ก ์ํ๋ ํ์ ์ถ๋ ฅํ๋ ๋ฐ ์ฌ์ฉ
SELECT [์กฐํํ ์นผ๋ผ 1 ์ด๋ฆ], [์นผ๋ผ 2 ์ด๋ฆ], … , [์นผ๋ผ N ์ด๋ฆ]
FROM [์กฐํํ ํ
์ด๋ธ ์ด๋ฆ]
WHERE [์กฐํํ ์นผ๋ผ์ ์ ๋ณํ๊ธฐ ์ํ ์กฐ๊ฑด์];
-- ์กฐ๊ฑด์์ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ์นผ๋ผ๋ง ์ถ๋ ฅ
SELECT * FROM EMP
WHERE DEPTNO = 30;
- WHERE์ ์ด ํฌํจ๋ SELECT๋ฌธ์ ์คํํ๋ฉด ์กฐํํ ํ ์ด๋ธ์ ๊ฐ ์นผ๋ผ์ WHERE์ ์ ์กฐ๊ฑด์์ ๋์ ํ์ฌ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ์นผ๋ผ๋ง ์ถ๋ ฅ
2. ๋ ผ๋ฆฌ ์ฐ์ฐ์ AND , OR
- WHERE์ ์์ ์กฐ๊ฑด์์ ์ฌ๋ฌ ๊ฐ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ ผ๋ฆฌ ์ฐ์ฐ์ AND, OR
-- 1. AND
SELECT * FROM EMP
WHERE DEPTNO = 30
AND JOB = 'SALESMAN';
-- 2. OR
SELECT * FROM EMP
WHERE DEPTNO = 30
AND JOB = 'SALESMAN';
(1) AND ์ฐ์ฐ์ : DEPTNO๊ฐ 30์ด๊ณ ๋์์ JOB์ด SALESMAN์ธ ์นผ๋ผ๋ง ์ถ๋ ฅ. ํผ์ฐ์ฐ์๊ฐ ๋ชจ๋ ์ฐธ์ผ๋๋ง ์ฐธ
(2) OR ์ฐ์ฐ์ : DEPTNO๊ฐ 30์ด๊ฑฐ๋ JOB์ด SALESMAN์ธ ์นผ๋ผ ์ถ๋ ฅ. ํผ์ฐ์ฐ์๊ฐ ํ๋๋ผ๋ ์ฐธ์ด๋ฉด ์ฐธ
- SQL์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ํ์์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ์ง ์์ง๋ง 'SALESMAN'๊ณผ ๊ฐ์ด ํ ์ด๋ธ ์์ ๋ค์ด์๋ ๋ฌธ์ ๋๋ ๋ฌธ์์ด ๋ฐ์ดํฐ๋ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ๊ธฐ ๋๋ฌธ์ ์ฃผ์ํ ๊ฒ
- WHERE์ ์ ์ฌ์ฉํ๋ ์กฐ๊ฑด์์ ๊ฐ์๋ ์ฌ์ค์ ์ ํ์ด ์๋ค. A AND B AND C AND … ๋ ๊ฐ๋ฅํ๋ค
3. ์ฐ์ ์ฐ์ฐ์ +, -, *, /
-- 1. ๋ํ๊ธฐ
SELECT * FROM EMP
WHERE EMPNO + 10 = 3000;
-- 2. ๋นผ๊ธฐ
SELECT * FROM EMP
WHERE EMPNO - 10 = 3000;
-- 3. ๊ณฑํ๊ธฐ
SELECT * FROM EMP
WHERE SAL * 12 = 12000;
-- 4. ๋๋๊ธฐ
SELECT * FROM EMP
WHERE SAL * 12 / 3000 = 4;
- ์ผ๋ฐ์ ์ธ ์ฐ์ ์ฐ์ฐ์๋ ๋ชจ๋ ์ฌ์ฉ ๊ฐ๋ฅ
- ๋๋๊ธฐ ์ฐ์ฐ์(%)๋ SQL๋ฌธ์์ ์ ๊ณตํ์ง ์์. ๋์ ์ค๋ผํด์์๋ mod ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋๋จธ์ง ์ฐ์ฐ ๊ธฐ๋ฅ ์ฌ์ฉ์ด ๊ฐ๋ฅ
4. ๋์ ๋น๊ต ์ฐ์ฐ์
-- 1. ์ด์
SELECT * FROM EMP
WHERE SAL >= 3000;
-- 2. ์ด๊ณผ
SELECT * FROM EMP
WHERE SAL > 3000;
-- 3. ์ดํ
SELECT * FROM EMP
WHERE SAL <= 3000;
-- 4. ๋ฏธ๋ง
SELECT * FROM EMP
WHERE SAL < 3000;
-- 5. ๋ฌธ์ ํ๋ ๋น๊ต
SELECT * FROM EMP
WHERE ENAME >= 'F';
-- 6. ๋ฌธ์์ด ๋น๊ต
SELECT * FROM EMP
WHERE ENAME >= 'FORZ';
(1) ์ซ์๋ ์ผ๋ฐ์ ์ธ ๋์ ๋น๊ต ์ฐ์ฐ์์ ๊ท์น์ ๋ฐ๋ฆ
(2) ๋ฌธ์์ด์ ์ํ๋ฒณ ์์๋ก ๋ฌธ์์ด์ ๋์๋ฅผ ๋น๊ต
5. ๋ฑ๊ฐ ๋น๊ต ์ฐ์ฐ์
-- 1. ํผ์ฐ์ฐ์๊ฐ ๊ฐ์ ๋ TRUE
SELECT * FROM EMP
WHERE SAL = 3000;
-- 2. ํผ์ฐ์ฐ์๊ฐ ๋ค๋ฅผ ๋ TRUE
SELECT * FROM EMP
WHERE SAL != 3000;
SELECT * FROM EMP
WHERE SAL <> 3000;
SELECT * FROM EMP
WHERE SAL ^= 3000;
(1) ์์ชฝ ํผ์ฐ์ฐ์๊ฐ ๊ฐ์ ๊ฒฝ์ฐ๋ง ์ถ๋ ฅ
(2) ์์ชฝ ํผ์ฐ์ฐ์๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ๋ง ์ถ๋ ฅ. != ์ <> ์ ^= ๋ ๋ชจ๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅ
6. ๋ ผ๋ฆฌ ๋ถ์ ์ฐ์ฐ์
- ํผ์ฐ์ฐ์๊ฐ TRUE๋ฉด FALSE๋ฅผ, FALSE๋ฉด TRUE๋ฅผ ์ถ๋ ฅ
SELECT * FROM EMP
WHERE NOT SAL = 3000;
- NOT ์ฐ์ฐ์๋ ๋ณดํต IN, BETWEEN, IS NULL ์ฐ์ฐ์์ ๋ณตํฉ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค
- ๋์ / ๋ฑ๊ฐ ๋น๊ต ์ฐ์ฐ์์ ์ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ์ ๋ค
- ๋ณต์กํ ์ฌ๋ฌ๊ฐ ์กฐ๊ฑด์์ด AND, OR๋ก ๋ฌถ์ฌ์๋ ์ํ์์ ์ ๋ฐ๋ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ณ ์ ํ ๋ ์ ์ฉํ๋ค
7. IN ์ฐ์ฐ์
- '=' ๊ธฐํธ๋ WHERE ์กฐ์ ์์์ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์นผ๋ผ๋ง์ ์กฐํํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค.
- ์ด๋ฅผ OR ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์กฐ๊ฑด ์ค ํ๋๋ฅผ ๋ง์กฑํ๋ ์นผ๋ผ์ ์กฐํํ ์ ์๋ค.
- ํ์ง๋ง ์กฐ๊ฑด์ด ๋์ด๋ ์๋ก WHERE์ ์ด ๊ธธ์ด์ง๋๋ฐ ์ด๋ฅผ IN ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์๋ค
SELECT [์กฐํํ ์นผ๋ผ 1 ์ด๋ฆ], [์นผ๋ผ 2 ์ด๋ฆ], … , [์นผ๋ผ N ์ด๋ฆ]
FROM [์กฐํํ ํ
์ด๋ธ ์ด๋ฆ]
WHERE ์นผ๋ผ ์ด๋ฆ IN (๋ฐ์ดํฐ 1, ๋ฐ์ดํฐ 2, … ,๋ฐ์ดํฐ N);
-- IN ์ฐ์ฐ์ ์์ด
SELECT * FROM EMP
WHERE JOB = 'MANAGER',
OR JOB = 'SALESMAN',
OR JOB = 'CLERK';
-- IN ์ฐ์ฐ์ ์ฌ์ฉํด์
SELECT * FROM EMP
WHERE JOB IN ('MANAGER', 'SALESMAN', 'CLERK');
-- IN ์ฐ์ฐ์ ์์ด
SELECT * FROM EMP
WHERE JOB != 'MANAGER',
AND JOB <> 'SALESMAN',
AND JOB ^= 'CLERK';
-- IN ์ฐ์ฐ์ ์ฌ์ฉํด์
SELECT * FROM EMP
WHERE JOB NOT IN ('MANAGER', 'SALESMAN', 'CLERK');
(1) EMP ํ ์ด๋ธ์์ JOB ์ด MANAGER ์ด๊ฑฐ๋ SALESMAN ์ด๊ฑฐ๋ CLERK ์ธ ์นผ๋ผ์ ๋ชจ๋ ์กฐํ
(2) EMP ํ ์ด๋ธ์์ JOB ์ด MANAGER ๋ SALESMAN ๋ CLERK ๋ ์๋ ์นผ๋ผ์ ๋ชจ๋ ์กฐํ
8. BETWEEN A AND B ์ฐ์ฐ์
- ์นผ๋ผ ๊ฐ์ด ์ต์๊ฐ ์ด์ ์ต๋๊ฐ ์ดํ ์ฌ์ด์ ์๋ ์นผ๋ผ๋ง์ ์กฐํํ๊ณ ์ ํ ๋ ์ฌ์ฉ
- ๋์ ๋น๊ต ์ฐ์ฐ์์ AND ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํ์ง๋ง BETWEEN A AND B ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ๊ฐ๋จํ๊ฒ ํํ ๊ฐ๋ฅ
-- ๋์ ๋น๊ต ์ฐ์ฐ์์ AND ์ฐ์ฐ์๋ฅผ ์ฌ์ฉ
SELECT * FROM EMP
WHERE SAL >= 2000
AND SAL <= 3000;
-- BETWEEN A AND B ์ฐ์ฐ์ ์ฌ์ฉ
SELECT * FROM EMP
WHERE SAL BETWEEN 2000 AND 3000;
SELECT * FROM EMP
WHERE SAL NOT BETWEEN 2000 AND 3000;
(1) EMP ํ ์ด๋ธ์์ SAL ๊ฐ์ด 2000์ด์ 3000์ดํ์ธ ์นผ๋ผ๋ง ์ถ๋ ฅ
(2) EMP ํ ์ด๋ธ์์ SAL ๊ฐ์ด 2000๋ฏธ๋ง 3000์ด๊ณผ์ธ ์นผ๋ผ๋ง ์ถ๋ ฅ
9. LIKE ์ฐ์ฐ์์ ์์ผ๋์นด๋ '%', '_'
- ์ ๋ชฉ ๋๋ ๋ด์ฉ ๊ฒ์ ๊ธฐ๋ฅ์ฒ๋ผ ์ผ๋ถ ๋ฌธ์์ด์ด ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์ฌ์ฉ
- ์์ผ๋ ์นด๋ : ํน์ ๋ฌธ์ ๋๋ ๋ฌธ์์ด์ ๋์ฒดํ๊ฑฐ๋ ๋ฌธ์์ด ๋ฐ์ดํฐ์ ํจํด์ ํ๊ธฐํ๋ ํน์ ๋ฌธ์
-- 1
SELECT * FROM EMP WHERE ENAME LIKE 'S%';
SELECT * FROM EMP WHERE ENAME NOT LIKE 'S%';
-- 2
SELECT * FROM EMP WHERE ENAME LIKE '%S';
SELECT * FROM EMP WHERE ENAME NOT LIKE '%S';
-- 3
SELECT * FROM EMP WHERE ENAME LIKE 'S_';
SELECT * FROM EMP WHERE ENAME NOT LIKE 'S_';
-- 4
SELECT * FROM EMP WHERE ENAME LIKE '_S';
SELECT * FROM EMP WHERE ENAME NOT LIKE '_S';
-- 5
SELECT * FROM EMP WHERE ENAME LIKE '_S%';
SELECT * FROM EMP WHERE ENAME NOT LIKE '_S%';
-- 6
SELECT * FROM EMP WHERE ENAME LIKE '%S_';
SELECT * FROM EMP WHERE ENAME NOT LIKE '%S_';
-- 7
SELECT * FROM EMP WHERE ENAME LIKE '%S%';
SELECT * FROM EMP WHERE ENAME NOT LIKE '%S%';
- '%' : ๊ธธ์ด์ ์๊ด์์ด(๋ฌธ์ ์๋ ๊ฒฝ์ฐ๋ ํฌํจ) ๋ชจ๋ ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ
- '_' : ์ด๋ค ๊ฐ์ด๋ ์๊ด์์ด ํ ๊ฐ์ ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธ
(1) WHERE ENAME LIKE 'S%' : S๋ก ์์ํ๋ ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์ฌ์
(2) WHERE ENAME LIKE '%S' : S๋ก ๋๋๋ ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์ฌ์
(3) WHERE ENAME LIKE 'S_' : S๋ก ์์ํ๋ ๋ ๊ธ์ ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์ฌ์
(4) WHERE ENAME LIKE '_S' : S๋ก ๋๋๋ ๋ ๊ธ์ ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์ฌ์
(5) WHERE ENAME LIKE '_S%' : ๋ ๋ฒ์งธ ๊ธ์๊ฐ S์ธ ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์ฌ์
(6) WHERE ENAME LIKE '%S_' : ๋์์ ๋ ๋ฒ์งธ ๊ธ์๊ฐ S์ธ ์ด๋ฆ์ ๊ฐ์ง ๋ชจ๋ ์ฌ์
(7) WHERE ENAME LIKE '%S%' : ์ด๋ฆ ์์ S๋ฅผ ํฌํจํ๋ ๋ชจ๋ ์ฌ์
+ NOT์ด ๋ถ์ผ๋ฉด ๋ฐ๋
10. ESCAPE ์
- ์์ผ๋ ์นด๋ ๋ฌธ์๊ฐ ๋ฐ์ดํฐ์ ์ผ๋ถ์ผ ๊ฒฝ์ฐ ( '_' ๋ '%' ๋ฅผ ํฌํจํ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด์ ) ESCAPE ์ ์ ์ฌ์ฉ
-- 1
SELECT * FROM DEPT
WHERE DEPTNO LIKE 'S@_S%' ESCAPE '@';
SELECT * FROM DEPT
WHERE DEPTNO LIKE 'S^_S%' ESCAPE '^';
(1) WHERE DEPTNO LIKE 'S@_S%' ESCAPE '@' : ๋ถ์ ๋ฒํธ๊ฐ S_S๋ก ์์ํ๋ ๋ชจ๋ ๋ถ์
= WHERE DEPTNO LIKE 'S^_S%' ESCAPE '^'
- '@' ๋ฐ๋ก ๋ค์ '_'๋ฅผ ์์ผ๋ ์นด๋๊ฐ ์๋ ๋ฐ์ดํฐ์ ํฌํจ๋ ๋ฌธ์๋ก ์ธ์ํ๋ผ๋ ์๋ฏธ
- '@'์ '^'๋์ ๋ค๋ฅธ ๋ฌธ์๋ฅผ ์ง์ ํด์ ์ฌ์ฉ ๊ฐ๋ฅ
11. IS NULL / IS NOT NULL ์ฐ์ฐ์
- ์นผ๋ผ์ ๊ฐ์ด NULL์ธ ๊ฒ / NULL์ด ์๋ ๊ฒ๋ง ์กฐํ
SELECT * FROM EMP WHERE COMM IS NULL;
SELECT * FROM EMP WHERE COMM IS NOT NULL;
12. ์งํฉ ์ฐ์ฐ์
- ๋ ๊ฐ ์ด์์ SELECT๋ฌธ์ ๊ฒฐ๊ณผ ๊ฐ์ ์ฐ๊ฒฐํ ๋ ์ฌ์ฉ
- ์ฐ๊ฒฐํ๋ ค๋ ๋ SELECT๋ฌธ์ ์นผ๋ผ ๊ฐ์์ ์๋ฃํ์ด ๊ฐ๋ค๋ฉด ์๋ก ๋ค๋ฅธ ํ ์ด๋ธ์์ ์กฐํํ๊ฑฐ๋ ์กฐํํ๋ ์นผ๋ผ ์ด๋ฆ์ด ๋ค๋ฅธ ๊ฒ์ ๋ฌธ์ ๊ฐ ๋์ง ์์ผ๋ฉฐ ์ต์ข ์ถ๋ ฅ๋๋ ์นผ๋ผ ์ด๋ฆ์ ๋จผ์ ์์ฑํ SELECT๋ฌธ์ ์นผ๋ผ ์ด๋ฆ์ผ๋ก ํ๊ธฐ๋จ
-- 1. UNION
SELECT EMPNO, ENALE, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION
SELECT EMPNO, ENALE, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 20;
-- 2. UNION ALL
SELECT EMPNO, ENALE, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION ALL
SELECT EMPNO, ENALE, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 20;
-- 3. MINUS
SELECT EMPNO, ENALE, SAL, DEPTNO
FROM EMP
MINUS
SELECT EMPNO, ENALE, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 20;
-- 4. INTERSECT
SELECT EMPNO, ENALE, SAL, DEPTNO
FROM EMP
INTERSECT
SELECT EMPNO, ENALE, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 20;
(1) UNION : ์ฐ๊ฒฐ๋ SELECT๋ฌธ์ ๋ ๊ฒฐ๊ณผ ๊ฐ์ ํฉ์งํฉ ์ฒ๋ฆฌ. ๊ฒฐ๊ณผ ๊ฐ์ ์ค๋ณต์ ์ ๊ฑฐ
(2) UNION ALL : ์ฐ๊ฒฐ๋ SELECT๋ฌธ์ ๋ ๊ฒฐ๊ณผ ๊ฐ์ ํฉ์งํฉ ์ฒ๋ฆฌ. ๊ฒฐ๊ณผ ๊ฐ์ ์ค๋ณต๋ ๋ชจ๋ ์ถ๋ ฅ
(3) MINUS : ๋จผ์ ์์ฑํ SELECT๋ฌธ์ ๊ฒฐ๊ณผ ๊ฐ์์ ๋ค์ SELECT๋ฌธ์ ๊ฒฐ๊ณผ ๊ฐ์ ์ฐจ์งํฉ ์ฒ๋ฆฌ. ๋จผ์ ์์ฑ๋ SELECT๋ฌธ์ ๊ฒฐ๊ณผ ๊ฐ ์ค ๋ค์ SELECT๋ฌธ์ ์กด์ฌํ์ง ์๋ ๋ฐ์ดํฐ๋ง ์ถ๋ ฅ
(4) INTERSECT : ์ฐ๊ฒฐ๋ SELECT๋ฌธ์ ๋ ๊ฒฐ๊ณผ ๊ฐ์ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ง ์ถ๋ ฅ. ๊ต์งํฉ๊ณผ ๊ฐ์ ์๋ฏธ
13. ์ฐ์ฐ์ ์ฐ์ ์์
↑ ๋์ ๋ฎ์ ↓ |
* , / | ์ฐ์ ์ฐ์ฐ์ : ๊ณฑํ๊ธฐ , ๋๋๊ธฐ |
+ , - | ์ฐ์ ์ฐ์ฐ์ : ๋ํ๊ธฐ , ๋นผ๊ธฐ | |
= , != , ^= , <> , > , >= , < , <= | ๋์ ๋น๊ต ์ฐ์ฐ์ | |
IS (NOT) NULL , (NOT) LIKE , (NOT) IN | (๊ทธ ์ธ) ๋น๊ต ์ฐ์ฐ์ | |
BETWEEN A AND B | BETWEEN ์ฐ์ฐ์ | |
NOT | ๋ ผ๋ฆฌ ๋ถ์ ์ฐ์ฐ์ NOT | |
AND | ๋ ผ๋ฆฌ ์ฐ์ฐ์ AND | |
OR | ๋ ผ๋ฆฌ ์ฐ์ฐ์ OR |