๐ ๊ด๋ฆฌ๊ตฌ๋ฌธ ์ด๋?
๊ด๋ฆฌ ๊ตฌ๋ฌธ(Management Statement)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ์ฒด(ํ
์ด๋ธ, ์ฌ์ฉ์, ๊ถํ, ์ ์ฅ๊ณต๊ฐ ๋ฑ)๋ฅผ ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ํ๊ฑฐ๋ ์์คํ
์์ฒด๋ฅผ ๊ด๋ฆฌํ ๋ ์ฌ์ฉํ๋ SQL ๊ตฌ๋ฌธ์ ๋งํจ

1. DML (Data Manupulation Language)
- ๋ฐ์ดํฐ์ ์กฐํ(SELECT), ์ฝ์
(INSERT), ์์ (UPDATE), ์ญ์ (DELETE), ๋ณํฉ(MERGE)
- ์ ์ฅ(COMMIT) ํน์ ์ทจ์(ROLLBACK) ๋ฐ๋์ ํ์
1) SELECT (์กฐํ)
- ๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์ฌ์ฉ
- SELECT ๋ฌธ์ฅ์ ์ฌ์ฉํ์ฌ ๋ถ๋ฌ์ฌ ์ปฌ๋ผ๋ช
, ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ ์
- *๋ฅผ ์ฌ์ฉํด ํ
์ด๋ธ ๋ด ์ ์ฒด ์ปฌ๋ผ๋ช
์ ๋ถ๋ฌ์ฌ ์ ์๊ณ ์ํ๋ ์ปฌ๋ผ์ ์ปด๋ง(,)๋ก ๋์ดํด ์์ฑ ๊ฐ๋ฅ
- FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY ์์๋๋ก ์คํ๋จ

2) INSERT (์ฝ์
)
- ํ
์ด๋ธ์ ํ์ ์ฝ์
ํ ๋ ์ฌ์ฉ
- ํ ๋ฒ์ ํ ํ๋ง ์
๋ ฅ๊ฐ๋ฅ(MS-SQL SERVER์ ์ฌ๋ฌ ํ ๋์ ์ฝ์
๊ฐ๋ฅ)
- ํ๋์ ์ปฌ๋ผ์๋ ํ ๊ฐ๋ง ์ฝ์
๊ฐ๋ฅ
- ์ปฌ๋ผ๋ณ ๋ฐ์ดํฐํ์
๊ณผ ์ฌ์ด์ฆ์ ๋ง๊ฒ ์ฝ์
- INTO์ ์ ์ปฌ๋ผ๋ช
์ ๋ช
์ํ์ฌ ์ผ๋ถ ์ปฌ๋ผ๋ง ์
๋ ฅ๊ฐ๋ฅ, ์์ฑ ์ ํ ์ปฌ๋ผ์ NULL

3) UPDATE (์์ )
- ๋ฐ์ดํฐ๋ฅผ ์์ ํ ๋ ์ฌ์ฉ
- ์ปฌ๋ผ ๋จ์๋ก ์ํ
- ๋ค์ค ์ปฌ๋ผ ์์ ๊ฐ๋ฅ



4) DELETE (์ญ์ )
- ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉ
- ํ ๋จ์๋ก ์คํ

5) MERGE (๋ณํฉ)
- ๋ฐ์ดํฐ๋ฅผ ๋ณํฉํ ๋ ์ฌ์ฉ
- ์ฐธ์กฐ ํ
์ด๋ธ๊ณผ ๋์ผํ๊ฒ ๋ง์ถ๋ ์์
(์ฐธ์กฐํ
์ด๋ธ์ ๋ฐ์ดํฐ ์
๋ ฅ, ์ฐธ์กฐํ
์ด๋ธ์ ๊ฐ์ผ๋ก ์์ ๋ฑ)
-> INSERT, UPDATE, DELETE ์์
์ ๋์์ ์ํ
- ์์ ํ ํ
์ด๋ธ ๋ช
์ MERGE INTO์ ์ ๋ช
์, ์ฐธ์กฐํ
์ด๋ธ์ USING์ ์ ๋ช
์
- ๋ ํ
์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ ์ฐธ์กฐ ์กฐ๊ฑด์ ON์ ๋ช
์(๊ดํธ ํ์)

