๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป Computer Science/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] DML, DDL, DCL, TCL ์ด๋ž€? (์˜ˆ์‹œ ํฌํ•จ, ์‰ฝ๊ฒŒ ์™ธ์šฐ๋Š” ๋ฐฉ๋ฒ•)

by Jay Din 2024. 8. 21.
728x90
๋ฐ˜์‘ํ˜•

์™ธ์šฐ๋Š” ๋ฐฉ๋ฒ•

  • DML = ๋ฐ์ดํ„ฐ ์กฐ์ž‘: ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ, ๋ฐ์ดํ„ฐ ์ž์ฒด๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ช…๋ น์–ด๋“ค์ž…๋‹ˆ๋‹ค. "DML์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฌ๋‹ค."
  • DDL = ๋ฐ์ดํ„ฐ ์ •์˜: ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์„ ํ•œ๋‹ค๊ณ  ๊ธฐ์–ตํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. "DDL์€ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ ๋‹ค."
  • DCL = ๋ฐ์ดํ„ฐ ๊ถŒํ•œ: ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. "DCL์€ ์ ‘๊ทผ์„ ๊ด€๋ฆฌํ•œ๋‹ค."
  • TCL = ํŠธ๋žœ์žญ์…˜ ์ œ์–ด: ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. "TCL์€ ํŠธ๋žœ์žญ์…˜์„ ๋๋‚ธ๋‹ค."

 

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

DML์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ, ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” SQL ๋ฌธ์žฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

DML์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฃผ์š” ๋ช…๋ น์–ด:
    • SELECT: ๋ฐ์ดํ„ฐ ์กฐํšŒ
    • INSERT: ๋ฐ์ดํ„ฐ ์‚ฝ์ž…
    • UPDATE: ๋ฐ์ดํ„ฐ ์ˆ˜์ •
    • DELETE: ๋ฐ์ดํ„ฐ ์‚ญ์ œ

์˜ˆ์‹œ

SELECT * FROM Customers WHERE Country = 'USA';
INSERT INTO Customers (Name, Country) VALUES ('Alice', 'USA');
UPDATE Customers SET Country = 'Canada' WHERE Name = 'Alice';
DELETE FROM Customers WHERE Name = 'Alice';

 

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

DDL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ(์Šคํ‚ค๋งˆ)๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ” ์ž์ฒด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์กฐ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, ๋ทฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ์„ ์ƒ์„ฑ, ์ˆ˜์ •, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฃผ์š” ๋ช…๋ น์–ด:
    • CREATE: ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, ๋ทฐ ๋“ฑ์„ ์ƒ์„ฑ
    • ALTER: ๊ธฐ์กด ํ…Œ์ด๋ธ”์ด๋‚˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝ
    • DROP: ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, ๋ทฐ ๋“ฑ์„ ์‚ญ์ œ
    • TRUNCATE: ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น„์šฐ๊ณ  ๊ตฌ์กฐ๋งŒ ๋‚จ๊น€

์˜ˆ์‹œ

CREATE TABLE Customers (ID INT, Name VARCHAR(100), Country VARCHAR(100));
ALTER TABLE Customers ADD COLUMN Email VARCHAR(100);
DROP TABLE Customers;
TRUNCATE TABLE Customers;

 

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

DCL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฌ์šฉ์ž ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ฑฐ๋‚˜ ํšŒ์ˆ˜ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

DCL์€ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ๋ˆ„๊ฐ€ ๋ฌด์—‡์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํ•ด์ œํ•ฉ๋‹ˆ๋‹ค.

์ฃผ๋กœ ๋ณด์•ˆ๊ณผ ๊ด€๋ จ๋œ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

  • ์ฃผ์š” ๋ช…๋ น์–ด:
    • GRANT: ํŠน์ • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๊ถŒํ•œ ๋ถ€์—ฌ
    • REVOKE: ํŠน์ • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌ๋œ ๊ถŒํ•œ์„ ํšŒ์ˆ˜
GRANT SELECT ON Customers TO User1;
REVOKE SELECT ON Customers FROM User1;

 

4. TCL (Transaction Control Language) - ํŠธ๋žœ์žญ์…˜ ์ œ์–ด์–ด

TCL์€ ํŠธ๋žœ์žญ์…˜์„ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์—ฌ๋Ÿฌ ์ž‘์—…์ด ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ์‹คํ–‰๋  ๋•Œ, ๊ทธ ์ž‘์—…๋“ค์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋ ์ง€, ์•„๋‹ˆ๋ฉด ๋กค๋ฐฑ๋ ์ง€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

TCL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์˜ ์™„๋ฃŒ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ , ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์˜๊ตฌ์ ์œผ๋กœ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฃผ์š” ๋ช…๋ น์–ด:
    • COMMIT: ํŠธ๋žœ์žญ์…˜์—์„œ ์ˆ˜ํ–‰๋œ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ
    • ROLLBACK: ํŠธ๋žœ์žญ์…˜์—์„œ ์ˆ˜ํ–‰๋œ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ทจ์†Œํ•˜๊ณ  ์›๋ž˜ ์ƒํƒœ๋กœ ๋ณต๊ตฌ
    • SAVEPOINT: ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ํŠน์ • ์ง€์ ์„ ์„ค์ •ํ•˜์—ฌ ๊ทธ ์ง€์ ๊นŒ์ง€์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ €์žฅํ•˜๊ณ , ํ•„์š”์‹œ ๊ทธ ์ง€์ ์œผ๋กœ ๋กค๋ฐฑ ๊ฐ€๋Šฅ

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•