[SQL-์ค๋ผํด] ๋ฐ์ดํฐ ์กฐ์์ด(DML) : ์ ๋ ฅ insert, ์์ update, ์ญ์ delete
๋ฐ์ดํฐ ์กฐ์์ด ( DML : Data Manipulation Language)
- ํ ์ด๋ธ์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์์ ๋๋ ์ญ์ ํ๊ธฐ ์ํ ๋ช ๋ น์ด
์ข ๋ฅ | ๊ธฐ๋ฅ |
INSERT | ์๋ก์ด ๋ฐ์ดํฐ ์ ๋ ฅ ๋ช ๋ น์ด |
UPDATE | ๊ธฐ์กด ๋ฐ์ดํฐ ์์ ๋ช ๋ น์ด |
DELETE | ๊ธฐ์กด ๋ฐ์ดํฐ ์ญ์ ๋ช ๋ น์ด |
MERGE | ๋๊ฐ์ ํ ์ด๋ธ์ ํ๋์ ํ ์ด๋ธ๋ก ๋ณํฉํ๋ ๋ช ๋ น์ด |
๋ฐ์ดํฐ ์ ๋ ฅ INSERT
- ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๊ธฐ ์ํ ๋ฐ์ดํฐ ์กฐ์์ด
- ๋จ์ผ ํ ์ ๋ ฅ : ํ ๋ฒ์ ํ๋์ ํ์ ํ ์ด๋ธ์ ์ ๋ ฅ
- ๋ค์ค ํ ์ ๋ ฅ : ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ํ ๋ฒ์ ์ฌ๋ฌ ํ ๋์์ ์ ๋ ฅ
1) ๋จ์ผ ํ ์ ๋ ฅ
INSERT INTO ... VALUES
- INTO ์ ์ ๋ช ์ํ ์นผ๋ผ์ VALUES ์ ์์ ์ง์ ํ ์นผ๋ผ ๊ฐ์ ์ ๋ ฅ
- INTO ์ ์ ์นผ๋ผ์ ๋ช ์ํ์ง ์์ผ๋ฉด ํ ์ด๋ธ ์์ฑ ์ ์ ์ํ ์นผ๋ผ ์์์ ๋์ผํ ์์๋ก ์ ๋ ฅ
- ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ ํ์ ์ ์นผ๋ผ์ ๋ฐ์ดํฐ ํ์ ๊ณผ ๋์ผํด์ผ ํจ
- ์ ๋ ฅ๋๋ ๋ฐ์ดํฐ ํฌ๊ธฐ๋ ์นผ๋ผ์ ํฌ๊ธฐ๋ณด๋ค ์๊ฑฐ๋ ๋์ผํด์ผ ํจ
- CHAR, VARCHAR2, DATE ํ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ ๋จ์ผ์ธ์ฉ๋ถํธ ' ' ๋ก ๋ฌถ์ด์ ์ฌ์ฉ
INSERT INTO ํ
์ด๋ธ [( ์นผ๋ผ [ , ์นผ๋ผ ... ])
VALUES ( ๊ฐ [ , ๊ฐ ...]);
2) ๋จ์ผ ํ ์ด๋ธ ๋ค์ค ํ ์ ๋ ฅ
INSERT INTO ... ์๋ธ์ฟผ๋ฆฌ
- INSERT ๋ช ๋ น๋ฌธ์์ ์๋ธ์ฟผ๋ฆฌ ์ ์ด์ฉ, ์์ ์ด๋ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ์ฌ ์ฌ๋ฌ ํ ๋์ ์ ๋ ฅ
- INSERT ๋ช ๋ น๋ฌธ์ VALUES์ ๋์ ์๋ธ์ฟผ๋ฆฌ์์ ๊ฒ์๋ ๊ฒฐ๊ณผ ์งํฉ์ ํ๊บผ๋ฒ์ ์ ๋ ฅ
- ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์งํฉ์ INSERT ๋ช ๋ น๋ฌธ์ ์ง์ ๋ ์นผ๋ผ ๊ฐ์์ ๋ฐ์ดํฐ ํ์ ์ด ์ผ์นํด์ผ ํจ
- ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ ๋ค์ค ํ ์ ๋ ฅ ์ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค, ๊ณ ์ ํค ์ ์ฝ์กฐ๊ฑด์ด ์ค๋ณต๋์ง ์๋๋ก ์ฃผ์
INSERT INTO ํ
์ด๋ธ [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
์๋ธ์ฟผ๋ฆฌ;
3) ๋ค์ค ํ ์ด๋ธ ๋ค์ค ํ ์ ๋ ฅ
โ INSERT ALL
INSERT ALL
INTO ... VALUES
INTO ... VALUES
์๋ธ์ฟผ๋ฆฌ
- ์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์งํฉ์ ์กฐ๊ฑด ์์ด ์ฌ๋ฌ ํ ์ด๋ธ์ ๋์ ์ ๋ ฅ
- ์๋ธ์ฟผ๋ฆฌ ์นผ๋ผ ์ด๋ฆ๊ณผ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋๋ ํ ์ด๋ธ์ ์นผ๋ผ์ด ๋ฐ๋์ ๋์ผํด์ผ ํจ
INSERT ALL
INTO [ ํ
์ด๋ธ1 ] VALUES [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
INTO [ ํ
์ด๋ธ2 ] VALUES [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
INTO [ ํ
์ด๋ธ3 ] VALUES [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
์๋ธ์ฟผ๋ฆฌ;
โ CONDITIONAL INSERT ALL
INSERT ALL
WHEN ... THEN
INTO ... VALUES
WHEN ... THEN
INTO ... VALUES
ELSE
INTO ... VALUES
์๋ธ์ฟผ๋ฆฌ
- ์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์งํฉ์ ๋ํด WHEN ์กฐ๊ฑด์ ์์ ์ง์ ํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํ์ ํด๋น๋๋ ํ ์ด๋ธ์ ๊ฐ๊ฐ ์ ๋ ฅ
- ์๋ธ์ฟผ๋ฆฌ์์ ๊ฒ์๋ ํ์ ๋ง์กฑํ๋ ์กฐ๊ฑด์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ ํด๋น ํ ์ด๋ธ์ ๋ชจ๋ ์ ๋ ฅ
INSERT ALL
WHEN ์กฐ๊ฑด์ 1 THEN
INTO [ ํ
์ด๋ธ1 ] VALUES [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
WHEN ์กฐ๊ฑด์ 2 THEN
INTO [ ํ
์ด๋ธ2 ] VALUES [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
[ ELSE
INTO [ ํ
์ด๋ธ3 ] VALUES [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
์๋ธ์ฟผ๋ฆฌ;
- WHEN ์กฐ๊ฑด์ THEN : ์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์งํฉ์ ๋ํ ๋น๊ต ์กฐ๊ฑด
- ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์งํฉ ์ค์์ ์กฐ๊ฑด์ 1์ ๋ง์กฑํ๋ ๊ฒฐ๊ณผ ํ์ ํ ์ด๋ธ1์ ์ ๋ ฅ,
์กฐ๊ฑด์ 2๋ฅผ ๋ง์กฑํ๋ ๊ฒฐ๊ณผ ํ์ ํ ์ด๋ธ2์ ์ ๋ ฅ,
๊ทธ๋ฆฌ๊ณ ์ด๋ ์กฐ๊ฑด์ ๋ ๋ง์กฑํ์ง ์๋ ํ(ELSE์ )์ ํ ์ด๋ธ3์ ์ ๋ ฅ
โ CONDITIONAL INSERT FIRST
INSERT FIRST
WHEN ... THEN
INTO ... VALUES
WHEN ... THEN
INTO ... VALUES
ELSE
INTO ... VALUES
์๋ธ์ฟผ๋ฆฌ
- ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์งํฉ์ ๋ํด WHEN ์กฐ๊ฑด์ ์์ ์ง์ ํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ฒซ๋ฒ์งธ ํ ์ด๋ธ์ ์ฐ์ ์ ์ผ๋ก ์ ๋ ฅ
- ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์งํฉ ์ค์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ฒซ๋ฒ์งธ WHEN์ ์์ ์ง์ ํ ํ ์ด๋ธ์๋ง ์ ๋ ฅ, ๋๋จธ์ง WHEN์ ๋ฌด์
INSERT FRIST
WHEN ์กฐ๊ฑด์ 1 THEN
INTO [ ํ
์ด๋ธ1 ] VALUES [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
WHEN ์กฐ๊ฑด์ 2 THEN
INTO [ ํ
์ด๋ธ2 ] VALUES [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
[ ELSE
INTO [ ํ
์ด๋ธ3 ] VALUES [( ์นผ๋ผ1, ์นผ๋ผ2, ... )]
์๋ธ์ฟผ๋ฆฌ;
- ์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์งํฉ ์ค์์ ์กฐ๊ฑด์ 1๊ณผ ์กฐ๊ฑด์ 2๋ฅผ ๋์์ ๋ง์กฑํ ๊ฒฝ์ฐ์๋
์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ฒซ ๋ฒ์งธ WHEN ์ ์ ์ง์ ํ ํ ์ด๋ธ์๋ง ์ ๋ ฅ๋จ
๋ฐ์ดํฐ ์์ UPDATE
- ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์์ ์ ์ํ ๋ฐ์ดํฐ ์กฐ์์ด
1) ๋จ์ผ ํ ์์
UPDATE ... SET
- ํ ๋ฒ์ ํ๋์ ํ์ ์์
- WHERE ์ ์ ๊ฒ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ชจ๋ ํ์ ๋ํ์ฌ ์งํฉ ๋จ์๋ก ์์
UPDATE ํ
์ด๋ธ
SET ์นผ๋ผ=๊ฐ [ , ์นผ๋ผ=๊ฐ, ... ]
[ WHERE ์กฐ๊ฑด ];
- WHERE ์ ์๋ตํ๋ฉด ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ์์
2) ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์์
UPDATE ... SET ์นผ๋ผ = ์๋ธ์ฟผ๋ฆฌ
- ๋ค๋ฅธ ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ์ฌ ํ๊บผ๋ฒ์ ์ฌ๋ฌ ์นผ๋ผ ์์
- SET์ ์ ์นผ๋ผ ์ด๋ฆ์ ์๋ธ์ฟผ๋ฆฌ์ ์นผ๋ผ ์ด๋ฆ๊ณผ ๋ฌ๋ผ๋ ๋จ
- ๋ฐ์ดํฐ ํ์ ๊ณผ ์นผ๋ผ ์๋ ๋ฐ๋์ ์ผ์น
UPDATE ํ
์ด๋ธ1
SET ( ์นผ๋ผ1, ์นผ๋ผ2, ... ) = ( SELECT ์นผ๋ผ_1, ์นผ๋ผ_2, ... FROM ํ
์ด๋ธ2 [ WHERE ์กฐ๊ฑด2 ])
[ WEHRE ์กฐ๊ฑด1 ];
๋ฐ์ดํฐ ์ญ์ DELETE
- ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ญ์ ๋ฅผ ์ํ ๋ฐ์ดํฐ ์กฐ์์ด
1) ๋จ์ผ ํ ์ญ์
DELETE ...
- ํ ๋ฒ์ ํ๋์ ํ์ ์ญ์
- WHERE ์ ์ ๊ฒ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ชจ๋ ํ์ ๋ํ์ฌ ์งํฉ ๋จ์๋ก ์ญ์
DELETE [ FROM ] ํ
์ด๋ธ
[ WHERE ์กฐ๊ฑด ];
- WHERE ์ ์๋ตํ๋ฉด ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ์์
2) ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์์
DELETE ... WHERE ์นผ๋ผ = ์๋ธ์ฟผ๋ฆฌ
- ๋ค๋ฅธ ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ์ฌ ํ๊บผ๋ฒ์ ์ฌ๋ฌ ํ์ ๋ด์ฉ ์ญ์
- WHERE์ ์ ์นผ๋ผ ์ด๋ฆ์ ์๋ธ์ฟผ๋ฆฌ์ ์นผ๋ผ ์ด๋ฆ๊ณผ ๋ฌ๋ผ๋ ๋จ
- ๋ฐ์ดํฐ ํ์ ๊ณผ ์นผ๋ผ ์๋ ์ผ์น
DELETE [ FROM ] ํ
์ด๋ธ
WHERE ( ์นผ๋ผ1, ์นผ๋ผ2, ... ) = ( SELECT ์นผ๋ผ_1, ์นผ๋ผ_2, ... FROM ํ
์ด๋ธ2 [ WHERE ์กฐ๊ฑด2 ]);
์ฐธ๊ณ ๋์ : ์ค๋ผํด ์ค์ฌ์ SQL๋ฐฐ์ํฐ, ์ฐ์ฉํ ์ธ ๊ณต์ , ์๋ฅ์ถํ์ฌ, 2007๋
'Ability ๐ฑ > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQL-์ค๋ผํด] ์กฐ์ธ - EQUI join, NON-EQUI join, OUTER join, SELF join (0) | 2022.06.18 |
---|---|
[SQL-์ค๋ผํด] ๊ทธ๋ฃน ํจ์ (0) | 2022.06.17 |
[SQL-์ค๋ผํด] ์กฐ๊ฑด ๊ฒ์ ๋ฐ ํ์ ์ ๋ ฌ (0) | 2022.06.16 |
[SQL-์ค๋ผํด] ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด (0) | 2022.04.19 |
[SQL-์ค๋ผํด] ํ ์ด๋ธ ์์ฑ create, ๊ตฌ์กฐ ๋ณ๊ฒฝ alter, ์ญ์ drop, ์ฃผ์ ์ถ๊ฐ (0) | 2022.04.18 |