MySQL에서 데이터를 다루는 기본 명령은 SELECT(조회), INSERT(추가), UPDATE(수정), DELETE(삭제) 네 가지입니다. 이 글은 MySQL 8.4 기준으로 예제 표 하나를 두고, 조회로 대상을 먼저 확인한 뒤에 수정과 삭제를 실행하는 순서를 설명합니다.
- SELECT는 표에서 보고 싶은 행과 열을 고르는 명령이며, WHERE에 조건을 적으면 원하는 행만 볼 수 있습니다.
- INSERT는 표에 새 행을 추가하는 명령으로, 열 이름과 값을 짝지어 쓰면 값 순서를 헷갈리는 실수를 줄일 수 있습니다.
- UPDATE와 DELETE는 실행 전에 같은 조건으로 SELECT를 실행해 대상 행을 확인해야 하며, WHERE를 생략하면 표의 모든 행이 바뀌거나 지워집니다.
- InnoDB 표에서는 BEGIN으로 트랜잭션을 시작하고 결과를 확인한 뒤 COMMIT 또는 ROLLBACK을 실행해 되돌릴 수 있습니다.
MySQL 네 가지 기본 명령, 순서대로 익히기
MySQL 사용법을 처음 배울 때 가장 먼저 만나는 명령은 SELECT, INSERT, UPDATE, DELETE입니다. 이 네 가지는 표에서 데이터를 꺼내 보고, 새로 넣고, 값을 고치고, 행을 지우는 일을 맡습니다. 이 글은 MySQL 8.4를 기준으로 작은 예제 표 하나를 두고 네 명령을 확인하는 순서대로 연습합니다.
실습은 mysql 명령줄 클라이언트를 기준으로 설명합니다. DBeaver나 MySQL Workbench 같은 도구를 써도 SQL 문장은 거의 같고, 결과를 보는 화면과 실행 버튼 위치만 다릅니다.
네 명령의 역할과 실행 순서
가장 중요한 원칙은 순서입니다. 조회로 대상을 먼저 확인한 뒤에 값을 바꾸는 명령을 실행합니다. 순서를 바꾸면 되돌리기 어려운 실수가 생깁니다.
- SELECT는 표에서 보고 싶은 행과 열을 골라 결과로 보여 줍니다.
- INSERT는 표에 새로운 행을 하나 이상 추가합니다.
- UPDATE는 이미 있는 행의 값을 바꿉니다.
- DELETE는 조건에 맞는 행을 통째로 지웁니다.
SELECT: 조건에 맞는 행만 골라 보기
SELECT의 기본 형태는 SELECT 열이름 FROM 표이름 WHERE 조건; 입니다. WHERE를 생략하면 표의 모든 행이 나오고, 열 자리에 * 를 쓰면 모든 열이 나옵니다.
예시로 다음 표를 사용합니다. 표 이름은 student이고 행은 세 개이며, 아래 값은 설명을 위한 예시입니다.
| id | name | score |
|---|---|---|
| 1 | 김하늘 | 80 |
| 2 | 이바다 | 65 |
| 3 | 박솔 | 92 |
SELECT name, score FROM student WHERE score >= 80;
이 문장을 실행하면 score가 80 이상인 김하늘(80)과 박솔(92) 두 행이 나옵니다. 이바다(65)는 조건에 맞지 않아 결과에 없습니다.
결과 순서를 바꾸거나 개수를 줄일 때는 ORDER BY와 LIMIT를 붙입니다. 다음 문장은 점수가 높은 순서로 두 행만 보여 줍니다.
SELECT * FROM student ORDER BY score DESC LIMIT 2;
결과 행 수가 예상과 다르면 WHERE 조건의 값과 따옴표를 다시 확인해 보세요. 문자열은 '김하늘'처럼 따옴표로 감싸고, 숫자는 그대로 씁니다.
INSERT: 새 행을 넣고 바로 확인하기
INSERT는 표에 새 행을 추가합니다. 열 이름과 값을 짝지어 쓰면 값 순서를 헷갈리는 실수를 줄일 수 있습니다.
INSERT INTO student (id, name, score) VALUES (4, '최강', 70);
실행 후에는 SELECT * FROM student; 로 새 행이 들어갔는지 확인합니다. 같은 id 값을 다시 넣으면 기본 키 중복 오류가 나고, 값의 개수가 열 개수와 다르면 열 개수 오류가 납니다.
UPDATE: 바꾸기 전에 조회로 대상을 좁히기
UPDATE는 이미 있는 행의 값을 바꿉니다. WHERE를 빼면 표의 모든 행이 바뀌므로, 같은 조건으로 먼저 SELECT를 실행해 대상 행을 눈으로 확인하는 습관이 필요합니다.
SELECT * FROM student WHERE id = 2;
UPDATE student SET score = 75 WHERE id = 2;
실행하면 몇 행이 바뀌었는지가 표시됩니다. 조회했을 때 확인한 행 수와 이 숫자가 다르면 바로 멈추고 결과를 다시 확인해 보세요.
InnoDB 표라면 트랜잭션으로 되돌릴 수 있습니다. BEGIN; 으로 시작해 값을 확인한 뒤 COMMIT; 하고, 잘못됐으면 ROLLBACK; 을 실행합니다. 다만 mysql 클라이언트는 기본적으로 문장 하나하나가 바로 반영되므로, 트랜잭션을 시작했는지 먼저 확인하는 편이 안전합니다.
DELETE: 지우기 전에 되돌릴 준비하기
DELETE는 조건에 맞는 행을 통째로 지웁니다. 지운 행은 자동으로 돌아오지 않으므로, 백업이 가장 확실한 안전장치입니다.
- 같은 WHERE 조건으로 SELECT를 실행해 지울 행을 먼저 확인합니다.
- mysqldump 같은 도구로 대상 표를 파일로 내려받아 백업합니다.
- DELETE FROM student WHERE id = 3; 처럼 대상을 좁혀 실행합니다.
- 바뀐 행 수를 확인하고, 잘못됐으면 ROLLBACK이나 백업 복원으로 되돌립니다.
WHERE를 생략한 DELETE FROM student; 는 표의 모든 행을 지웁니다. 전체 삭제가 정말 필요할 때만 쓰고, 실행 전에는 반드시 백업 파일이 있는지 확인하세요.
자주 하는 실수와 마무리 점검
가장 잦은 실수는 WHERE를 빠뜨리는 것과 문자열 비교에서 따옴표를 빼는 것입니다. 또 조회한 대상 행 수와 수정·삭제된 행 수를 비교하지 않고 넘어가는 습관도 위험합니다.
작업 마무리는 세 가지 확인으로 끝냅니다. 실행한 조건이 맞았는지, 바뀐 행 수가 예상과 같은지, 백업이나 롤백으로 되돌릴 수 있는지를 차례로 살펴봅니다.
결국 네 명령은 확인하고 바꾸기의 반복입니다. SELECT로 먼저 확인하는 습관만 들여도 UPDATE와 DELETE에서 생기는 큰 실수를 줄일 수 있습니다.
출처
- MySQL 8.4 Reference Manual — 5.3.4 Retrieving Data MySQL · 2026-09-30
- MySQL 8.4 Reference Manual — 5.3.4.1 Selecting All Data MySQL · 2026-09-30
- MySQL 8.4 Reference Manual — 5.2 Entering Queries MySQL · 2026-09-30
- MySQL 8.4 Reference Manual — Chapter 15 SQL Statements MySQL · 2026-09-30