MySQL 데이터베이스의 테이블로 CSV 파일 가져 오기

Gustavo du Mortier 2023년1월30일
  1. CSV를 MySQL로 가져 오기위한LOAD DATA INFILE SQL
  2. HeidiSQL을 사용하여 CSV를 MySQL로 가져 오기
MySQL 데이터베이스의 테이블로 CSV 파일 가져 오기

이 튜토리얼 기사에서는 쉼표로 구분 된 값 (CSV) 파일에서 MySQL 데이터베이스로 데이터를 가져 와서 테이블에 삽입하는 두 가지 방법을 설명합니다.

CSV 파일을 MySQL로 가져 오는 다양한 방법을 소개합니다. 이 작업은 일련의 SQL 명령을 실행하여 프로그래밍 방식으로 수행 할 수 있습니다. 또는 HeidiSQL과 같은 그래픽 MySQL 클라이언트의 파일 가져 오기 대화 상자를 사용하여 대화식으로.

CSV를 MySQL로 가져 오기위한LOAD DATA INFILE SQL

먼저LOAD DATA INFILE SQL 문을 사용하여 프로그래밍 방식으로 CSV 파일을 가져 오는 방법을 살펴 보겠습니다.

파일을 가져 오기 전에 가져온 데이터가 포함 된 테이블을 만들어야합니다. CSV 파일에 ISBN, Title, Author 및 ListPrice 필드로 구분 된 도서 정보가 포함되어 있다고 가정합니다. 이러한 테이블을 생성하려면 다음과 같은 명령을 실행해야합니다.

CREATE TABLE BooksCSV (
    ISBN VARCHAR(255) NULL,
    title VARCHAR(255) NULL,
    author VARCHAR(255) NULL,
    ListPrice VARCHAR(255) NULL
);

CSV 파일의 데이터가 완전하고 정규화되었는지 미리 알 수 없기 때문에 모든 필드에서 NULL 값을 허용하고 테이블에 기본 키가없는 것이 좋습니다.

또 다른 권장 사항은 숫자 데이터의 경우에도VARCHAR 필드 만 사용하여 파일의 잘못된 형식 데이터로 인한 프로세스 오류를 방지하는 것입니다. 데이터를 가져온 후 데이터베이스에서 직접 정리하여 테이블 행을 읽고 필요한 유효성 검사와 수정을 수행 할 수 있습니다.

데이터에 대한 대상 테이블이 있으면 CSV 파일의 경로를 식별해야합니다. 파일의 전체 경로가C:\csvdata\books.csv라고 가정합니다. 그런 다음 해당 파일을 테이블로 가져 오려면 다음 명령을 실행해야합니다.

LOAD DATA
INFILE 'c:/csvdata/books.csv'
INTO TABLE BooksCSV ` 

LOAD DATA INFILE 문을 사용하려면 소스 파일과 대상 테이블을 지정해야합니다. 선택적으로 필드 구분 문자, 텍스트 한정자 및 헤더 행의 존재와 같은 다른 매개 변수를 지정할 수도 있습니다.

다음 예에서 추가 된 매개 변수는 필드가 쉼표로 구분되고 문자열이 큰 따옴표로 묶여 있으며 열 머리글이 포함되어 있으므로 첫 번째 행을 무시해야 함을 지정합니다.

LOAD DATA
INFILE 'c:/csvdata/books.csv'
INTO TABLE BooksCSV 
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
IGNORE 1 ROWS;

이제 프로그래밍 방식으로 MySQL에서 CSV 파일을 가져 오는 방법을 알았습니다.

HeidiSQL을 사용하여 CSV를 MySQL로 가져 오기

HeidiSQL과 같은 그래픽 MySQL 클라이언트를 사용하여 대화식으로 수행하는 방법을 살펴 보겠습니다.

단계는 위에서 본 것과 동일합니다.

  • 테이블 만들기
  • 파일의 내용을 가져옵니다.

HeidiSQL을 사용하여 테이블을 생성하려면 클라이언트를 MySQL 서버에 연결하고 데이터를 가져올 데이터베이스를 선택해야합니다. 그런 다음 데이터베이스에서 오른쪽 버튼을 클릭하고Create New - Table 옵션을 선택합니다.

mysql 가져 오기 csv 스크린 샷 1

해당 필드에 테이블 이름을 입력하고 열을 추가해야합니다. 열을 추가하려면 ‘+‘버튼을 클릭하고 이름과 데이터 유형을 입력합니다.

이 예에서 테이블 이름은 BooksCSV이고 필드는 이전 예에서 사용한 것과 동일합니다.

열 추가가 완료되면 ‘저장’을 클릭하여 데이터베이스에 테이블을 만듭니다.

테이블을 생성 한 후 CSV 파일에서 데이터를 가져올 수 있습니다. 그러나 가져 오기 프로세스를 시작하기 전에 각 구성 요소의 시작 매개 변수를 변경하여 클라이언트 및 서버 구성 요소 모두에서 로컬 데이터로드를 활성화해야합니다. 로컬 데이터로드를 활성화 할 때 고려해야 할 몇 가지 보안 고려 사항이 있습니다. 이에 대해 자세히 알아 보려면 공식 MySQL 문서에서 이 기사을 읽어보세요.

CSV 파일을 가져올 준비가되면 HeidiSQL의 도구 메뉴로 이동하여 CSV 파일 가져 오기 옵션을 선택합니다. 가져올 CSV 파일 경로를 지정하고 가져온 데이터를 삽입 할 데이터베이스 및 테이블을 선택해야합니다. 파일에있는 것처럼 테이블에 더 많은 필드가있는 경우 테이블 필드를 선택 취소 할 수 있습니다. 마지막으로 Import!를 클릭하면 프로세스가 시작됩니다.

mysql import csv 스크린 샷 2

가져 오기를 수행하기 위해 그래픽 인터페이스는 이전에 프로그래밍 옵션에 대해 설명한 것과 동일한 LOAD DATA 명령을 실행하므로 최종 결과는 거의 동일합니다. 데이터베이스 테이블은 CSV 파일에서 읽은 데이터로 채워집니다.

LOAD DATA 문 사용에 대한 자세한 내용은 공식 MySQL 문서에서 이 문서을 확인하세요.