2022-06-29 08:55:59

안녕하세요. 비스카이비전입니다.

 

오늘은 csv 파일에 있는 데이터를 sqlite 테이블로 가져오는 방법에 대해 공유해드리고자 합니다. 일단 실습을 위해 간단한 csv 파일을 만들겠습니다.

 

 

test.csv라는 이름으로 위와 같은 csv 파일을 만들었습니다. 이 csv을 sqlite3로 가져와보겠습니다. 

 

csv 파일 내 데이터를 sqlite 테이블로 가져오는 방법

1. 사전 준비

우선 하나의 폴더 안에 sqlite3.exe와 test.csv 파일이 같이 있을 수 있게 세팅해주세요. 만약 sqlite3.exe를 설치하지 않으신 분은 https://bskyvision.com/1174 글을 참고하여 설치하여 주시기 바랍니다. 

 

 

2. csv 데이터 담을 테이블 만들기

1) sqlite3.exe를 실행합니다.

 

2) sqlite 콘솔에 .open test.sqlite를 입력하여 test.sqlite라는 데이터베이스 파일을 생성합니다. 이곳에 저희가 만드는 테이블이 저장될 것입니다. 

 

 

3) name, age, height 컬럼으로 구성된 테이블을 만듭니다. 테이블의 이름을 저는 member로 짓겠습니다. 다른 이름으로 하셔도 무방합니다. name 컬럼의 자료형은 TEXT로, age 컬럼의 자료형은 INTEGER로, height 컬럼의 자료형은 REAL로 설정해줍니다. 문자열을 담을 것이면 TEXT, 정수를 담을 것이면 INTEGER, 실수를 담을 것이면 REAL로 해주시면 됩니다.

 

CREATE TABLE member (name TEXT, age INTEGER, height REAL);

 

4) 테이블이 잘 생성되었는지, sqlite 콘솔에 .tables를 입력해봅니다. member가 있으면 잘 생성된 것입니다.

 

 

 

3. csv 데이터 import 하기

1) 모드를 csv로 바꿉니다.

 

.mode csv

 

2) csv 파일을 생성한 테이블에 import 합니다.

 

.import ./test.csv member

 

3) 데이터가 해당 테이블에 제대로 적재되었는지 확인합니다.

 

SELECT * FROM member; 

 

 

잘 적재된 것을 확인할 수 있습니다. 그런데 우리가 컬럼이라고 생각한 데이터도 함께 들어갔네요.

 

4) 첫번째 행을 삭제합니다. sqlite3에서는 rowid 라는 것을 제공하기 때문에 따로 인덱스 컬럼을 만들지 않아도 rowid를 이용해서 데이터를 찾는 것이 가능합니다. 

 

DELETE FROM member WHERE rowid = 1; 

 

 

 

관련 글

[sqlite3] 테이블 내용 rowid 열과 함께 보기