SQL INSERT 문 테이블에 데이터 추가하는 방법
INSERT 문은 데이터베이스 테이블에 새 데이터를 추가할 때 사용하는 가장 기본적인 SQL 명령어입니다. 이번 글에서는 초보자도 쉽게 이해할 수 있도록 INSERT INTO의 기본 문법과 구체적인 예시를 정리해 드립니다.
1. INSERT INTO 기본 문법과 사용 방법
테이블에 데이터를 추가할 때는 기본적으로 두 가지 방법이 있습니다.
1.1. 특정 필드를 지정하여 데이터 추가하기
필요한 필드만 선택하여 데이터를 추가할 수 있습니다.
기본 문법
INSERT INTO 테이블이름 (필드이름1, 필드이름2, ...)
VALUES (값1, 값2, ...);
예제
INSERT INTO Reservation (ID, Name, ReserveDate, RoomNum)
VALUES (5, '이순신', '2025-04-28', 1108);
1.2. 필드 이름을 생략하여 데이터 추가하기
모든 필드에 값을 추가할 때는 필드명을 생략할 수 있습니다. 이 경우 값의 순서가 테이블 구조(스키마)와 정확히 일치해야 합니다.
기본 문법
INSERT INTO 테이블이름
VALUES (값1, 값2, 값3, ...);
예제
INSERT INTO Reservation
VALUES (6, '김유신', '2025-02-20', 1201);
주의: 값 순서가 스키마 정의와 정확히 일치해야 합니다.
2. 필드 생략 시 주의사항과 조건
필드 이름을 생략하려면, 다음과 같은 조건 중 최소 하나를 충족해야 합니다.
- NULL 허용 필드인 경우
- DEFAULT 값 설정이 있는 경우
- AUTO_INCREMENT 설정이 있는 경우
위 조건을 만족하지 못하면, 반드시 값을 명시적으로 제공해야 합니다.
예제: 일부 필드를 생략하여 값 추가하기
-- ReserveDate, RoomNum 필드는 NULL 또는 DEFAULT 허용되어야 함
INSERT INTO Reservation (ID, Name)
VALUES (7, '안중근');
3. INSERT 문 필수 주의사항
3.1. 필드와 값 순서의 중요성
필드명을 생략했을 때 값의 순서는 반드시 테이블 스키마의 필드 정의 순서와 동일해야 합니다.
-- 올바른 예시 (필드명 생략 시 정확한 순서로)
INSERT INTO Reservation
VALUES (8, '강감찬', '2025-03-01', 1501);
3.2. 문자열 데이터는 작은따옴표로 감싸기
모든 문자열 데이터는 반드시 작은따옴표(')로 감싸야 합니다.
- 올바른 예시:
'홍길동' - 잘못된 예시:
"홍길동",홍길동
-- 올바른 사용법 예시
INSERT INTO Customer (ID, Name, Age, Address)
VALUES (5, '이순신', 45, '경남 통영');
4. 구체적 INSERT 활용 예시 모음
4.1. 전체 필드를 모두 명시하여 데이터 추가하기
INSERT INTO Reservation (ID, Name, ReserveDate, RoomNum)
VALUES (9, '윤봉길', '2025-05-12', 1302);
4.2. 일부 필드만 추가하기 (생략된 필드는 NULL 혹은 DEFAULT)
INSERT INTO Reservation (ID, Name, ReserveDate)
VALUES (10, '유관순', '2025-06-15');
4.3. 필드 생략하여 모든 데이터 추가 (스키마 순서 정확히)
INSERT INTO Customer
VALUES (6, '정약용', 40, '경기 남양주');
주의: AUTO_INCREMENT가 설정된 ID 필드는 생략 가능하며, 값 제공이 불필요합니다.
5. INSERT 문 요약 정리표
| 구분 | 문법 예시 | 비고 |
|---|---|---|
| 모든 필드 명시 | INSERT INTO Table(필드1, 필드2) VALUES (값1, 값2); |
명시적 필드 지정 |
| 필드 생략 가능 | INSERT INTO Table VALUES (값1, 값2, 값3); |
순서 정확 필수 |
| 필드 생략 조건 | NULL 허용, DEFAULT 설정, AUTO_INCREMENT 필드 | 값 생략 가능 |
| 문자열 값 | '문자열'로 감싸기 필수 |
작은따옴표 사용 |
질문 정리
-
INSERT 문에서 숫자는 작은따옴표로 감싸나요?
- 아니요. 숫자 타입은 작은따옴표 없이 그대로 입력합니다. (예:
VALUES(1, '홍길동'))
- 아니요. 숫자 타입은 작은따옴표 없이 그대로 입력합니다. (예:
-
DEFAULT 값은 언제 사용하나요?
- 특정 필드 값이 명시되지 않았을 때 자동으로 지정된 기본값을 사용할 때 유용합니다.
-
AUTO_INCREMENT 필드가 있는 테이블에 값을 추가할 때 ID 값을 직접 넣어야 하나요?
- AUTO_INCREMENT 필드 값은 생략 가능합니다. 데이터베이스가 자동으로 값을 생성해줍니다.
-
여러 데이터를 한 번에 추가할 수도 있나요?
-
가능합니다. 예시:
INSERT INTO Reservation (ID, Name) VALUES (11, '홍범도'), (12, '신사임당');
-
-
필드 순서를 틀렸을 때 데이터를 수정할 수 있나요?
- 데이터를 잘못 입력했다면
UPDATE문을 통해 수정 가능합니다.
- 데이터를 잘못 입력했다면
댓글남기기