SQL) Management Statement

jinsungยท2025๋…„ 11์›” 13์ผ

SQL

๋ชฉ๋ก ๋ณด๊ธฐ
7/46
post-thumbnail

๐Ÿ˜ ๊ด€๋ฆฌ๊ตฌ๋ฌธ ์ด๋ž€?

๊ด€๋ฆฌ ๊ตฌ๋ฌธ(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์„ ๋ถ€๋ถ„์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์ง€์ 
  • ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์œ„์น˜์— ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ์„ค์ • ๊ฐ€๋Šฅ

๋‹ค์Œ์€ ์ฝ”ํ…Œ๋‹ค

profile
Data Engineer

0๊ฐœ์˜ ๋Œ“๊ธ€