- 0
- 136 단어
INSERT는 SQL에서 데이터베이스의 테이블에 새로운 데이터를 추가할 때 사용하는 구문입니다. SELECT가 데이터를 조회하는 명령이라면 INSERT는 테이블에 새로운 행을 저장하는 역할을 합니다. 회원 가입 정보나 상품 정보, 주문 내역처럼 새로운 데이터가 발생했을 때 해당 내용을 데이터베이스에 저장하기 위해 사용합니다.
INSERT의 기본 문법
INSERT는 INSERT INTO 뒤에 데이터를 추가할 테이블을 지정하고, VALUES 뒤에 실제로 저장할 값을 작성하는 방식으로 사용합니다.
기본적인 형태는 다음과 같습니다.
INSERT INTO member (name, age, city)
VALUES ('김철수', 30, '서울');
위 쿼리는 member 테이블에 새로운 회원 정보를 추가합니다. name에는 김철수, age에는 30, city에는 서울이라는 값이 저장됩니다.
여기서 컬럼명을 직접 지정하는 것이 중요합니다. 어떤 값을 어떤 컬럼에 저장할 것인지 명확하게 표현할 수 있기 때문입니다.
예를 들어 다음과 같이 작성할 수도 있습니다.
INSERT INTO member
VALUES (1, '김철수', 30, '서울');
테이블의 모든 컬럼 순서에 맞춰 값을 입력하는 방식입니다. 하지만 테이블의 컬럼 순서가 변경되거나 컬럼이 추가되면 쿼리가 예상과 다르게 동작할 수 있습니다. 따라서 실제 개발에서는 필요한 컬럼을 명시적으로 지정하는 방식이 보다 안전합니다.
INSERT를 실행하면 기존 데이터가 수정되는 것이 아니라 새로운 행이 추가됩니다. 따라서 같은 테이블에 여러 회원이 존재하는 경우 각각의 회원 정보가 새로운 행으로 저장됩니다.
여러 개의 데이터 추가하기
INSERT는 하나의 행만 추가할 수 있는 것이 아니라 여러 개의 데이터를 한 번에 추가할 수도 있습니다.
INSERT INTO member (name, age, city)
VALUES
('김철수', 30, '서울'),
('이영희', 25, '부산'),
('박민수', 35, '대구');
위 쿼리는 세 개의 회원 데이터를 한 번의 INSERT 문으로 추가합니다.
여러 데이터를 한 번에 추가하면 각각의 데이터를 별도의 INSERT 문으로 반복해서 실행하는 것보다 SQL 문을 간결하게 작성할 수 있습니다. 또한 여러 데이터를 한꺼번에 처리해야 하는 상황에서 활용할 수 있습니다.
INSERT를 사용할 때는 입력하려는 값의 데이터 타입과 컬럼의 제약 조건도 확인해야 합니다. 숫자 컬럼에는 일반적으로 숫자를 입력하고 문자열에는 작은따옴표를 사용합니다.
INSERT INTO member (name, age)
VALUES ('김철수', 30);
문자열인 김철수는 작은따옴표로 감싸고 숫자인 30은 따옴표 없이 작성합니다.
날짜와 시간 데이터를 저장하는 경우에도 컬럼의 데이터 타입에 맞는 값을 입력해야 합니다.
INSERT INTO member (name, created_at)
VALUES ('김철수', '2026-09-20');
실제 데이터베이스에서는 날짜와 시간의 저장 형식이 DBMS와 컬럼의 데이터 타입에 따라 달라질 수 있으므로 테이블 구조를 확인한 뒤 데이터를 입력해야 합니다.
기본 키와 제약 조건
INSERT를 사용할 때는 테이블에 설정된 제약 조건도 함께 고려해야 합니다. 특히 기본 키가 설정된 테이블에서는 이미 존재하는 기본 키 값을 다시 입력할 수 없습니다.
예를 들어 id가 기본 키이고 자동으로 번호가 증가하도록 설정되어 있다면 다음과 같이 회원 정보를 추가할 수 있습니다.
INSERT INTO member (name, age, city)
VALUES ('김철수', 30, '서울');
이 경우 데이터베이스가 새로운 회원의 ID를 자동으로 생성하도록 설정되어 있다면 INSERT 문에서 id를 직접 입력하지 않아도 됩니다.
반대로 기본 키 값을 직접 입력해야 하는 구조라면 다음과 같이 작성할 수 있습니다.
INSERT INTO member (id, name, age)
VALUES (101, '김철수', 30);
이때 이미 id가 101인 데이터가 존재한다면 기본 키 중복으로 인해 INSERT가 정상적으로 실행되지 않을 수 있습니다.
UNIQUE 제약 조건도 INSERT에 영향을 줍니다. 예를 들어 이메일 컬럼에 UNIQUE가 설정되어 있다면 동일한 이메일을 가진 데이터를 여러 개 저장할 수 없습니다.
INSERT INTO member (email, name)
VALUES ('test@example.com', '김철수');
이미 동일한 이메일이 존재한다면 데이터베이스는 제약 조건 위반으로 INSERT를 처리하지 않습니다.
외래 키가 설정된 컬럼도 주의해야 합니다. 다른 테이블의 데이터를 참조하는 외래 키에 존재하지 않는 값을 입력하면 데이터 무결성 문제를 방지하기 위해 INSERT가 거부될 수 있습니다.
따라서 INSERT는 단순히 값을 입력하는 기능처럼 보이지만 실제로는 기본 키, 외래 키, UNIQUE, NOT NULL 등의 테이블 제약 조건을 만족해야 정상적으로 데이터가 저장됩니다.
INSERT는 회원 가입, 상품 등록, 주문 생성 등 새로운 데이터가 발생하는 대부분의 서비스에서 사용됩니다. 애플리케이션에서 사용자가 새로운 정보를 입력하면 서버가 해당 정보를 전달받고 INSERT SQL을 실행하여 데이터베이스에 새로운 행을 저장하는 방식으로 동작할 수 있습니다.
결국 INSERT는 테이블에 새로운 데이터를 추가하기 위한 SQL 구문입니다. INSERT INTO 뒤에 대상 테이블과 컬럼을 지정하고 VALUES 뒤에 저장할 값을 입력합니다. 하나의 행뿐만 아니라 여러 행을 한 번에 추가할 수도 있으며, 기본 키나 UNIQUE와 같은 제약 조건을 만족해야 정상적으로 데이터가 저장됩니다. 다음 단계에서는 이미 저장된 데이터를 변경하는 UPDATE에 대해 알아보겠습니다.