DataBase/MySQL

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

코딩이라구 2024. 8. 13. 16:35

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문을 다루실 수 있습니다.
더 추가할 내용이 생길 경우, 주기적으로 확인하고 업데이트하겠습니다. 찾아주셔서 감사합니다!