대량의 내용을 데이터베이스 table에 일일이 insert 하는것은 엄청 힘든 일이다.
이런 경우 최대한 csv 형식으로 데이터를 정리하여 한번에 table에 넣는 방법을 추천한다.
아래는 예시로 일단 sqlite3 test.db를 만들고 그 안에 list 테이블을 만들었다
CREATE TABLE list(number INTEGER, keyword TEXT);
이제 .show 명령어로 해당 db의 속성을 확인하자.
sqlite> .show
echo: off
explain: off
headers: off
mode: list
nullvalue: ""
output: stdout
separator: "|"
stats: off
width:
속성에서 csv를 import 하기 위해서 확인해야 할 곳은 크게 두가지 mode와 separator이다.
먼저 .mode 명령어를 이용하여 csv 모드로 바꿔주자
.mode csv
그 후 .separator 명령어로 자신이 만든 csv의 구분자를 지정해준다.
보통 콤마나 탭 아니면 | 를 많이 사용한다.
나의 경우는 |로 되어있는데 이걸 콤마로 바꿔보겠다.
.separator ,
다시 .show로 속성 확인
sqlite> .show
echo: off
explain: off
headers: off
mode: csv
nullvalue: ""
output: stdout
separator: ","
stats: off
width:
sqlite>
그럼 위와 같이 mode가 csv로 separator가 ,로 변경된 것을 확인할 수 있다.
이제 아래 내용으로 되어있는 data.csv를 table로 넣기만 하면 된다.
1,사과
2,수박
3,딸기
4,포도
5,귤
.import 명령어로 data.csv 내용을 list 테이블에 넣는다.
sqlite> .import data.csv list
import 단계에서 에러가 발생하지 않았다면
sqlite> select * from list;
1,"사과"
2,"수박"
3,"딸기"
4,"포도"
5,"귤"
위처럼 전부 list테이블이 들어 간 것을 확인 할 수 있다.
만약 에러가 나왔다면 보통 컬럼수와 데이터수가 맞지 않는 경우가 많다.
이런 경우 해당 에러 메시지를 구글에 그대로 검색하면 해결방법을 찾을 수 있다.
'Dev > SQLite' 카테고리의 다른 글
[SQLite] 하나의 키워드로 여러 컬럼을 검색할 때 사용하는 쿼리 (1) | 2017.03.13 |
---|---|
SQLite Update 쿼리 (0) | 2010.12.21 |