본문 바로가기
▶ Project_Python/◾ DB

SQlite3를 이용한 파이썬 DB 활용하기(DB생성, 저장 방법)

by ★→←★ 2021. 10. 4.
반응형

이제 본격적으로 파이썬 프로젝트 또는 실습을 진행하는 과정에서 원하는 데이터를 수집하고 보관, 관리 및 서비스하기 위한 DB를 형성하기 위한 과정을 간략하게 살펴보도록 하겠습니다. 가장 기본적으로 사용할 수 있는 것으로 DB생성, 그리고 데이터를 저장하는 방법에 대해서 알아보겠습니다.

 

우선은 로컬에서 사용할 수 있는 SQlite3를 이용해 간략한 명령어를 정리해보겠습니다. 로컬과 서버의 가장 큰 차이점은 DB에 연결하는 것이라고 할 수 있습니다. 이 부분은 mysql에 대해 언급할 때, 다시 이야기를 전하도록 하겠습니다.

 

파이썬 SQlite3 라이브러리 설치하기

  • 가장 기본이죠. pip을 이용해 sqlite3를 설치합니다.
pip install sqlite3
  • 본격적인 코드 작성에 앞서 'DB Browser for SQLite'를 준비하면 좋습니다.
  • 해당 프로그램을 통해 DB를 엑셀처럼 직관적으로 확인할 수 있습니다.
  • 또한, DB생성, Table생성등의 작업을 마우스와 키보드로 진행할 수 있습니다.

 

DB Browser for SQLite 다운로드 방법

두가지의 버전이 존재합니다. 하나는 설치를 통해 활용하는 방법이 있으며, 다른 방법은 무설치로 활용하는 방법이 있습니다. 윈도우, 맥을 비롯한 다양한 운영체제에서 사용이 가능하기 때문에 사용자의 환경에 맞는 것으로 선택하여 사용하시면 됩니다.

윈도우에서 볼 수 있는 DB Browser for SQLite 모습

  • 파일 다운로드는 이곳에서 하실 수 있습니다.
  • 사용법은 간단합니다. 몇번의 연습 조작을 하시면 충분히 알 수 있을 것입니다. 상세한 내용은 다른 글에서 다뤄보도록 하겠습니다.

 

파이썬에서 SQLite3를 이용하는 방법

1. SQLite3 모듈 불러오기

파이썬에서 특정 라이브러리 혹은 모듈을 가져오는 방법은 'import'를 이용하면 됩니다. 이를 설치라고 부르는 경우도 있는데, 개인적으로 불러온다는 표현이 어울리지 않을까 생각합니다.

 

설치된 모듈 또는 라이브러리르 불러올 수도 있으며, 개인이 원하는 기능을 담고 있는 .py파일을 직접 불러올 수도 있습니다. 마찬기지로 'import'를 이용합니다.

 

import sqlite3

 

2. SQLite3 DB 생성

이제 DB파일을 생성하도록 합니다. 원하는 파일이름을 지정하여 관리에 용이하게 지정하는 것을 추천합니다. 별도의 경로를 지정하지 않으면 프로젝트 폴더에 DB가 생성될 것이며, 주피터 노트북의 경우라면 스크립트가 있는 폴더에 생성도리 수도 있습니다.

con = sqlite3.connect('파일경로 및 파일이름.db')
# 파일경로와 이름을 지정한 후, 확장자명에 .db를 붙여줍니다.
# 여기서도 몇몇 옵션이 있는데, 간단히 사용할 때는 굳이 붙이지 않아도 진행이 가능합니다.

 

연결된 DB파일은 con이라는 변수에 담았습니다. 이 후에 커서를 연결해야 테이블, 데이터등에 접근해 명령을 내릴 수 있습니다.

 

cur = con.cursor()

 

cursor까지 연결이 되면 본격적인 DB를 사용할 기본적인 준비가 완료됩니다.

 

3. DB에 table 생성하기

DB파일의 포함관계는 다음과 같습니다.

  • DB파일 ⊃ table ⊃ data

 

DB파일을 생성한 후, 그에 맞는 table을 생성해야 합니다. table 생성에는 column을 지정해야만, 원하는 데이터를 지정된 위치에 저장시켜둘 수 있습니다. 

 

table을 생성하는 방법은 두가지로 구불할 수 있습니다. 하나는 쿼리문을 이용해 코드로 명령을 전달하는 방법과 나머지 하나는 Browser를 이용해 준비하는 방법입니다. 처음에는 후자가 편한 것 같지만 주로 사용하게 되는 쿼리문이기에 처음부터 연습을 해두는 것도 좋습니다.

 

① 코드를 이용해 table 생성하기

# 테이블 생성 쿼리문
"CREATE TABLE '테이블 이름' (column1, column2, ...);"

# 파이썬 코딩
sql = "CREATE TABLE '테이블 이름' (column1, column2, ...);"
cur.execute(sql) #쿼리문을 전달합니다.

 

② DB Browser for SQLite 이용

생성된 DB 혹은 새로운 데이터베이스를 생성(저장)하면 '테이블 정의 변경'이라는 팝업창을 만날 수 있습니다. 여기서 '테이블명'을 선택하고, '필드명(column)'을 추가 및 설정할 수 있습니다. column은 필요한 만큼 만들어두면 됩니다.

테이블, 필드(column) 설정하는 화면

 

4. DB, table에 데이터 저장하기

위 과정을 거쳤다면 기본적인 DB생성이 완료되었습니다. 이제는 원하는 데이터를 지정된 위치에 저장하는 방법을 살펴보도록 하겠습니다. 'INSERT'로 시작되는 쿼리문과 조건을 전달하여 데이터를 저장할 수 있습니다.

 

  • 예를 들어, test.db의 test테이블에 1번column에 데이터를 저장하는 방법입니다.
  • DB명, 테이블명, 칼럼명은 사용자의 목적에 맞게 생성하시면 됩니다.
# DB명 : test.db
# table명 : test
# column명 : 1
# data : tistory

sql = "INSERT INTO test(1) VALUES('tistory');"
cur.execute(sql)

 

- 이것으로 DB생성, table생성, column(field)생성, data저장의 과정을 살펴봤습니다. 생각보다 간단하지만, 처음이라면 익숙해지는데 시간이 걸릴 수 있습니다. 지속적으로 데이터를 다루게 된다면 쉽게 익힐 수 있는 부분일 것입니다.

 

- 위의 sql은 문자열이기 때문에 파이썬의 format을 이용해서도 충분히 깔끔하게 활용할 수 있습니다.

# foramt 이외에도 다양한 함수를 활용할 수 있습니다.
# 더불어 변수를 이용한다면 보다 많은 데이터를 간편하게 저장할 수 있습니다.

sql = "INSERT INTO test(1) VALUES('{}')".format('tistory')
cur.execute(sql)

5. 전체 코드 보기

☞ 마지막으로 전체과정을 담은 내용입니다.

import sqlite3

con = sqlite3.connect('test.db')
cur = con.cursor()

# 테이블 및 칼럼 생성
sql = "CREATE TABLE 테이블명 (칼럼명1, 칼럼명2, ...)" #칼럼의 개수는 한개 이상
cur.execute(sql)

# 데이터 저장 방법
sql = "INSERT INTO 테이블명(칼럼명1, 칼러명2) VALUES(데이터1, 데이터2)"
cur.execute(sql)

 

반응형

댓글