DB

[DB] DDL, DML, DCL

Castle Bird 2026. 1. 5. 23:34

๐Ÿ“–

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด(SQL)๋Š” ๊ทธ ๋ชฉ์ ๊ณผ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ํฌ๊ฒŒ ์ •์˜์–ด(DDL), ์กฐ์ž‘์–ด(DML), ์ œ์–ด์–ด(DCL)๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค.

  • DDL(Data Definition Language): ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๊ทธ๋ฆ‡(Column/์Šคํ‚ค๋งˆ)์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•˜๋Š” ์–ธ์–ด
  • DML(Data Manipulation Language): ๊ทธ๋ฆ‡์— ๋‹ด๊ธด ๋‚ด์šฉ๋ฌผ(Row/๋ฐ์ดํ„ฐ)์„ ๋„ฃ๊ณ  ๋นผ๊ณ  ์ˆ˜์ •ํ•˜๋Š” ์–ธ์–ด
  • DCL(Data Control Language): ๊ทธ๋ฆ‡์— ์†์„ ๋Œˆ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ(User/๊ถŒํ•œ)์„ ์ •ํ•˜๋Š” ์–ธ์–ด

DDL, DML, DCL์„ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„

 

1. DDL (Data Definition Language, ๋ฐ์ดํ„ฐ ์ •์˜์–ด)

 

"๋ฐ์ดํ„ฐ์˜ ๊ทธ๋ฆ‡(Structure)์„ ๋งŒ๋“œ๋Š” ์–ธ์–ด"

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ณจ๊ฒฉ(Schema)์„ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ(Column), ๋ฐ์ดํ„ฐ ํƒ€์ž…, ์ œ์•ฝ ์กฐ๊ฑด ๋“ฑ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋  ๊ตฌ์กฐ ์ž์ฒด๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
  • ์‹คํ–‰ ์ฆ‰์‹œ ๋ฐ˜์˜(Auto Commit)๋˜๋ฉฐ ๋˜๋Œ๋ฆฌ๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
๋ช…๋ น์–ด ์„ค๋ช… ๋น„๊ณ 
CREATE ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด(ํ…Œ์ด๋ธ”, ๋ทฐ, ์ธ๋ฑ์Šค ๋“ฑ)๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. CREATE TABLE ...
ALTER ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋Ÿผ ์ถ”๊ฐ€/์‚ญ์ œ, ํƒ€์ž… ๋ณ€๊ฒฝ ๋“ฑ
DROP ์กด์žฌํ•˜๋˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ฅผ ์™„์ „ํžˆ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ ๋ชจ๋‘ ์‚ญ์ œ
TRUNCATE ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ(Row)๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ €์žฅ ๊ณต๊ฐ„์„ ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์กฐ(๊ป๋ฐ๊ธฐ)๋Š” ๋‚จ์Œ. ์‚ญ์ œ ํ›„ ๋ณต๊ตฌ ๋ถˆ๊ฐ€.

 


2. DML (Data Manipulation Language, ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด)

"๊ทธ๋ฆ‡ ์•ˆ์˜ ๋‚ด์šฉ๋ฌผ(Row)์„ ๋‹ค๋ฃจ๋Š” ์–ธ์–ด"

  • ์ •์˜๋œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์•ˆ์— ์‹ค์ œ ๋ฐ์ดํ„ฐ(Row/Record)๋ฅผ ์ž…๋ ฅ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์žฅ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋“ค์ž…๋‹ˆ๋‹ค.
  • ํŠธ๋žœ์žญ์…˜(Transaction)์˜ ๋Œ€์ƒ์ด ๋˜๋ฉฐ, COMMIT ์ „์—๋Š” ROLLBACK์„ ํ†ตํ•ด ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ช…๋ น์–ด ์„ค๋ช… ๋น„๊ณ 
SELECT ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰(์กฐํšŒ)ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์—†์Œ
INSERT ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ(Row)๋ฅผ ์‚ฝ์ž…(๋“ฑ๋ก)ํ•ฉ๋‹ˆ๋‹ค. INSERT INTO ...
UPDATE ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. UPDATE ... SET ...
DELETE ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์กฐ๊ฑด(WHERE) ์ง€์ • ๊ฐ€๋Šฅ. ๋ณต๊ตฌ ๊ฐ€๋Šฅ(Rollback).

