SQL/Postgresql

postgresql 데이터 베이스 엑셀 데이터 넣기

삐뚤어진 개발자 2020. 1. 15.

안녕하세요. 링고비 입니다.

 

postgresql 데이터 베이스 테이블에 엑셀 데이터를 삽입하는 방법을 설명하겠습니다.

 

제 환경은 psql 10.10 버전 / 서버는 ubuntu 18.04 lts 버전이 깔린 상태입니다.

 

 

일단 준비물은 넣으려고 하는 엑셀 파일과 테이블 구조입니다.

 

저는 일단, 로또의 1~891회차 정보를 삽입해보겠습니다.

 

 

1. 먼저 엑셀 파일을 추출하여 csv 파일을 만들어 줍니다.

 

참고 엑셀 파일

제가 삽입하고 싶은 엑셀 파일 입니다. 

이중 회차와 추첨일 데이터를  삽입하겠습니다.

 

그래서 새로운 엑셀 파일에  회차와 추첨일 데이터 (header 제외)를 따로 떼어와 삽입해줍니다.

 

그리고 이 엑셀파일을 저장하실때 확장자는  .csv 파일로 만들어줍니다.

 

지금은 윈도우10으로 작업을 하는 모습이고, postgresql은 제 우분투 서버에 깔려있기 때문에

이  .csv 파일을 우분투 서버로 옮겨줍니다. 

(저는 서버로 파일을 주고 받을 때, win_scp 라는 툴을 사용합니다. 아주 간편하기 때문이죠..) 

 

이때, 주의 하셔야할 부분은 우분투의 어느 경로에 파일을 옮겼는지 기업해야합니다.

우분투 서버의 파일 경로를 복사해둡니다. (제 경로는  /home/tw_soul/lotto_project/episode_table.csv  입니다.)

 

 

2. 준비된 테이블에 쿼리를 날립니다.

 

저는 tb_episode 라는 테이블에 episode_id , draw_date, save_ts 컬럼을 미리 만들어 놨습니다.

 

select*from tb_episode 쿼리로 조회해보면 아래의 이미지와 같이 깨끗합니다.

 

그리고 쿼리를 실행해줍니다.

 

COPY tb_episode(episode_id, draw_date) FROM '/home/tw_soul/lotto_project/episode_table.csv' csv;

--쿼리 설명
COPY 테이블명(컬럼1,컬럼2) FROM '.csv 경로' csv;

 

 

다시 테이블을 조회해보니,

데이터가 깔끔하게 들어갔습니다. 

 

 

-- 주의할 사항으로 copy 쿼리 명령어는 superuser 권한을 가진 데이터 베이스에서만 실행할 수 있습니다.

댓글