2. DDL (Data Definition Language)
- ๋ฐ์ดํฐ ์ ์์ด
- ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ ์(๊ฐ์ฒด ์์ฑ, ์ญ์ , ๋ณ๊ฒฝ) ์ธ์ด
- CREATE(๊ฐ์ฒด ์์ฑ), ALTER(๊ฐ์ฒด ๋ณ๊ฒฝ), DROP(๊ฐ์ฒด ์ญ์ ), TRUNCATE(๊ฐ์ฒด ๋ด ๋ฐ์ดํฐ ์ญ์ )
- AUTO COMMIT(๋ช
๋ น์ด๋ฅผ ์ํํ๋ฉด ์๋์ผ๋ก ์ปค๋ฐ, ์๋ณต ๋ถ๊ฐ)
1) CREATE (์์ฑ)
- ํ
์ด๋ธ์ด๋ ์ธ๋ฑ์ค์ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ช
๋ น์ด
- ํ
์ด๋ธ ์์ฑ ์ ํ
์ด๋ธ๋ช
, ์ปฌ๋ผ๋ช
, ์ปฌ๋ผ์์, ์ปฌ๋ผํฌ๊ธฐ, ์ปฌ๋ผ์ ๋ฐ์ดํฐํ์
์ ์ ํ์
- ํ
์ด๋ธ ์์ฑ ์ ๊ฐ ์ปฌ๋ผ์ ์ ์ฝ์กฐ๊ฑด ๋ฐ ๊ธฐ๋ณธ๊ฐ์ ์๋ต ๊ฐ๋ฅ
- ํ
์ด๋ธ ์์ฑ ์ ์์ ์ ๋ช
์ ๊ฐ๋ฅ(์๋ต ์ ๋ช
๋ น์ด ์ํ ๊ณ์ ์์ )
- ์ซ์ ์ปฌ๋ผ์ ๊ฒฝ์ฐ ์ปฌ๋ผ ์ฌ์ด์ฆ ์๋ต ๊ฐ๋ฅ(๋ ์ง ์ปฌ๋ผ์ ์ฌ์ด์ฆ ๋ช
์ X)


- CTAS ๋ฌธ๋ฒ ํน์ง
- ๋ณต์ ํ
์ด๋ธ์ ์ปฌ๋ผ๋ช
๊ณผ ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์
์ด ๋ณต์ ๋จ
- SELECT ๋ฌธ์์ ์ปฌ๋ผ๋ณ์นญ ์ฌ์ฉ ์ ์ปฌ๋ผ๋ณ์นญ ์ด๋ฆ์ผ๋ก ์์ฑ
- CREATE ๋ฌธ์์ ์ปฌ๋ผ๋ช
๋ณ๊ฒฝ ๊ฐ๋ฅ
- NULL ์์ฑ๋ ๋ณต์ ๋จ
- ํ
์ด๋ธ์ ์๋ ์ ์ฝ์กฐ๊ฑด, INDEX ๋ฑ์ ๋ณต์ ๋์ง ์์
2) ALTER (๋ณ๊ฒฝ)
- ํ
์ด๋ธ ๊ตฌ์กฐ ๋ณ๊ฒฝ(์ปฌ๋ผ๋ช
, ์ปฌ๋ผ ๋ฐ์ดํฐํ์
, ์ปฌ๋ผ ์ฌ์ด์ฆ, DEFAULT ๊ฐ, ์ปฌ๋ผ ์ญ์ , ์ปฌ๋ผ ์ถ๊ฐ, ์ ์ฝ์กฐ๊ฑด)
- ์ปฌ๋ผ ์์ ๋ณ๊ฒฝ ๋ถ๊ฐ(์ฌ์์ฑ์ผ๋ก ํด๊ฒฐ)
- ์ปฌ๋ผ ์ถ๊ฐ

- ์ปฌ๋ผ ์์ฑ ๋ณ๊ฒฝ

- ์ปฌ๋ผ ์ด๋ฆ ๋ณ๊ฒฝ

3) DROP (์ญ์ )
- ๊ฐ์ฒด(ํ
์ด๋ธ, ์ธ๋ฑ์ค ๋ฑ) ์ญ์
- DROP ํ์๋ ์กฐํ๊ฐ ๋ถ๊ฐ๋ฅ

4) TRUNCATE (๋ฐ์ดํฐ๋ง ์ญ์ )
- ํ
์ด๋ธ์ ๊ตฌ์กฐ๋ ๋จ๊ธฐ๊ณ ๋ฐ์ดํฐ๋ง ์ฆ์ ์ญ์
- RECYCLEBIN์ ๋จ์ง ์์

DELETE / DROP / TRUNCATE
DELETE : ๋ฐ์ดํฐ ์ผ๋ถ ๋๋ ์ ์ฒด ์ญ์ , ๋กค๋ฐฑ ๊ฐ๋ฅ
DROP : ํ
์ด๋ธ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ญ์ , AUTO COMMIT
TRUNCATE : ํ
์ด๋ธ์ ๊ตฌ์กฐ๋ ๋จ๊ธฐ๊ณ ๋ฐ์ดํฐ๋ง ๋ชจ๋ ์ญ์ , AUTO COMMIT
3. DCL (Data Control Language)
- ๋ฐ์ดํฐ ์ ์ด์ด๋ก ๊ฐ์ฒด์ ๋ํ ๊ถํ์ ๋ถ์ฌ(GRANT)ํ๊ฑฐ๋ ํ์(REVOKE)ํ๋ ๊ธฐ๋ฅ
- ํ
์ด๋ธ ์์ ์๋ ํ๊ณ์ ์ ํ
์ด๋ธ ์กฐํ ๋ฐ ์์ ๊ถํ ๋ถ์ฌ ๋ฐ ํ์ ๊ฐ๋ฅ
1) GRANT (๊ถํ ๋ถ์ฌ)
- ๊ถํ ๋ถ์ฌ ์ ๋ฐ๋์ ํ
์ด๋ธ ์์ ์๋ ๊ด๋ฆฌ์๊ณ์ (SYS, SYSTEM)์ผ๋ก ์ ์ํ์ฌ ๊ถํ์ ๋ถ์ฌํ์ฌ์ผ ํจ
- ๋์์ ์ฌ๋ฌ ์ ์ ์ ๋ํ ๊ถํ ๋ถ์ฌ ๊ฐ๋ฅ
- ๋์ ์ฌ๋ฌ ๊ถํ ๋ถ์ฌ ๊ฐ๋ฅ
- ๋์ ์ฌ๋ฌ ๊ฐ์ฒด ๊ถํ ๋ถ์ฌ ๋ถ๊ฐ

