🔹 DML(데이터 조작 언어)란?
1. DML의 정의
DML(Data Manipulation Language, 데이터 조작 언어)은 데이터베이스에 저장된 데이터를 삽입(INSERT), 조회(SELECT), 수정(UPDATE) 및 삭제(DELETE)하는 SQL 명령어 집합입니다.
DML은 사용자가 데이터를 동적으로 관리하고 조작할 수 있도록 하며, 애플리케이션과 데이터베이스 간의 데이터 처리 작업을 수행하는 핵심 역할을 합니다.
✅ DML의 주요 기능:
- 데이터를 테이블에 삽입(INSERT)하여 추가 가능
- 데이터를 조회(SELECT)하여 검색 가능
- 데이터를 수정(UPDATE)하여 변경 가능
- 데이터를 삭제(DELETE)하여 제거 가능
- 트랜잭션과 함께 사용하여 데이터의 무결성과 안정성을 유지
📌 DML은 데이터베이스 애플리케이션, 데이터 분석, 웹 서비스 및 백엔드 개발에서 필수적으로 사용됨
🔹 DML의 주요 명령어
DML에는 데이터를 삽입, 조회, 수정 및 삭제하는 기능이 포함됩니다.
✅ 1. INSERT – 데이터 삽입
- 새로운 데이터를 테이블에 추가하는 명령어
- 기본 키와 제약 조건을 준수해야 함
✔️ 기본 INSERT 예제:
INSERT INTO Customers (CustomerID, Name, Email, Phone)
VALUES (1, 'John Doe', 'john@example.com', '123-456-7890');
✔️ 특정 컬럼에만 데이터 삽입:
INSERT INTO Customers (Name, Email)
VALUES ('Jane Doe', 'jane@example.com');
✔️ 여러 개의 데이터 한 번에 삽입:
INSERT INTO Customers (CustomerID, Name, Email, Phone)
VALUES
(2, 'Alice Smith', 'alice@example.com', '555-1234'),
(3, 'Bob Johnson', 'bob@example.com', '777-5678');
📌 INSERT 문은 테이블에 데이터를 추가하며, 대량 삽입 시 성능 최적화를 위해 일괄 삽입(Bulk Insert) 기법을 사용할 수 있음
✅ 2. SELECT – 데이터 조회
- 테이블에서 데이터를 검색하는 명령어
- 조건을 사용하여 특정 데이터만 필터링 가능
✔️ 기본 SELECT 예제:
SELECT * FROM Customers;
✔️ 특정 컬럼만 조회:
SELECT Name, Email FROM Customers;
✔️ WHERE 조건을 사용하여 특정 데이터 검색:
SELECT * FROM Customers WHERE CustomerID = 1;
✔️ 정렬(ORDER BY)을 사용한 조회:
SELECT * FROM Customers ORDER BY Name ASC;
✔️ 데이터 그룹화(GROUP BY) 및 필터링(HAVING):
SELECT City, COUNT(*) AS CustomerCount
FROM Customers
GROUP BY City
HAVING COUNT(*) > 5;
📌 SELECT 문은 SQL에서 가장 많이 사용되며, 데이터 분석 및 보고서 작성에 필수적인 기능 제공
✅ 3. UPDATE – 데이터 수정
- 기존 데이터를 변경하는 명령어
- UPDATE 문 사용 시 WHERE 조건을 명확히 지정하지 않으면 모든 행이 수정될 수 있음(주의 필요!)
✔️ 기본 UPDATE 예제:
UPDATE Customers
SET Email = 'newemail@example.com'
WHERE CustomerID = 1;
✔️ 여러 개의 컬럼 수정:
UPDATE Customers
SET Email = 'alice_new@example.com', Phone = '999-888-7777'
WHERE CustomerID = 2;
✔️ 조건 없이 실행하면 테이블의 모든 데이터가 수정됨(위험!):
UPDATE Customers SET Email = 'default@example.com'; -- 모든 고객의 이메일이 변경됨
📌 UPDATE 문은 WHERE 절을 사용하여 특정 행만 수정하도록 주의해야 함
✅ 4. DELETE – 데이터 삭제
- 테이블에서 데이터를 제거하는 명령어
- DELETE 문 사용 시 WHERE 조건을 명확히 지정하지 않으면 모든 행이 삭제될 수 있음(주의 필요!)
✔️ 기본 DELETE 예제:
DELETE FROM Customers WHERE CustomerID = 1;
✔️ 특정 조건을 만족하는 데이터 삭제:
DELETE FROM Orders WHERE OrderDate < '2023-01-01';
✔️ 테이블의 모든 데이터 삭제(주의!):
DELETE FROM Customers; -- 모든 고객 데이터 삭제
📌 DELETE 문은 데이터를 제거하지만, 테이블 구조는 유지되므로 필요 시 복구할 수 있도록 백업이 필요함
🔹 DML과 트랜잭션(Transaction) 관리
DML 명령어는 트랜잭션 제어 언어(TCL: Transaction Control Language)와 함께 사용하여 데이터 무결성을 유지할 수 있습니다.
✅ 트랜잭션을 활용한 DML 예제
✔️ 트랜잭션 시작 후, 여러 개의 DML 실행 후 COMMIT 또는 ROLLBACK 가능
BEGIN TRANSACTION;
UPDATE Accounts SET Balance = Balance - 500 WHERE AccountID = 1001;
UPDATE Accounts SET Balance = Balance + 500 WHERE AccountID = 2001;
-- 문제가 없으면 변경 사항 저장
COMMIT;
✔️ 오류 발생 시 롤백:
BEGIN TRANSACTION;
UPDATE Accounts SET Balance = Balance - 500 WHERE AccountID = 1001;
UPDATE Accounts SET Balance = Balance + 500 WHERE AccountID = 2001;
-- 오류 발생 시 변경 사항 취소
ROLLBACK;
📌 트랜잭션을 사용하면 여러 개의 DML 문을 하나의 논리적 작업 단위로 묶어 처리 가능하며, 데이터의 안정성을 보장할 수 있음
🔹 DML을 활용한 실무 사례
1. 전자상거래 시스템에서 고객 주문 관리
📌 활용:
- 고객 주문 정보를 삽입, 조회, 수정 및 삭제하는 기능 제공
✔️ SQL 코드:
INSERT INTO Orders (OrderID, CustomerID, Product, Quantity, OrderDate)
VALUES (101, 1, 'Laptop', 1, '2024-02-20');
SELECT * FROM Orders WHERE CustomerID = 1;
UPDATE Orders SET Quantity = 2 WHERE OrderID = 101;
DELETE FROM Orders WHERE OrderID = 101;
📌 결론
✅ DML(데이터 조작 언어)은 데이터베이스에서 데이터를 삽입, 조회, 수정 및 삭제하는 핵심 SQL 명령어 집합이다.
✅ INSERT, SELECT, UPDATE, DELETE를 활용하여 데이터를 효과적으로 조작할 수 있다.
✅ 트랜잭션을 사용하면 데이터의 무결성과 안정성을 유지할 수 있다.
✅ DML은 전자상거래, 금융 시스템, 데이터 분석 등 다양한 분야에서 필수적으로 사용된다.
'IT이야기 > 데이터베이스' 카테고리의 다른 글
외래 키(Foreign Key): 관계형 데이터베이스에서 데이터 무결성을 유지하는 핵심 키 (0) | 2025.02.28 |
---|---|
DCL(데이터 제어 언어): 데이터베이스 보안과 접근 권한을 관리하는 SQL 명령어 (0) | 2025.02.28 |
DDL(데이터 정의 언어): 데이터베이스 구조를 정의하고 관리하는 핵심 SQL 명령어 (0) | 2025.02.28 |
데이터베이스 관리 시스템(DBMS): 데이터 저장과 관리를 최적화하는 핵심 시스템 (1) | 2025.02.27 |
캐파시티 플래닝(Capacity Planning): IT 인프라 최적화를 위한 필수 전략 (0) | 2025.02.27 |