DML ๋ช ๋ น์ด ์ ๋ฆฌ
1๏ธโฃ INSERT
๋ฐ์ดํฐ๋ฅผ ์ ์ฅ/์ฝ์ ํ๋ ๋ช ๋ น์ด
โ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ
- ์ปฌ๋ผ ๋ฆฌ์คํธ ๋ช
์ํ๊ธฐ
- ์ด๋ค ์ปฌ๋ผ์ ๊ฐ์ ๋ฃ์์ง ๋ช ์
- ์ปฌ๋ผ ์์์ ๋ง๊ฒ ์์ฑ
- ์ปฌ๋ผ ๋ฆฌ์คํธ ๋ช
์ํ์ง ์๊ธฐ
- ๋ชจ๋ ์ปฌ๋ผ์ ๊ฐ์ ๋ฃ์ ๊ฒ์ด๋ผ๋ ์๋ฏธ
- ํ ์ด๋ธ์์ ์ ์๋ ์ปฌ๋ผ ๊ฐ์์ ๋ง์ถฐ ์์๋๋ก ๊ฐ์ ์ ๋ ฅ
โ ๊ตฌ์กฐ
-- โ ์ปฌ๋ผ ๋ฆฌ์คํธ ๋ช
์
INSERT INTO table1 (col1, col2, …) VALUES (val1, val2, …)
-- โ ์์
INSERT INTO player (name, height, weight) VALUES ('KIM', 170, 65)
-- โก ์ปฌ๋ผ ๋ฆฌ์คํธ ๋ช
์ X
INSERT INTO table1 VALUES (val1, val2, …)
-- โก ์์
INSERT INTO player VALUES ('KIM', 170, 65)
2๏ธโฃ UPDATE
์ ๋ ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ๋ช ๋ น์ด
ํน์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ค๋ฉด WHERE ์ ์ ์ด์ฉํ ์กฐ๊ฑด์ถ๊ฐ
โ ๊ตฌ์กฐ
-- ๊ตฌ์กฐ
UPDATE table1 SET col1 = value3, ...
UPDATE table1 SET col1 = value3 WHERE ์กฐ๊ฑด
-- ์์ : player์ "๋ชจ๋ " ์ด๋ฆ์ LEE๋ก ์์
UPDATE player SET name = 'LEE'
-- ์์ : "id๊ฐ 1์ธ" player์ ์ด๋ฆ์ LEE๋ก ์์
UPDATE player SET name = 'LEE' WHERE id=1
3๏ธโฃ DELETE
๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ช ๋ น์ด
ํน์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ค๋ฉด WHERE ์ ์ ์ด์ฉํ ์กฐ๊ฑด ์ถ๊ฐ
โ ๊ตฌ์กฐ
-- ๊ตฌ์กฐ
DELETE table1
DELETE FROM table1
DELETE table1 WHERE ์กฐ๊ฑด
DELETE FROM table1 WHERE ์กฐ๊ฑด
-- ์์ : player์ "๋ชจ๋ " ๋ฐ์ดํฐ ์ญ์
DELETE FROM player
-- ์์ : "id๊ฐ 1์ธ" player ์ญ์
DELETE FROM player WHERE id=1
โ ์ฌ๊ธฐ์ ์ ๊น - DROP vs TRUNCATE vs DELETE
DROP | TRUNCATE | DELETE |
DDL | DDL (์ผ๋ถ DML ๋๋) | DML |
ROLLBACK ๋ถ๊ฐ๋ฅ | ROLLBACK ๋ถ๊ฐ๋ฅ |
COMMIT ์ด์ ROLLBACK ๊ฐ๋ฅ
|
AUTO COMMIT | AUTO COMMIT |
์ฌ์ฉ์ COMMIT
|
ํ ์ด๋ธ์ ์ ์ ์์ฒด๋ฅผ ์์ ํ ์ญ์ | ํ ์ด๋ธ์ ์ต์ด ์์ฑ๋ ์ด๊ธฐ ์ํ๋ก ๋ง๋ฆ |
ํ
์ด๋ธ์ ๊ทธ๋๋ก ๋๊ณ ๋ฐ์ดํฐ๋ง ์ญ์
|
- |
๋ถ๊ท์นํ ์๋ต ์๋
|
- |
4๏ธโฃ SELECT
๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ช ๋ น์ด
โ ๊ตฌ์กฐ
SELECT col1, col2, ...
FROM table
5๏ธโฃ ROWNUM
Oracle์์ ์ ๊ณตํ๋ Pseudo Column ์ค ํ๋๋ก, ์กฐํํ ์๋ฃ์ ์์๋ก ์ผ๋ จ๋ฒํธ๋ฅผ ๋ถ์ฌํ๋ ๋ช ๋ น์ด
โ ์ฌ๊ธฐ์ ์ ๊น - Pseudo Column (์์ฌ/๊ฐ์ ์ปฌ๋ผ)
ํ ์ด๋ธ์ ์ปฌ๋ผ์ฒ๋ผ ๋์ํ์ง๋ง, ์ค์ DB์๋ ์ ์ฅ๋์ง ์๋ ์ปฌ๋ผ
SELECT ๋ฌธ์ ํตํด ์กฐํ๋ ๊ฐ๋ฅํ์ง๋ง, INSERT, UPDATE, DELETE๋ฅผ ํตํ ์ฝ์ , ์์ , ์ญ์ ๋ ๋ถ๊ฐ๋ฅ
โ ํน์ง
์ฃผ๋ก WHERE ๋ฌธ์์ ํ์ ๊ฐ์๋ฅผ ์ ํํ๋ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ
ํ์ ๊ฐ์๋ฅผ ์ ํํ ๋ ๋น๊ต์ฐ์ฐ์๋ฅผ ์ฌ์ฉํจ ('=' ์ฌ์ฉ ๋ถ๊ฐ)
โ ๊ตฌ์กฐ
#Oracle
-- ROWNUM ๊ตฌ์กฐ
SELECT / UPDATE / DELETE ~
WHERE ROWNUM ๋น๊ต์ฐ์ฐ์ ํ๊ฐฏ์
-- ROWNUM ์์
SELECT * FROM player
WHERE ROWNUM <= 3
6๏ธโฃ ROWID
Oracle์์ ์ ๊ณตํ๋ Pseudo Column ์ค ํ๋๋ก, ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ ์ ์๋ ์ ์ผํ ๊ฐ
โ ํน์ง
๊ฐ์ฅ ๋น ๋ฅธ ํ ์ด๋ธ ์ ๊ทผ ๋ฐฉ๋ฒ, ๊ฐ์ฅ ๋น ๋ฅธ ๋จ์ผ ์ปฌ๋ผ ์ ๊ทผ ๋ฐฉ๋ฒ
์ ์ผํ ์ฃผ์๊ฐ์ด์ง๋ง, PK์ฒ๋ผ ์ฌ์ฉ๋ ์ ์์
๋ฐ์ดํฐ๊ฐ ์ด๋ค ๋ฐ์ดํฐ ํ์ผ, ์ด๋ ๋ธ๋ก์ ์ ์ฅ๋์ด ์๋์ง ์ ์ ์์
โ ๊ตฌ์กฐ
๊ตฌ์กฐ | ๊ธธ์ด | ์ค๋ช |
์ค๋ธ์ ํธ ๋ฒํธ | 1~6 |
์ค๋ธ์ ํธ(Object) ๋ณ๋ก ์ ์ผํ ๊ฐ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ํด๋น ์ค๋ธ์ ํธ๊ฐ ์ํด ์๋ ๊ฐ
|
์๋ ํ์ผ ๋ฒํธ | 7~9 |
ํ
์ด๋ธ์คํ์ด์ค(Tablespace)์ ์ํด ์๋ ๋ฐ์ดํฐ ํ์ผ์ ๋ํ ์๋ ํ์ผ๋ฒํธ
|
๋ธ๋ก ๋ฒํธ | 10~15 |
๋ฐ์ดํฐ ํ์ผ ๋ด๋ถ์์ ๋ฐ์ดํฐ์ ๋ธ๋ก ์์น๋ฅผ ์๋ ค์ฃผ๋ ๋ฒํธ
|
๋ฐ์ดํฐ ๋ฒํธ | 16~18 |
๋ฐ์ดํฐ ๋ธ๋ก์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ์์
|