SQL DML - INSERT, UPDATE, DELETE로 데이터 조작하기

DBSQLDML
읽는데 7분 소요
처음 쓰여진 날: 2026-03-30
마지막 수정일: 2026-03-30
조회수: 0

요약

데이터를 추가(INSERT), 수정(UPDATE), 삭제(DELETE)하는 SQL DML 명령어를 정보처리기사 실기 기출문제와 함께 학습합니다.

DML 핵심 정리

DML(Data Manipulation Language, 데이터 조작어)은 테이블(행과 열로 구성된 2차원 표)에 저장된 데이터를 추가·수정·삭제·조회하는 명령어입니다.

명령어기본 구문설명
INSERTINSERT INTO 테이블 VALUES (...)데이터 추가
UPDATEUPDATE 테이블 SET 컬럼=값 WHERE 조건데이터 수정
DELETEDELETE FROM 테이블 WHERE 조건데이터 삭제
SELECTSELECT 컬럼 FROM 테이블 WHERE 조건데이터 조회

이 페이지에서는 테이블의 가로 한 줄을 이라고 표현합니다. 교재나 시험 문제에 따라 튜플(Tuple) 또는 레코드(Record)라고도 부르며, 모두 같은 개념입니다. 자세한 내용은 관계 데이터 모델 구성요소 페이지를 참고하세요.



INSERT - 데이터 추가

INSERT INTO ... VALUES - 새 데이터 삽입

sql
코드 하이라이팅 중...

주의사항:

  • 컬럼1 순서와 값 순서가 반드시 일치해야 합니다
  • 문자열2은 작은 따옴표(')로 감쌉니다
  • 숫자는 따옴표 없이 입력합니다

예시:

sql
코드 하이라이팅 중...

컬럼 목록 순서(학번, 이름, 학년, 과목)와 VALUES 순서가 정확히 대응해야 합니다. 순서가 어긋나면 값이 잘못된 컬럼에 들어갑니다.

sql
코드 하이라이팅 중...

INSERT INTO ... SELECT - 다른 테이블에서 복사

sql
코드 하이라이팅 중...

다른 테이블의 데이터를 조회하여 그대로 삽입합니다.

예시:

sql
코드 하이라이팅 중...


UPDATE - 데이터 수정

sql
코드 하이라이팅 중...

주의사항:

  • WHERE 절을 생략하면 모든 행이 수정됩니다
  • 여러 컬럼을 동시에 수정할 때는 쉼표(,)로 구분합니다

예시:

sql
코드 하이라이팅 중...

WHERE 없이 UPDATE 실행 시:

수정 전 부서 테이블:

부서주소
개발부부산
영업부대구
인사부광주
sql
코드 하이라이팅 중...

수정 후 — 조건 없이 모든 행이 변경됩니다:

부서주소
개발부서울
영업부서울
인사부서울


DELETE - 데이터 삭제

sql
코드 하이라이팅 중...

주의사항:

  • WHERE 절을 생략하면 모든 행이 삭제됩니다
  • 테이블 구조(컬럼 정의)는 유지됩니다. DROP은 테이블 자체를 아예 없애는 것과 다릅니다

예시:

sql
코드 하이라이팅 중...

WHERE 없이 DELETE 실행 시:

삭제 전 학생 테이블:

학번이름학년
20250101김민지1
20250102현진2
20250103이철수3
sql
코드 하이라이팅 중...

삭제 후 — 조건 없이 모든 행이 삭제됩니다:

학번이름학년
(없음)(없음)(없음)

테이블 자체(컬럼 구조)는 남아 있으며, 데이터만 전부 사라집니다.


ON DELETE CASCADE

테이블 간에 외래키(다른 테이블의 기본키를 참조하는 컬럼)로 연결된 경우, 참조 무결성(외래키로 연결된 두 테이블의 참조 관계가 항상 유효해야 한다는 규칙)을 지키기 위해 부모 행을 삭제할 때 자식 행도 함께 처리해야 합니다. ON DELETE CASCADE를 지정하면, 참조 대상(부모 테이블의 행)이 삭제될 때 참조하는 데이터(자식 테이블의 행)도 자동으로 함께 삭제됩니다.

sql
코드 하이라이팅 중...

INT3는 정수형 데이터 타입이고, VARCHAR(50)4은 최대 50자까지 저장하는 가변 길이 문자열 타입입니다. REFERENCES 과목(과목코드)5는 이 컬럼이 과목 테이블의 과목코드 컬럼을 참조한다는 의미입니다.

ON DELETE CASCADE 동작 예시:

CASCADE 설정 전 — 과목 테이블에서 과목코드 200을 삭제하려 하면 성적 테이블이 참조하고 있어 오류가 발생합니다.

CASCADE 설정 후:

삭제 전 — 과목 테이블삭제 전 — 성적 테이블
과목코드 100 (알고리즘)과목코드 100, 학번 20250101
과목코드 200 (자료구조)과목코드 200, 학번 20250102
sql
코드 하이라이팅 중...
삭제 후 — 과목 테이블삭제 후 — 성적 테이블
과목코드 100 (알고리즘)과목코드 100, 학번 20250101
과목코드 200 삭제됨과목코드 200 행도 자동 삭제됨

과목 테이블의 과목코드 200을 삭제하면, 성적 테이블에서 과목코드가 200인 행도 자동으로 삭제됩니다.


정보처리기사 실기 대비 문제




Footnotes

  1. 컬럼(Column): 테이블의 세로줄. 각 열이 하나의 데이터 항목(예: 이름, 학번)을 나타냅니다. 행(Row)은 테이블의 가로줄로, 한 건의 데이터 묶음입니다.

  2. 문자열: 글자로 이루어진 값. SQL에서는 '김민지'처럼 작은따옴표로 감싸야 문자열로 인식합니다. 따옴표가 없으면 SQL이 컬럼명이나 키워드로 오해합니다.

  3. INT: 정수(소수점 없는 숫자)를 저장하는 데이터 타입. 예) 1, 100, -5

  4. VARCHAR(50): 가변 길이 문자열 타입. 괄호 안의 숫자는 저장 가능한 최대 글자 수입니다. 예) VARCHAR(50) → 최대 50자

  5. REFERENCES 테이블명(컬럼명): 이 컬럼이 다른 테이블의 특정 컬럼을 외래키로 참조한다는 선언입니다.


관련 글

(20개)
제목태그시험
SQL DDL과 DCL - 테이블 정의와 권한 관리
DCL
-
SQL JOIN과 서브쿼리 - 테이블 결합과 중첩 질의
서브쿼리
-
SQL SELECT 완전 정복 - WHERE, ORDER BY, GROUP BY, 집계함수
SELECT
-
학습 경로
범위: 1단계