DML(Data Manipulation Language)

mskimdev·2026년 4월 7일

MySQL

목록 보기
4/20

DML — 데이터를 다루는 명령어

DDL로 테이블 구조를 잡았다면, 이제 실제 데이터를 넣고 꺼내고 바꾸고 지우는 작업이 남는다. 이걸 담당하는 게 DML(Data Manipulation Language)이다.

INSERT, SELECT, UPDATE, DELETE — 네 가지만 알면 된다.


INSERT — 데이터 넣기

테이블에 새 행을 추가한다.

INSERT INTO members (member_name, email)
VALUES ('김민수', 'kim@email.com');

member_idAUTO_INCREMENT로 설정돼 있으니 직접 넣지 않아도 자동으로 채워진다.

여러 행을 한 번에 넣을 수도 있다.

INSERT INTO members (member_name, email)
VALUES ('김민수', 'kim@email.com'),
       ('이지현', 'lee@email.com'),
       ('박준혁', 'park@email.com');

SELECT — 데이터 조회하기

저장된 데이터를 꺼내 볼 때 쓴다. DML 중에서 가장 자주 쓰고, 옵션도 가장 많다.

전체 조회

-- members 테이블의 모든 컬럼, 모든 행 조회
SELECT * FROM members;

*는 모든 컬럼을 뜻한다. 컬럼이 많을 때는 필요한 것만 지정하는 게 낫다.

SELECT member_name, email FROM members;

WHERE — 조건 걸기

특정 조건에 맞는 행만 골라낼 때 쓴다.

-- member_id가 1인 행만 조회
SELECT * FROM members WHERE member_id = 1;

조건을 여러 개 걸 수도 있다.

-- 이름이 '김민수'이고 이메일이 특정 값인 행
SELECT * FROM members WHERE member_name = '김민수' AND email = 'kim@email.com';
연산자의미예시
=같다WHERE id = 1
!=다르다WHERE id != 1
>, <크다/작다WHERE price > 10000
AND둘 다 만족WHERE a = 1 AND b = 2
OR하나라도 만족WHERE a = 1 OR b = 2
LIKE패턴 일치WHERE name LIKE '김%'

LIKE%는 "아무 문자나 0개 이상"을 뜻한다. '김%'이면 김으로 시작하는 모든 값이 해당된다.

ORDER BY — 정렬

-- 가격 낮은 순으로 정렬
SELECT * FROM products ORDER BY price ASC;

-- 가격 높은 순으로 정렬
SELECT * FROM products ORDER BY price DESC;

ASC는 오름차순, DESC는 내림차순이다. 생략하면 기본값은 ASC다.

LIMIT — 개수 제한

-- 상위 5개만 조회
SELECT * FROM products ORDER BY price DESC LIMIT 5;


UPDATE — 데이터 수정하기

이미 저장된 데이터를 바꿀 때 쓴다.

-- member_id가 1인 회원의 이메일 변경
UPDATE members
SET email = 'minsu@email.com'
WHERE member_id = 1;

WHERE를 빠뜨리면 테이블의 모든 행이 바뀐다. 실수하기 쉬운 부분이라 항상 조건을 먼저 확인하고 실행하는 습관이 필요하다.

-- 이렇게 하면 모든 회원의 이메일이 바뀐다 (위험)
UPDATE members SET email = 'minsu@email.com';

DELETE — 데이터 삭제하기

특정 행을 삭제한다.

-- member_id가 2인 회원 삭제
DELETE FROM members WHERE member_id = 2;

UPDATE와 마찬가지로 WHERE가 없으면 테이블의 모든 행이 삭제된다.

-- 이렇게 하면 테이블이 텅 빈다 (위험)
DELETE FROM members;

DDL의 TRUNCATE와 결과는 같지만, DELETE는 행 하나씩 삭제하는 방식이라 조건을 걸 수 있다는 차이가 있다.


정리

명령어하는 일
INSERT새 행 추가
SELECT데이터 조회
UPDATE데이터 수정
DELETE행 삭제

UPDATE와 DELETE는 WHERE 없이 실행하면 테이블 전체에 적용된다. 습관적으로 WHERE 조건을 먼저 SELECT로 확인하고 나서 실행하는 게 안전하다.


profile
<- 개발 공부하는 나

0개의 댓글