데이터 조작어(DML) 완전 정복
: SELECT, INSERT, UPDATE, DELETE
📊 여러분, 데이터베이스에서 가장 많이 쓰는 네 가지 명령어가 뭔지 아세요?
SELECT, INSERT, UPDATE, DELETE!
이 네 가지가 없다면 데이터베이스 활용은 어려워요!
안녕하세요!
오늘은 데이터베이스 입문자라면 꼭 알아야 할 DML(Data Manipulation Language)의 핵심 명령어 4가지에 대해 알아보려고 해요.
이 네 가지 명령어는 단순한 문법이 아니라,
우리가 원하는 데이터를 "어떻게 가져오고", "어떻게 넣고", "어떻게 바꾸고", "어떻게 지우는지"를 정하는 아주 중요한 기능이에요.
실제로 실무에서 SQL을 쓴다면, 거의 80%는 이 명령어들과 함께할 거예요.
이번 글에서는 각 명령어의 문법뿐 아니라, 자주 하는 실수와 실전 예제까지 아주 디테일하게 알려드릴게요.
초보자도 이해하기 쉬운 방식으로, 실전 예제 중심으로 설명할 테니 부담 갖지 말고 따라와 주세요 😊
목차
1. DML이란? 🤔
DML,
즉 Data Manipulation Language는 말 그대로 데이터베이스 안의 데이터를 조작(Manipulate)하기 위한 SQL 명령어들이에요.
쉽게 말해,
데이터를 가져오고(SELECT), 추가하고(INSERT), 수정하고(UPDATE), 삭제하는(DELETE) 일을 담당하는 애들이죠.
📌 DML과 다른 SQL 종류는 뭐가 있을까?
- DDL (Data Definition Language):
- 테이블, 인덱스 등 데이터 구조를 정의할 때 사용해요 (예:
CREATE
,ALTER
,DROP
) - DCL (Data Control Language):
- 권한 관리에 사용돼요 (예:
GRANT
,REVOKE
) - TCL (Transaction Control Language):
- 트랜잭션을 제어해요 (예:
COMMIT
,ROLLBACK
)
🧾 DML 명령어 요약표
명령어 | 역할 | 기본 문법 |
---|---|---|
SELECT | 데이터 조회 | SELECT 컬럼명 FROM 테이블명; |
INSERT | 데이터 삽입 | INSERT INTO 테이블명 (컬럼1, 컬럼2) VALUES (값1, 값2); |
UPDATE | 데이터 수정 | UPDATE 테이블명 SET 컬럼=값 WHERE 조건; |
DELETE | 데이터 삭제 | DELETE FROM 테이블명 WHERE 조건; |
💡 왜 DML을 알아야 할까?
실제 애플리케이션에서는 사용자가 입력한 데이터를 저장하고, 수정하고, 삭제하는 일이 수시로 발생해요.
이 모든 작업이 DML로 이뤄지기 때문에, 백엔드 개발자라면 DML은 필수 역량이에요.
심지어 데이터 분석가나 파워 유저들도 DML을 통해 원하는 데이터를 정확하게 뽑아내는 데 능숙해야 하죠.
2. SELECT 문법과 실전 예제 🔍
SQL에서 데이터를 조회할 때 사용하는 명령어가 바로 SELECT입니다.
개발자들이 SQL을 사용할 때 가장 많이 쓰는 명령어이기도 하죠.
SELECT는 마치 "이 테이블에서 내가 원하는 데이터를 꺼내줘!"라고 말하는 거예요.
🔤 SELECT 기본 문법
SELECT 컬럼명1, 컬럼명2, ...
FROM 테이블명
WHERE 조건
ORDER BY 정렬기준 ASC|DESC
LIMIT 숫자;
예: 회원 테이블에서 이름(name)과 이메일(email)을 나이(age)가 25세 이상인 사람만 조회하고, 나이 순으로 정렬하려면?
SELECT name, email
FROM members
WHERE age >= 25
ORDER BY age ASC;
📚 자주 쓰는 SELECT 구문 예제
- 전체 조회:
SELECT * FROM 테이블명;
- 조건 조회:
SELECT name FROM members WHERE gender = 'M';
- 정렬:
SELECT * FROM orders ORDER BY created_at DESC;
- 제한(LIMIT):
SELECT * FROM products LIMIT 10;
😅 SELECT 할 때 실수하는 포인트
- WHERE 없이 조회했더니 테이블 전체가 나옴 😱
- 컬럼명을 오타 냈는데 에러 메시지에서 잘 안 알려줘요
- LIKE 사용 시 %와 _ 위치 헷갈림
- 정렬 기준을 ASC / DESC 제대로 안 써서 결과가 이상함
💡 팁: SELECT는 실습으로 익히는 게 최고예요!
직접 SELECT 쿼리를 작성해서 결과를 확인해보는 것만큼 좋은 학습법은 없어요.
무료 DB 툴(MySQL Workbench, DBeaver 등)을 설치해서 실습해보면 쿼리 감각이 금방 생깁니다.
3. INSERT로 데이터 추가하기 ✏️
데이터베이스에 새로운 정보를 저장하고 싶다면?
바로 INSERT를 사용해야죠! INSERT는 새로운 행(row)을 테이블에 추가하는 명령어예요.
회원가입을 예로 들면, 사용자가 정보를 입력하고 '가입하기'를 누르면 백엔드에서는 이 INSERT가 실행되고 있는 거랍니다.
📥 INSERT 기본 문법
INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3, ...)
VALUES (값1, 값2, 값3, ...);
예: 회원 테이블에 이름, 이메일, 나이를 추가한다면?
INSERT INTO members (name, email, age)
VALUES ('홍길동', 'hong@example.com', 30);
🧩 여러 행 한번에 INSERT 하기
INSERT INTO members (name, email, age)
VALUES
('김민수', 'minsu@example.com', 25),
('이하나', 'hana@example.com', 27),
('박철수', 'chulsoo@example.com', 31);
이렇게 여러 줄을 한 번에 넣으면 성능도 좋아지고 코드도 깔끔해져요.
특히 대량의 데이터를 입력할 때 유용하죠!
😵💫 INSERT에서 주의해야 할 점
- 모든 컬럼에 값을 넣지 않으면 NOT NULL 제약조건 에러 발생!
- 값의 순서를 컬럼 순서와 정확히 맞춰야 해요
- 중복된 primary key를 넣으면 duplicate key 에러가 납니다
- 숫자형 컬럼에 문자열 넣으면 오류 발생
💬 실무에서 자주 쓰는 팁
- 자동 증가(auto increment) 컬럼은 INSERT 시 생략 가능!
- SQL 인젝션 방지를 위해 Prepared Statement 사용 필수!
데이터를 쌓아가는 기본이 되는 명령어, INSERT. 실수 없이 잘 사용하는 게 중요하니, 꼭 실습을 통해 몸에 익히세요!
4. UPDATE로 데이터 수정하기 🛠️
데이터는 한 번 입력하고 끝이 아니죠.
회원이 이메일을 변경하거나, 주문 상태가 '배송 중'으로 바뀌는 등 정보는 계속해서 업데이트되기 마련입니다.
그럴 때 필요한 SQL 명령어가 바로 UPDATE입니다!
📝 UPDATE 기본 문법
UPDATE 테이블명
SET 컬럼명1 = 값1, 컬럼명2 = 값2, ...
WHERE 조건;
예: 회원 ID가 3번인 사람의 이메일을 변경하려면?
UPDATE members
SET email = 'newmail@example.com'
WHERE id = 3;
📎 WHERE 절은 필수! 실수 방지 필수!
WHERE 절을 빼고 UPDATE를 실행하면?
그 테이블의 모든 행(row)이 바뀌어버립니다.
실수로 이런 일이 벌어지면, 되돌릴 수도 없고 난감하겠죠.
꼭 WHERE 절을 넣어서 특정 조건만 업데이트하도록 해주세요!
🧪 여러 컬럼 동시에 수정하기
UPDATE members
SET name = '김새로운', age = 28
WHERE id = 5;
이렇게 한 번에 여러 필드를 바꿀 수도 있어요. 단, 콤마(,)로 구분하는 걸 잊지 마세요!
🔐 실무에서 UPDATE 할 때 팁
- UPDATE 전에 SELECT로 먼저 결과를 확인해보는 습관!
- 트랜잭션을 이용해 롤백 가능성을 열어두기!
데이터 수정은 예민한 작업이에요.
한 번 잘못 바꾸면 회복하기 힘들 수 있으니, 항상 신중하게 UPDATE 하도록 해요!
5. DELETE로 데이터 삭제하기 🗑️
데이터베이스에서 더 이상 필요하지 않은 데이터를 정리하고 싶을 때, 또는 잘못된 정보를 지워야 할 때 사용하는 명령어가 바로 DELETE입니다.
하지만 이 명령어는 되돌릴 수 없는 강력한 명령어이기 때문에 항상 주의가 필요해요!
🗑️ DELETE 기본 문법
DELETE FROM 테이블명
WHERE 조건;
예: id가 10인 회원의 정보를 삭제하려면?
DELETE FROM members
WHERE id = 10;
💣 WHERE 없이 DELETE 하면?
DELETE 명령어에서 WHERE 절을 생략하면 테이블 전체의 데이터가 몽땅 삭제됩니다 😨
실무에서 종종 발생하는 치명적인 실수예요.
DELETE 전에 반드시 WHERE 조건을 확인
하세요!
🧾 실무에서 많이 쓰는 DELETE 예시
-
DELETE FROM users WHERE last_login < '2023-01-01';
→ 오래된 로그인 기록 삭제 -
DELETE FROM cart WHERE user_id = 7;
→ 특정 사용자의 장바구니 비우기 -
DELETE FROM logs WHERE level = 'DEBUG';
→ 로그 중 디버그 레벨만 제거
🚨 DELETE 실수 줄이는 방법
- DELETE 전에 같은 조건으로 SELECT 해보기
- 조건 없이 실행되는 쿼리는 항상 다시 확인할 것
- 대량 삭제는 트랜잭션 안에서!
- 백업 또는 로그 기록은 꼭 남겨두기
DELETE는 강력한 만큼 위험하기도 해요.
항상 신중하게, 두 번 확인하고 실행하는 습관이 진짜 중요합니다.
마무리하며 💡
지금까지 데이터베이스의 핵심 DML 명령어인
SELECT,
INSERT,
UPDATE,
DELETE에 대해 함께 알아봤어요.
이 네 가지는 단순한 문법 그 이상입니다.
여러분이 서비스를 운영하거나 데이터를 다루는 모든 과정에서 반드시 사용되는 실전 도구예요.
처음에는 익숙하지 않을 수 있지만, 직접 쿼리를 써보고 실행하면서 감각이 점점 생길 거예요.
특히 실습을 많이 할수록 오류도 줄고, 데이터에 대한 감도도 날카로워집니다.
작은 쿼리 하나가 전체 데이터를 바꿀 수도 있는 만큼, 신중하고 정확하게 다루는 습관이 무엇보다 중요합니다.
마지막으로 팁 하나 드리자면, 실습할 때는 백업과 SELECT 미리보기를 꼭 활용하세요.
그리고 여러분이 오늘 배운 내용을 바탕으로 작은 프로젝트부터 도전해 보는 것도 정말 좋아요.
회원 관리 시스템이나 게시판 만들기 같은 것도 좋겠죠? 😉
'Database' 카테고리의 다른 글
데이터베이스 조작 예제 : 게시판 테이블 만들고 데이터 입력하기 (0) | 2025.04.07 |
---|---|
데이터 정의어(DDL)의 핵심! CREATE, ALTER, DROP 완전 정복 (0) | 2025.04.07 |
MySQL/MariaDB 설치 및 계정·DB 실습 가이드 (윈도우·리눅스·맥) (0) | 2025.04.07 |
ERD 설계 실습: 게시판 테이블 만들기 (2) | 2025.04.07 |
관계형 데이터베이스 개념 및 특징 완전정복 (5) | 2025.04.07 |