INSERT문은 데이터베이스 테이블에 데이터를 등록할 때 사용합니다.
기본 구조
기본적인 구조는 다음과 같습니다.
INSERT INTO [테이블명] (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...)
데이터를 넣고자 하는 테이블명과 어떤 컬럼에 데이터를 넣을지 컬럼 목록을 입력하고,
등록하고자 하는 값을 VALUES 뒤에 입력합니다.
주의할 점은 컬럼 개수와 값의 개수가 맞아야 합니다.
그리고 컬럼과 값의 타입이 맞아야 합니다.
컬럼의 순서는 실제 DB 테이블의 컬럼 순서와 달라도 괜찮습니다.
예를 들면, id, name, address 순서로 되어있는 테이블에 name, id, address로 컬럼을 입력하고 실행해도 됩니다.
컬럼과 데이터만 맞춰주면 됩니다.
예제
예제에 사용할 테이블 CREATE 구문은 다음과 같습니다.
# 예제에 사용할 테이블
create table tb_1 (
id int(11) not null auto_increment primary key comment 'key',
name varchar(255) not null comment '이름',
address varchar(255) null default '' comment '주소'
);
데이터 1건 삽입
데이터를 1건만 넣고 싶을 때는 위에서 설명한 구조를 그대로 사용하면 됩니다.
# 데이터 1건 등록 쿼리 예제
insert into tb_1 (id, name, address) values (1, 'Kim', 'Seoul');
데이터가 1건 등록되었습니다.
꼭 모든 컬럼을 다 넣어서 INSERT 쿼리를 실행하지 않아도 됩니다.
insert into tb_1 (id, name) values (2, 'Lee');
일부 컬럼에만 데이터를 넣을 수도 있습니다.
다만, NOT NULL 조건이 있는 컬럼은 제외하면 안됩니다.
NOT NULL 이 걸린 컬럼을 INSERT 구문에서 제외하고 싶으면 컬럼에 기본값을 설정하면 됩니다.
만약에 AUTO_INCREMENT가 사용된 컬럼, PK가 적용된 컬럼을 제외하면 다음과 같이 등록됩니다.
AUTO_INCREMENT에 의해 자동으로 번호가 매겨졌습니다.
데이터 여러개 한번에 삽입
INSERT 구문으로 데이터를 여러건 등록할 수 있습니다.
# INSERT 데이터 여러개 등록
insert into tb_1 (name, address)
values ('Choi', 'Incheon'), ('Kwon', 'Jeju'), ('Ryu', 'Daegu');
각 행에 들어갈 데이터 묶음을 쉼표로 구분해서 등록하고자 하는 데이터들을 입력해주면 됩니다.
읽으면 좋은 글
[MySQL] INSERT INTO SELECT 기본 사용법 및 예제