[MariaDB] SQL문 - DML

이지연·2025년 11월 21일

개요

이번 포스팅에서는 MySQL 및 관계형 데이터베이스에서 가장 많이 사용하는 DML(Data Manipulation Language) 명령어(INSERT, UPDATE, DELETE, SELECT)를 실전 코드 중심 치트시트 형태로 정리해보겠다.


INSERT – 데이터 삽입

테이블에 새 데이터를 추가하는 구문이다.

-- author 테이블에 한 건 삽입
INSERT INTO author (name, email, age)
VALUES ('홍길동', 'hong@example.com', 30);
  • 컬럼 순서와 값의 순서가 일치해야 하며, 문자열은 '작은따옴표'로 묶어야 한다.
  • 실제 애플리케이션에서는 값을 직접 적기보다는 파라미터 바인딩(ex. VALUES (?, ?, ?) 형태)을 통해 동적으로 삽입하는 경우가 많다고 한다

UPDATE – 데이터 수정

특정 행(레코드)의 값을 원하는 대로 바꾸는 명령어다.

UPDATE author
SET email = 'hong2@example.com',
    age   = 31
WHERE name = '홍길동';
  • WHERE 조건을 꼭 지정해야 원하는 행만 변경된다.
  • 조건 없이 UPDATE를 실행하면 테이블의 모든 행이 변경되므로 항상 주의가 필요하다.
(실습) author 테이블의 id가 4인 데이터의 name과 email을 변경하는 쿼리문

DELETE – 데이터 삭제

조건에 맞는 행을 삭제한다.

DELETE FROM author
WHERE name = '홍길동';
  • 역시 WHERE 없이 DELETE FROM author; 를 하면 전체 데이터가 다 사라진다.
  • 한 번 삭제한 데이터는 복구가 어렵기 때문에 실행 전에 항상 확인하는 습관이 필요하다.

SELECT – 데이터 조회

조회 쿼리가 가장 많이 쓰이는 실전 명령어다.

1) 기본 조회

SELECT name, email
FROM author;

SELECT * FROM author;
  • 필요한 컬럼만 지정하거나, *로 모든 컬럼을 조회할 수도 있다.

2) 조건(where) 사용

SELECT *
FROM author
WHERE age >= 30;

SELECT *
FROM post
WHERE author_id IN (
    SELECT id
    FROM author
    WHERE name = '홍길동'
);
  • 비교 연산(>, <, >=, <=, =)과 논리 연산(and, or, in) 모두 가능하다.

3) DISTINCT – 중복 제거

SELECT DISTINCT age
FROM author;
  • 특정 컬럼의 “중복되지 않은 값 목록”만 보고 싶을 때 사용.

4) ORDER BY – 정렬

SELECT *
FROM author
ORDER BY name DESC;

SELECT *
FROM author
ORDER BY age ASC, name DESC;
  • 여러 컬럼 기준 정렬도 가능: 우선 순위가 높은 컬럼부터 정렬한다.
  • 기본은 오름차순(asc), 내림차순(desc)은 명시적으로 붙인다.

5) LIMIT – 결과 개수 제한

SELECT *
FROM author
ORDER BY age DESC
LIMIT 5;
  • 서브쿼리, 페이징, 분석 쿼리에서 결과 개수/범위를 지정하는 데 자주 쓰인다.

6) 별칭(Alias) 사용

SELECT name AS '이름'
FROM author;

SELECT a.name, a.email
FROM author AS a;

-- AS 생략 가능
SELECT a.name, a.email
FROM author a;
  • 별칭은 테이블/컬럼명을 짧게 바꿔서 쓰거나, join/서브쿼리에서 구분할 때 주로 사용된다.

7) NULL 조건 조회

SELECT *
FROM author
WHERE email IS NULL;

SELECT *
FROM author
WHERE email IS NOT NULL;
  • 컬럼 값이 NULL 또는 NULL이 아닌 행만 조회하고 싶을 때 사용된다.

DDL vs DML 개념 요약

  • DDL (Data Definition Language)

    • 테이블/스키마 “구조 자체”를 정의하는 명령
    • create, alter, drop
  • DML (Data Manipulation Language)

    • 데이터 조작에 집중된 명령
    • insert, update, delete, select
    • ★ 개발자가 실무에서 가장 많이 직접 타이핑하는 쿼리!!

참고:
show, describe는 DDL/DML과 결이 다르게
“DB 메타 정보”를 조회하는 계열로 분류된다.


마치며

이번 글에서는 자주 사용하는 DML 명령어를 간단하게 정리해보았다.

이 흐름만 손에 익으면 테스트 데이터 입력, 데이터 수정/삭제, 조건/정렬/페이징/집계 등
일상적인 데이터베이스 작업은 거의 대부분 직접 처리할 수 있겠지만 아직은 구조적으로 어떻게 설계를 해야할 지 등 살짝 막막하긴 함

순서도 조금 헷갈리고.. 계속 하다보면 SQLD 다시 응시하고싶어질지도?ㅋㅋㅋ

profile
Eazy하게

2개의 댓글

comment-user-thumbnail
2025년 12월 11일

Sql문 - dml
D 다이나믹
M 맘
L love

댓글에 효도 라고 달면 평생 부모님건강하심

1개의 답글