3. DCL (Data Control Language, ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด)

"๊ทธ๋ฆ‡์— ์†๋Œˆ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์„ ์‹๋ณ„"

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ณ  ๊ฐ์ฒด๋“ค์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ํšŒ์ˆ˜ํ•˜๋Š” ์–ธ์–ด์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ, ๋ณด์•ˆ, ๋ณ‘ํ–‰ ์ œ์–ด๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
๋ช…๋ น์–ด ์„ค๋ช…
GRANT ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • ์ž‘์—…์— ๋Œ€ํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.
REVOKE ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌ๋œ ๊ถŒํ•œ์„ ํšŒ์ˆ˜(๋ฐ•ํƒˆ)ํ•ฉ๋‹ˆ๋‹ค.

 

์ฃผ์š” ๊ถŒํ•œ ์ƒ์„ธ (GRANT/REVOKE ๋Œ€์ƒ)

  • CONNECT: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ์Šคํ‚ค๋งˆ์— ์ ‘์†(์—ฐ๊ฒฐ)ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ.
  • USAGE: ์Šคํ‚ค๋งˆ, ์‹œํ€€์Šค, ํ•จ์ˆ˜ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ๊ถŒํ•œ.
  • SELECT / INSERT / UPDATE / DELETE: ํ•ด๋‹น DML ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ.
    • (์˜ˆ: A์‚ฌ์šฉ์ž์—๊ฒŒ SELECT ๊ถŒํ•œ๋งŒ ์ฃผ๋ฉด, ๋ฐ์ดํ„ฐ ์กฐํšŒ๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ˆ˜์ •/์‚ญ์ œ๋Š” ๋ถˆ๊ฐ€๋Šฅ)

4. Delete, Truncate, Drop ์ฐจ์ด

Delete, Truncate, Drop ์ฐจ์ด ์ด๋ฏธ์ง€

  • DELETE
    • ๋ฐ์ดํ„ฐ๋งŒ ์ง€์›Œ์ง€๊ณ  ์“ฐ๊ณ  ์žˆ๋˜ ๋””์Šคํฌ ์ƒ์˜ ๊ณต๊ฐ„์€ ๊ทธ๋Œ€๋กœ
    • DELETE๋Š” ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ณจ๋ผ์„œ ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅ
    • ROLLBACK ๊ฐ€๋Šฅ โญ
  • TRUNCATE
    • ์ตœ์ดˆ ํ…Œ์ด๋ธ”์ด ๋งŒ๋“ค์–ด์กŒ๋˜ ์ƒํƒœ, ์ฆ‰ ๋ฐ์ดํ„ฐ๊ฐ€ 1๊ฑด๋„ ์—†๋Š” ์ƒํƒœ๋กœ ๋ชจ๋“ ๋ฐ์ดํ„ฐ ์‚ญ์ œ, ์นผ๋Ÿผ๊ฐ’๋งŒ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์šฉ๋Ÿ‰๋„ ์ค„๊ณ  ์ธ๋ฑ์Šค ๋“ฑ๋„ ๋ชจ๋‘ ์‚ญ์ œ ๋ฉ๋‹ˆ๋‹ค.
    • ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œ ๋ถˆ๊ฐ€๋Šฅ. ์‚ฌ์šฉ ์ฆ‰์‹œ ๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”
    • ROLLBACK ๊ฑฐ์˜ ๋ถˆ๊ฐ€๋Šฅ โญ
  • DROP
    • ๋ฐ์ดํ„ฐ์™€ ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ์‚ญ์ œ.
    • ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋˜ ๊ณต๊ฐ„๋„ ๋ชจ๋‘ ๋ฐ˜๋‚ฉํ•˜๊ณ  ์ธ๋ฑ์Šค๋‚˜ ์ œ์•ฝ์กฐ๊ฑด ๋“ฑ ์˜ค๋ธŒ์ ํŠธ๋กœ ์‚ญ์ œ ๋ฉ๋‹ˆ๋‹ค.



'DB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[DB] Transaction, ACID  (0) 2026.01.14
[DB] ์ •๊ทœํ™”, ์—ญ์ •๊ทœํ™”  (0) 2026.01.06