본문 바로가기
DB/MySQL

[MySQL, MariaDB] csv 파일을 DB 테이블로 Import

by 은z 2022. 1. 24.

엑셀로 정리된 파일을 mariadb(mysql)에 한번에 insert 하기위한 방법을 정리해보려고 한다.

 

간단하게 순서를 적어보자면,

 

1. 엑셀파일의 데이터 정리

 - insert 될 데이터만 남기고 열 이름은 삭제한다. 

 

2. 엑셀파일을 CSV 파일로 저장

 - 엑셀파일에서 다른이름저장(다른형식)을 클릭한 후 확장자를 CSV로 선택하여 저장한다. 

ex) test_insert.csv 

 

3. mariadb에 접속한다. (이 글에서는 DBeaver DBMS를 사용함) 

 

4. 한글 깨짐을 해결하기 위해 위에서 저장한 CSV파일을 메모장으로 연다.

 - 메모장으로 연 후, 다른이름으로 저장을 눌러 인코딩을 UTF-8로 맞춰준다. (아래 사진 참고)

 

5. DBeaver에 다음 명령어를 입력한다. 

 - 단, 테이블의 필드와 csv 파일의 필드가 일치해야 아래 쿼리가 먹힘. (테이블 컬럼의 순서대로 정렬)

LOAD DATA INFILE 'file_name'  	-- 입력할 파일의 경로
INTO TABLE tbl_name              -- 입력받을 테이블의 이름
FIELDS                            -- 라인 내의 필드들을 구분하는 방법
    TERMINATED BY ','              -- 각 필드가 끝나는 구분문자를 지정해줌
    ENCLOSED BY '"'                -- 구분된 필드 내에서 시작/끝 을 알리는 문자를 지정해줌
LINES                              -- 각 라인을 구분하는 방법
    TERMINATED BY '\n'          -- 각 라인이 끝나는 구분문자를 지정해줌
IGNORE 1 LINES                    -- 처리하지 않을 라인을 지정해줌

 

 

**실제 사용 예 

- 서버 내에 있는 파일이 아니라, 로컬에 있는 파일을 올릴 때는 LOCAL 붙여줘야 한다.

LOAD DATA LOCAL INFILE 'C:/work/uploadfiles2.csv' 
INTO TABLE FILES 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'

 

 

 

**결과

- 아래 부분에 보면 63ROW를 넣는데 30ms 걸린 것을 볼 수 있다.

'DB > MySQL' 카테고리의 다른 글

[MySQL] LAST_INSERT_ID()  (0) 2021.11.15

댓글