본문 바로가기

Story/mysql

Excel에 저장된 data를 Mysql로 옮길때 엑셀에서 insert query 문을 만들어 주는 방법

반응형
가장 간단하게 해결할 수 있는 방법은, Excel에서 쿼리문을 만드는 겁니다.
즉, 데이터가 들어 있는 엑셀 워크시트에서 맨 오른쪽에 컬럼을 하나 추가한 뒤,
엑셀 수식을 이용해서 쿼리문을 조합하는 거죠.
위의 예를 바탕으로 한다면,
="insert into tbl_name (no, nam, ag, dep) values ('" &A1&"','"&C1&"','"&B1&"','"&D1&"');"
이렇게 수식을 넣고 해당 셀을 복사한 뒤 아래로 죽~ 붙여넣기 하면 되겠죠.

이렇게 생성된 쿼리문을 텍스트 에디터로 복사해 넣은 다음 저장하고,
mysql에서 실행하면 됩니다.

$> mysql -u(uid) -p(pwd) (db명) < (file명)

데이터 양이 몇만건이 되지 않는다면 이것이 가장 빠른 방법일 겁니다.


데이터 양이 많다면, load data를 쓰는 것이 더 좋습니다.
컬럼명을 지정할 수 있으니, 데이터의 순서는 문제가 되지 않습니다.

LOAD DATA INFILE "file_name.csv" INTO TABLE tbl_name
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
(no, ag, name, dep)

와 같이 하면 되겠지요..

반응형