๐ SQL ๊ด๋ฆฌ ๊ตฌ๋ฌธ ์๋ฒฝ ์ ๋ฆฌ: DDL, DML, DCL, TCL ํ๋์ ์ดํดํ๊ธฐ!
SQLD, ์ค๋ฌด, ๋ฉด์ ์์๋ ์์ฃผ ๋์ค๋ ํต์ฌ ๊ฐ๋ ๋ฐ๋ก SQL์ ๊ด๋ฆฌ ๊ตฌ๋ฌธ๋ค์ ๋๋ค. ์ค๋์ SQL์์ ๋ช ๋ น์ด๋ค์ ๊ธฐ๋ฅ๋ณ๋ก ๋ถ๋ฅํ DDL, DML, DCL, TCL์ ๋ํด ์์ฃผ ์์ธํ๊ฒ ์ ๋ฆฌํด๋๋ฆด๊ฒ์. ์ด ๊ธ ํ๋๋ก ์๋ฒฝ ์ ๋ฆฌ ๋๋ด์ธ์! ๐ช
๐งฑ 1. DDL (Data Definition Language)
๋ฐ์ดํฐ ์ ์์ด: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ(์คํค๋ง)๋ฅผ ์ ์ํ๊ฑฐ๋ ์์ ํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด์ ๋๋ค.
๐ ์ฃผ์ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
CREATE | ํ ์ด๋ธ, ์ธ๋ฑ์ค, ๋ทฐ ๋ฑ ๊ฐ์ฒด ์์ฑ |
ALTER | ํ ์ด๋ธ ๊ตฌ์กฐ ์์ (์ปฌ๋ผ ์ถ๊ฐ/์ญ์ ๋ฑ) |
DROP | ๊ฐ์ฒด ์ญ์ (ํ ์ด๋ธ, ์ธ๋ฑ์ค ๋ฑ) |
TRUNCATE | ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ญ์ (๋กค๋ฐฑ ๋ถ๊ฐ!) |
โ ํน์ง
- ์๋ ์ปค๋ฐ์ด ๋ฐ์ํจ (ROLLBACK ๋ถ๊ฐ)
- ๊ฐ์ฒด ์์ฒด๋ฅผ ๋ค๋ฃจ๋ฏ๋ก ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํจ
๐งพ 2. DML (Data Manipulation Language)
๋ฐ์ดํฐ ์กฐ์์ด: ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ฑฐ๋ ์กฐ์ํ ๋ ์ฌ์ฉํ๋ ๊ตฌ๋ฌธ์ ๋๋ค.
๐ ์ฃผ์ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
SELECT | ๋ฐ์ดํฐ ์กฐํ (์ฝ๊ธฐ ์ ์ฉ) |
INSERT | ์๋ก์ด ๋ฐ์ดํฐ ์ฝ์ |
UPDATE | ๊ธฐ์กด ๋ฐ์ดํฐ ์์ |
DELETE | ๊ธฐ์กด ๋ฐ์ดํฐ ์ญ์ |
โ ํน์ง
- ํธ๋์ญ์ ์ฒ๋ฆฌ ๋์ → COMMIT / ROLLBACK ๊ฐ๋ฅ
- ์ค๋ฌด์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ SQL ๊ตฌ๋ฌธ
๐ก๏ธ 3. DCL (Data Control Language)
๋ฐ์ดํฐ ์ ์ด์ด: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์๋ ๊ถํ์ ๊ด๋ฆฌ/ํต์ ํ ๋ ์ฌ์ฉํ๋ ๊ตฌ๋ฌธ์ ๋๋ค.
๐ ์ฃผ์ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
GRANT | ์ฌ์ฉ์์๊ฒ ๊ถํ ๋ถ์ฌ |
REVOKE | ๋ถ์ฌํ ๊ถํ ํ์ |
โ ํน์ง
- ๋ณด์/์ ๊ทผ ์ ์ด์ ์ค์ํจ
- ์ฌ์ฉ์๋ง๋ค ๋ฐ์ดํฐ ์ ๊ทผ์ ์ ํํ ์ ์์
๐ 4. TCL (Transaction Control Language)
ํธ๋์ญ์ ์ ์ด์ด: DML ์์ ์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ํ์ ๋๋ ์ทจ์ํ ๋ ์ฌ์ฉํ๋ ๊ตฌ๋ฌธ์ ๋๋ค.
๐ ์ฃผ์ ๋ช ๋ น์ด
๋ช ๋ น์ด | ์ค๋ช |
COMMIT | ๋ณ๊ฒฝ ์ฌํญ์ DB์ ์๊ตฌ ๋ฐ์ |
ROLLBACK | ๋ณ๊ฒฝ ์ฌํญ ์ทจ์, ์ด์ ์ํ๋ก ๋ณต์ |
SAVEPOINT | ํธ๋์ญ์ ๋ด ์ค๊ฐ ์ง์ ์ค์ → ์ดํ ํด๋น ์ง์ ๊น์ง ROLLBACK ๊ฐ๋ฅ |
โ ํน์ง
- ์ค์ง DML๊ณผ ํจ๊ป ์ฌ์ฉ๋จ
- DDL์ COMMIT์ด ์๋์ผ๋ก ๋ฐ์ํ๋ฏ๋ก TCL์ ๋์์ด ์๋
๐ก ์์ ์๋๋ฆฌ์ค๋ก ์ดํดํ๊ธฐ
-- ํ
์ด๋ธ ์์ฑ (DDL)
CREATE TABLE member (
id NUMBER PRIMARY KEY,
name VARCHAR2(50)
);
-- ๋ฐ์ดํฐ ์
๋ ฅ (DML)
INSERT INTO member VALUES (1, 'ํ๊ธธ๋');
-- ๋ณ๊ฒฝ ์ฌํญ ์ ์ฅ (TCL)
COMMIT;
-- ๊ถํ ๋ถ์ฌ (DCL)
GRANT SELECT ON member TO user1;
๐ ํ๋์ ์ ๋ฆฌ
๋ถ๋ฅ | ์ด๋ฆ | ์ฃผ์ ๋ช ๋ น์ด | ๋์ | ํน์ง |
DDL | ๋ฐ์ดํฐ ์ ์์ด | CREATE, ALTER, DROP, TRUNCATE | ๊ฐ์ฒด | ์๋ COMMIT ๋ฐ์ |
DML | ๋ฐ์ดํฐ ์กฐ์์ด | SELECT, INSERT, UPDATE, DELETE | ๋ฐ์ดํฐ | ํธ๋์ญ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ |
DCL | ๋ฐ์ดํฐ ์ ์ด์ด | GRANT, REVOKE | ์ฌ์ฉ์/๊ถํ | ๋ณด์/์ ๊ทผ ์ ์ด |
TCL | ํธ๋์ญ์ ์ ์ด์ด | COMMIT, ROLLBACK, SAVEPOINT | ํธ๋์ญ์ | DML ์์ ์ ์ด์ฉ |
๐ SQLD ์ํ ๋๋น ๊ฟํ!
- TRUNCATE๋ DDL์ด๋ค! (DELETE์ ๋ค๋ฅด๊ฒ ROLLBACK ์๋จ)
- DCL์ ์ฌ์ฉ์์ ๊ถํ์ ์กฐ์ ํ๋ค๋ ํฌ์ธํธ ๊ผญ ๊ธฐ์ต
- TCL์ DML๊ณผ ์ธํธ์ฒ๋ผ ์ธ์ฐ๊ธฐ → COMMIT์ INSERT/UPDATE/DELETE ํ ์ ์ฅ์ฉ