본문 바로가기
DataBase/MySQL

MySQL INSERT 문 사용 방법 정리 (데이터 삽입)

by 코딩이라구 2024. 8. 13.

MySQL에서 INSERT문은 데이터베이스(Database)에 데이터를 추가하기 위하여 사용하는 SQL문입니다. 기본적인 사용법으로 테이블(Table)을 선택하고 추가할 데이터를 컬럼에서 설정한 데이터 타입에 맞게 순서대로 나열하여 레코드(행, Row)를 추가합니다.

 

MySQL SELECT 문

 

 

 

 

 

 

  • MySQL에서 데이터를 추가하기 위한 기본적인 INSERT 문법
INSERT INTO 'table_name'
VALUES ('column_value1', 'column_value2', ... );

 

이때 컬럼(Column)의 값은 테이블에 정의되어 있는 순서대로 입력을 하여야 합니다.


MySQL INSERT 문 DATABASE 데이터 삽입/추가

 

1. 모든 컬럼에 데이터 추가

MySQL에서 'INSERT' 문을 통하여 테이블의 모든 열에 대한 데이터를 삽입하는 방법입니다.

  • INSERT INTO [테이블명] VALUES([데이터1], [데이터2], ...)

※ 테이블의 열과, 데이터 값의 순서는 현재 테이블의 컬럼 순서대로 같은 타입의 값으로 추가하여야 합니다.

 

INSERT INTO example
VALUES
(
	1,
	'홍길동',
	'서울'
);

2. 특정 컬럼에 데이터 추가

MySQL INSERT 문에서 테이블의 특정 열(Column)만을 선택하여 데이터를 삽입합니다. 주로 AUTO_INCREAMENT가 설정되어 있거나 NULL 제약 조건으로 설정한 열과 DEFAULT 제약 조건이 설정된 열은 INSERT 시 데이터 값을 생략하실 수 있습니다.

  • INSERT INTO [테이블명] ([컬럼명1], [컬럼명2]) VALUES ([데이터1], [데이터2])

 

/* 예제 : example 테이블에 하나의 레코드를 추가합니다. name 컬럼에만 값 대입 */
INSERT INTO example (name)
VALUES
(
	'홍길동'
);

 

MySQL UPDATE 문

 


3. 여러 개의 레코드 추가 (다중 행 삽입)

위의 1, 2번의 내용은 단일 행을 기준으로 예시를 들었으며, MySQL INSERT 구문에서는 여러 개의 행를 동시에 추가하는 것이 가능합니다.

  • INSERT INTO [테이블명] ([컬럼명1], [컬럼명2]) VALUES ([데이터1], [데이터2]), ([데이터1], [데이터2]), ...

다중 행을 하나의 쿼리문으로 삽입하게 되면, 각각의 INSERT 쿼리문 보다 성능을 향상시킬 수 있습니다.

 

※ 전체 컬럼의 데이터를 입력하는 경우 컬럼명은 생략하셔도 됩니다.

 

/* 예제 : example 테이블에 3개의 레코드를 동시에 추가합니다. */
INSERT INTO example (name)
VALUES
('홍길동'),
('김철수'),
('김영희');

4. 특정 테이블의 내용을 해당 테이블에 추가 ( INSERT INTO ~ SELECT ~ 문 )

SELECT에서 조회한 결과 레코드를 추가합니다.

이때 조회 시 출력되는 컬럼들의 데이터형이나 개수가 맞아야 합니다.

 

INSERT INTO member (name, hp)
SELECT name, hp
  FROM phone
 WHERE name LIKE '김%';

 


5. MySQL INSERT 문 자주 발생하는 오류 및 예외 처리

MySQL INSERT 구문을 사용할 때 자주 발생하는 오류입니다.

  • 중복 데이터 삽입 : 주로 자주 발생하는 오류로 기본키(PRIMARY KEY) 또는 유일키(UNIQUE KEY)에서 중복 데이터로 인한 오류가 발생합니다. 이때, 'INSERT IGNORE' 또는 'ON DUPLICATE KEY UPDATE' 구문을 사용하여 중복된 데이터를 처리합니다.
  • NULL 값 삽입 : NOT NULL 제약 조건이 있는 열(Column)에 NULL 값을 삽입할 때 발생하는 오류로 'ISNULL' 구문을 통하여 NULL 값인 경우 빈 값 또는 다른 데이터가 들어갈 수 있도록 처리합니다.
  • 외래 키 제약 조건을 위반하는 데이터 삽입 : 데이터베이스의 참조 무결성을 위반할 때 발생하는 오류로 데이터를 삽입하기 전에 해당 테이블의 제약 조건을 확인 후 데이터 삽입 처리를 진행합니다.

또한, 예외 처리 방법 중 INSERT 작업이 실패할 수 있는 경우를 판단하여, 여러 개의 작업들을 트랜잭션(Transaction)으로 묶어, 작업이 모두 성공하였을 때만 Commit을 하고 실패한 경우에는 Rollback 작업을 하도록 처리해두는 것도 데이터를 정확한 값으로 유지하기 좋은 방법입니다.

 

※ 위의 MySQL INSERT 예외 처리에 들어간 'INSERT IGNORE', 'ON DUPLICATE KEY UPDATE', 'ISNULL' 구문은 다른 포스팅에서 더 자세하게 알아볼 것이며, 링크를 통하여 손쉽게 보실 수 있도록 업데이트하겠습니다.

 

MySQL DELETE 문

 

 

이상으로 MySQL에서 INSERT 문을 통하여 레코드를 추가하는 다양한 방법에 대하여 알아보았습니다. 특히, SELECT 조회 결과를 INSERT 하는 방식을 잘 사용하신다면 더욱 편리한 Query문을 다루실 수 있습니다.
더 추가할 내용이 생길 경우, 주기적으로 확인하고 업데이트하겠습니다. 찾아주셔서 감사합니다!

댓글