์ ์ฒด INSERT & ์กฐ๊ฑด๋ถ INSERT
๋ค์คํ INSERT์์ ALL๊ณผ FIRST๋ก ๊ตฌ๋ถํ๊ธฐ ์ ์ ์ ์ฒด INSERT์ ์กฐ๊ฑด๋ถ INSERT๋ก ๊ตฌ๋ถํ ์ ์์ต๋๋ค. ๋ง๊ทธ๋๋ก ์ ์ฒด๋ ๋ชจ๋ ํ์ ์ฝ์ ํ๋ ๊ฒ์ด๊ณ , ์กฐ๊ฑด๋ถ INSERT๋ ์กฐ๊ฑด์ ๋ฐ๋ผ INSERTํ ์ ์๋ ๊ธฐ๋ฅ์ ๋๋ค. Multiple Insert๋ฅผ ์ค์ตํด๋ณด๊ธฐ ์ํด Oracle HR ๊ณ์ ์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
์ ์ฒด INSERT ALL
์์ ์ฌ์ ํ ์ด๋ธ ์์ฑ
1
2
3
4
5
6
7
8
9
10
11
|
--ํ์ฌ ๊ทผ๋ฌดํ๋ ์ฌ์ ํ
์ด๋ธ
CREATE TABLE CURR_EMP
AS
SELECT
EMPLOYEE_ID
,FIRST_NAME
,HIRE_DATE
,JOB_ID
,SALARY
FROM EMPLOYEES
WHERE 1=0;
|
Multiple Insert ์์ ์ ์งํํ ํ ์ด๋ธ์ ํ๋ ์์ฑํ๊ฒ ์ต๋๋ค.
์ด ํ ์ด๋ธ์๋ 05๋ 01์ 01์ผ ์ดํ ์ ์ฌ์๋ง ๋ฃ๊ฒ ์ต๋๋ค.
INSERT ALL
1
2
3
4
5
6
7
8
9
10
11
12
13
|
--INSERT ALL
INSERT ALL
INTO CURR_EMP VALUES(
EMPLOYEE_ID
,FIRST_NAME
,HIRE_DATE
,JOB_ID
,SALARY
)
SELECT * FROM EMPLOYEES
WHERE HIRE_DATE >= '05/01/01';
SELECT * FROM CURR_EMP;
|
์กฐ๊ฑด๋ถ INSERT
ALL & FIRST ์ฐจ์ด
ALL๊ณผ FIRST์ ์ฐจ์ด๋ ์ ๊ทธ๋ฆผ์ผ๋ก ํํํ๊ณ ์ถ์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ์ ํด๋ณด์ ๋ถ์ด๋ผ๋ฉด ๋ฌด์จ ์๋ฏธ์ธ์ง ๋ฐ๋ก ์ดํดํ์ จ์ ๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ALL์ WHEN THEN ๊ตฌ์ ์ ์กฐ๊ฑด์ ๋ชจ๋ ํ์ธํ๊ณ ํด๋น๋๋ ๋ชจ๋ ์กฐ๊ฑด์ INSERT ์์ ์ ํด์ค๋๋ค. FIRST๋ WHEN THEN ์กฐ๊ฑด์์ ์ฒ์ ์กฐ๊ฑด์ด ์ฐธ์ ๋ถํฉํ์๋ ํด๋น ๊ตฌ์ ์์ผ๋ก ๋ค์ด๊ฐ INSERT ์์ ์ ํด์ฃผ๊ณ ๋๊น์ง ์ฐธ์ธ ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ ELSE ๊ตฌ์ ์ ์์ ์ ์งํํฉ๋๋ค.
์ด๋ฒ์๋ 05๋ 01์ 01์ผ์ ๊ธฐ์ค์ผ๋ก ์ด์ ์ ์ ์ฌํ ์ฌ์๋ค์ ํด์ฌ์ฒ๋ฆฌ๋๋๋ก ํ ์ด๋ธ์ ํ๋ ์์ฑํ๊ฒ ์ต๋๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
|
--์ํด ์ฌ์
CREATE TABLE RETIRE_EMP
AS
SELECT
EMPLOYEE_ID
,FIRST_NAME
,HIRE_DATE
,DEPARTMENT_ID
FROM EMPLOYEES
WHERE 1=0;
TRUNCATE TABLE CURR_EMP;
|
FIRST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
--์กฐ๊ฑด๋ถ INSERT FIRST
INSERT FIRST
WHEN HIRE_DATE >= '05/01/01' THEN
INTO CURR_EMP VALUES(
EMPLOYEE_ID
,FIRST_NAME
,HIRE_DATE
,JOB_ID
,SALARY
)
ELSE
INTO RETIRE_EMP VALUES(
EMPLOYEE_ID
,FIRST_NAME
,HIRE_DATE
,DEPARTMENT_ID
)
|
ALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
--์กฐ๊ฑด๋ถ INSERT ALL
INSERT ALL
WHEN HIRE_DATE >= '05/01/01' THEN
INTO CURR_EMP VALUES(
EMPLOYEE_ID
,FIRST_NAME
,HIRE_DATE
,JOB_ID
,SALARY
)
WHEN HIRE_DATE < '05/01/01' THEN
INTO RETIRE_EMP VALUES(
EMPLOYEE_ID
,FIRST_NAME
,HIRE_DATE
,DEPARTMENT_ID
)
SELECT * FROM EMPLOYEES;
|
ALL ๋ฐฉ์์ผ๋ก ํ๊ฒ๋๋ฉด ๋ชจ๋ ์กฐ๊ฑด์ ํ์ธํฉ๋๋ค.
๋๊ธ