0. ๋ฐ์ดํฐ ์กฐ์์ด
์ฌ์ฉ์๋ก ํ์ฌ๊ธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ ํ๋ ๋๊ตฌ
ROLLBACK ๊ฐ๋ฅ
์ข ๋ฅ INSERT, UPDATE, DELETE, MERGE, SELECT
ํธ๋์ญ์ (Transaction)
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์ ๋จ์
ํ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ๋ ์ผ๋ จ์ ์ฐ์ฐ
COMMIT ํธ๋์ญ์ ์ด ์๋ฃ๋ ์ํ. DB์ ์ ์ฅ
ROLLBACK ํธ๋์ญ์ ์ด ์ทจ์๋ ์ํ. DB์ ์ ์ฅX
1. INSERT : ์ฝ์
1. ๋จ์ผ ํ ์ ๋ ฅ
ํ๋์ ํ ์ด๋ธ์ ํ๋์ ํ์ ์ถ๊ฐ
๋ชจ๋ ์ปฌ๋ผ์ ๊ฐ์ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ ์ปฌ๋ผ๋ช ์๋ต ๊ฐ๋ฅ
INSERT INTO ํ
์ด๋ธ๋ช
VALUES (๊ฐ, ๊ฐ);
INSERT INTO ํ
์ด๋ธ๋ช
(์ปฌ๋ผ๋ช
, ์ปฌ๋ผ๋ช
) VALUES (๊ฐ, ๊ฐ);
2. ๋ค์ค ํ ์ด๋ธ์ ๋ค์คํ์ ์ถ๊ฐ
ํ๋ฒ์ ๋ ๊ฐ ์ด์์ ํ ์ด๋ธ์ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ
INSERT ALL
INTO ํ
์ด๋ธ๋ช
1 [( ์ปฌ๋ผ, ์ปฌ๋ผ )] VALUES (์์1,์์2)
INTO ํ
์ด๋ธ๋ช
2 [( ์ปฌ๋ผ, ์ปฌ๋ผ )] VALUES (์์1,์์2)
3. ์กฐ๊ฑด๋ถ INSERT {ALL | FIRST}
INSERT ALL
WHEN ์กฐ๊ฑด1 THEN
INTO ํ
์ด๋ธ๋ช
1 [( ์ปฌ๋ผ, ์ปฌ๋ผ )] VALUES (์์1,์์2)
WHEN ์กฐ๊ฑด2 THEN
INTO ํ
์ด๋ธ๋ช
2 [( ์ปฌ๋ผ, ์ปฌ๋ผ )] VALUES (์์1,์์2)
ELSE
INTO ํ
์ด๋ธ๋ช
n [( ์ปฌ๋ผ, ์ปฌ๋ผ )] VALUES (์์1,์์2)
subquery;
์์ emp ํ ์ด๋ธ์ ์๋ ๋ฐ์ดํฐ์ ๋จ์์ ์ฌ์๋ฅผ ๋ถ๋ฅํ์ฌ ๊ฐ ํ ์ด๋ธ ์์ฑ
CREATE TABLE emp4 AS
SELECT empNo, name, rrn, dept, pos, sal, bonus FROM emp WHERE 1=0;
CREATE TABLE emp5 AS
SELECT empNo, name, rrn, dept, pos, sal, bonus FROM emp WHERE 1=0;
INSERT ALL
WHEN MOD(SUBSTR(rrn, 8, 1),2 ) =0 THEN
INTO emp4 VALUES(empNo, name, rrn, dept, pos, sal, bonus)
WHEN MOD(SUBSTR(rrn, 8, 1),2 ) = 1 THEN
INTO emp5 VALUES(empNo, name, rrn, dept, pos, sal, bonus)
SELECT * FROM emp;
SELECT * FROM emp4; -- emp ํ
์ด๋ธ์ ์ฌ์ ๋ฐ์ดํฐ๋ง emp4 ํ
์ด๋ธ์ ์ถ๊ฐ
SELECT * FROM emp5; -- emp ํ
์ด๋ธ์ ์ฌ์ ๋ฐ์ดํฐ๋ง emp5 ํ
์ด๋ธ์ ์ถ๊ฐ
2. UPDATE : ์์
ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ธฐ ์ํด ์ฌ์ฉ
UPDATE๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ํ COMMIT ๋๋ ROLLBACK ๋ช ๋ น์ ์ฌ์ฉํด ์๋ฃํด์ผ ํจ
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ=๊ฐ, ์ปฌ๋ผ=๊ฐ WHERE ์กฐ๊ฑด;
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ=๊ฐ, ์ปฌ๋ผ=๊ฐ; -- ๋ชจ๋ ๋ ์ฝ๋ ์์
3. DELETE : ์ญ์
ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ธฐ ์ํด์ ์ฌ์ฉํ๋ ๋ช ๋ น๋ฌธ
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด;
DELETE FROM ํ
์ด๋ธ๋ช
; -- ๋ชจ๋ ๋ ์ฝ๋ ์ญ์ (WHERE์ ์ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ ํ
์ด๋ธ์ ์๋ ๋ชจ๋ ํ ์ญ์ )
4. MERGE : ๋ณํฉ
์กฐ๊ฑด์ ๋ฐ๋ผ ์ฝ์ , ๊ฐฑ์ , ์ญ์ ์์ ์ ํ๋ฒ์ ํ ์ ์์
MERGE INTO ๋์ํ
์ด๋ธ๋ช
USING ๋น๊ตํ ํ
์ด๋ธ ON ( ์กฐ๊ฑด )
WHEN MATCHED THEN
UPDATE SET ์ปฌ๋ผ=๊ฐ, ์ปฌ๋ผ=๊ฐ
WHEN NOT MATCHED THEN
INSERT [ (์ปฌ๋ผ, ์ปฌ๋ผ) ] VALUES (๊ฐ, ๊ฐ)
'๐ปProgramming > ๐ฝOracle' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Oracle] ์ ์ฝ์กฐ๊ฑด (0) | 2022.08.10 |
---|---|
[Oracle] ๋ฐ์ดํฐ ๋์ ๋๋ฆฌ(Data Dictionary) (0) | 2022.08.10 |
[ORACLE] ๋ฐ์ดํฐ ์ ์์ธ์ด (DDL) (0) | 2022.08.09 |
[ORACLE] SQL ํจ์ - ๋จ์ผํ ํจ์ (0) | 2022.08.05 |
[Oracle] ๊ธฐ๋ณธ์ ์ธ SQL (0) | 2022.08.04 |