2) REVOKE (๊ถํ ํ์)
- ๋์ ์ฌ๋ฌ ๊ถํ ํ์ ๊ฐ๋ฅ
- ์ด๋ฏธ ํ์๋ ๊ถํ ์ฌํ์ ๋ถ๊ฐ๋ฅ
- ๋์ ์ฌ๋ฌ ์ ์ ๋ก๋ถํฐ์ ๊ถํ ํ์ ๊ฐ๋ฅ
WITH GRANT OPTION / WITH ADMIN OPTION
1. WITH GRANT OPTION
- WITH GRANT OPTION์ผ๋ก ๋ฐ์ ์ค๋ธ์ ํธ ๊ถํ์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ๋ถ์ฌํ ์ ์์
- ์ค๊ฐ ๊ด๋ฆฌ์๊ฐ ๋ถ์ฌํ ๊ถํ์ ์ค๊ฐ๊ด๋ฆฌ์๋ง ํ์ ๊ฐ๋ฅ
- ์ค๊ฐ๊ด๋ฆฌ์์๊ฒ ๋ถ์ฌ๋ ๊ถํ ํ์ ์ ์ 3์์๊ฒ ๋ถ์ฌ๋ ๊ถํ๋ ํจ๊ป ์ฌ๋ผ์ง
2. WITH ADMIN OPTION
- WITH ADMIN OPTION์ ํตํด ๋ถ์ฌ ๋ฐ์ ์์คํ
๊ถํ์ ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ๋ถ์ฌํ ์ ์์
- ์ค๊ฐ๊ด๋ฆฌ์๋ฅผ ๊ฑฐ์น์ง ์๊ณ ์ง์ ํ์ ๊ฐ๋ฅ
- ์ค๊ฐ๊ด๋ฆฌ์ ๊ถํ ํ์ ์ ์ 3์์๊ฒ ๋ถ์ฌ๋ ๊ถํ์ ํ์๋์ง์๊ณ ๋จ์์์
4. TCL (Transaction Control Language)
- ํธ๋์ญ์
์ ์ด์ด๋ก COMMIT, ROLLBACK๋ฑ ํฌํจ
- DML์ ์ํด ์กฐ์๋ ๊ฒฐ๊ณผ๋ฅผ ํธ๋์ญ์
๋จ์ ๋ณ๋ก ์ ์ดํ๋ ๋ช
๋ น์ด
- DML ์ํ ํ ํธ๋์ญ์
์ ์ ์ ์ข
๋ฃํ์ง ์๋ ๊ฒฝ์ฐ LOCK ๋ฐ์ ๊ฐ๋ฅ์ฑ ์์
1) COMMIT (ํ์ )
- ์
๋ ฅ, ์์ ์ญ์ ํ ๋ฐ์ดํฐ์ ์ด์์ด ์์ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ช
๋ น์ด
- ํ ๋ฒ COMMIT์ ์ํํ๋ฉด COMMIT ์ด์ ์ ์ํ๋ DML์ ๋ชจ๋ ์ ์ฅ๋์ด ๊ทธ ์ ์ผ๋ก ๋์๊ฐ ์ ์์
- ORACLE์ DDL ์ AUTO COMMUT, SQL SERVER์ ์ค์ ๊ฐ๋ฅ
2) ROLLBACK (๋ณต๊ท)
- ํ
์ด๋ธ ๋ด ์
๋ ฅํ ๋ฐ์ดํฐ๋ ์์ ํ ๋ฐ์ดํฐ, ์ญ์ ํ ๋ฐ์ดํฐ์ ๋ํด ๋ณ๊ฒฝ์ ์ทจ์ํ๋ ๋ช
๋ น์ด
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ง ์๊ณ ์ต์ข
COMMIT ์ง์ , ํน์ SAVEPOINT ์ง์ ์ผ๋ก ์๋ณต
- ์ต์ข
COMMIT ์์ ์ด์ ๊น์ง ROLLBACK ๊ฐ๋ฅ
3) SAVEPOINT
- ํธ๋์ญ์
๋ด์์ ROLLBACK์ ๋ถ๋ถ์ ์ผ๋ก ์ํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ง์
- ์ฌ์ฉ์๊ฐ ์ํ๋ ์์น์ ์ํ๋ ์ด๋ฆ์ผ๋ก ์ค์ ๊ฐ๋ฅ

๋ค์์ ์ฝํ
๋ค