-
SQLite 0. 연습환경 구축, 데이터 타입SQL/Sqlite 2021. 12. 28. 21:49반응형
잊을만하면 다시 꺼내 쓰는 SQL. ㅠㅠ
개인적으로
예전엔 MySQL을 많이 썼는데,
요즘은 SQLite를 많이 쓴다.기억을 보조하기 위해
스니펫 위주로
설명은 아주 간략히
SQLite를 정리하고자 한다.0. SQLite의 개요
시간 관계상 아래의 링크를 참고하자.
특히 gywn(성동찬 님의 블로그) 대박~!
역시 DBA님 답게 핵심만 딱...
https://gywn.net/2013/08/let-me-intorduce-sqlite/
https://www.itworld.co.kr/news/117213
https://news.hada.io/topic?id=45581. DB Browser for SQLite 다운로드
2. 연습용 데이터 다운로드
'GNU LGPL license'로 공개된 데이터이다.
https://people.sc.fsu.edu/~jburkardt/data/csv/csv.html
이 중에 'mlb_players.csv'를 다운로드하도록 하자.
숫자와 문자가 적당히 있는 데이터인 것 같다.
시간 데이터도 있으면 더 좋겠지만..3. CSV 파일을 DB에 IMPORT 하자.
먼저 연습용 데이터베이스를 만들어야겠다.
1. 새 데이터베이스를 눌러 데이터 파일을 저장하자.
본인은 test.db라는 이름으로 적당한 폴더에 저장했다.
2. 저장하면 새로운 테이블을 생성하는 창이 나오지만 닫으면 된다.
CSV(comma-separated values)는 쉼표(,)로 필드를 구분한 텍스트 파일이다.
텍스트 에디터로 열어 볼 수 있다.
(노트패드++를 사용했다.)헤더(필드명)가 있고,
우측 하단을 보면 UTF-8로 저장되어 있고,
Unix 방식의 줄 바꿈(LF)을 이용한 파일임을 알 수 있다.3. 닫고 가져오기 > CSV 파일에서... 를 선택한 뒤 다운로드한 CSV을 열어보자.
텍스트 에디터로
첫 행에 필드명을 포함한 것을 확인했고..
인코딩, 구분자, 묶음 기호 등도 확인했고,
미리보기도 이상이 없는 것 같다.4. 확인을 누르자.
5. 에러가 발생한다. ㅎㅎ
텍스트 에디터로 1034행을 찾아본다.
헤드를 제외하고 1034행이니 파일에선 1035행이다.1036행의 따옴표가 문제였다.
전처리의 압박..6. 지우고 저장하고 다시 로딩하자.
잘 읽힌다.
그런데, 데이터베이스 구조를 살펴보니,
Age는 소수점이 있는 REAL 값인데
INTEGER로 인식되어 있다.자동 인식에서의 문제인 것 같다.
수정하자.7. mlb_players를 클릭하면 테이블 수정하기가 활성화된다. 수정하기 클릭.
8. 저장하라니 저장하자.
9. 리얼로 바꿔주자.
SQLite는 형에 관계없이 값을 일단 넣어준다. --;
그래서 이런 재미있는(?) 현상도 생기는 것이다.이런 특성이
다소 족보 없어 보이기도 하지만,
파이썬 같은 동적 타입의 언어에는
잘 맞는 느낌도 있다.이쯤에서 SQlite의 데이터 타입을 알아보자.
NULL NULL INTEGER 정수형. 양, 음수.
1, 2, 3, 4, 8 bytes.REAL 소수점 있는 숫자.
8-byte floats.TEXT 텍스트형.
다양한 인코딩을 지원하며,
크기의 제한이 없다.BLOB 큰 바이너리 데이터.
크기의 제한이 없다.* 다른 DB를 접해보신 분은 DATETIME이 없음에 황당함을 느꼈을 것이다. 본인도 그랬다. 일단 Pass
혹시 잘 안되시는 분들을 위해 남긴다.
여기까지 적용된 파일이다.'데이터베이스 열기' 후 >> '다운로드한 파일을 선택'하면 된다.
반응형