본문 바로가기
+ Development/Python

[Python] 파이썬 SQLite3 이용하기

by :: Teacher :: 2021. 7. 18.
728x90
반응형

개발을 하다 보면 수많은 DataBase(데이터베이스)를 사용하게 된다.

여러 MySQL, MSSQL, PostgreSQL 등 여러 DataBase가 있지만, 그중 가볍게 사용 가능한 SQLite DB를 이용하는 방법을 알아보도록 하자.

1. SQLite

일단 SQLite가 어떤 건지 먼저 알아보도록 하자.

SQLite는 작고 빠르며 독립적인 고신뢰성, 완전한 기능을 갖춘 SQL 데이터베이스 엔진을 구현하는 C 언어 라이브러리이다.

SQLite는 세계에서 가장 많이 사용되는 데이터베이스 엔진이며, 많은 휴대폰과 대부분의 컴퓨터, 많은 애플리케이션에 내장되어 매일 수많은 사람들이 사용한다.

SQLite 파일 형식은 안정적이고 여러 플랫폼 간 호환되며 이전 버전과도 큰 문제없이 호환된다.

또한 SQLite 개발자는 2050년까지 이 형식을 유지할 것을 약속하였으며, SQLite 소스 코드는 모든 사람이 어떤 목적으로든 무료로 사용할 수 있도록 제공하고 있다. 

728x90

2. SQLite3 모듈을 이용한 사용 방법

2.1 DB 연결하기

connect 함수를 이용하여 새롭게 생성할 DB 혹은 사용할 DB를 SQLite를 통해서 연결해보도록 하자.

# -*- coding: utf-8 -*-
import sqlite3

con = sqlite3.connect('example.db')

 

2.2 DB Table 생성하기

연결한 DB에 신규 Table을 생성해보도록 하자.

# -*- coding: utf-8 -*-
import sqlite3

con = sqlite3.connect('example.db')

cur = con.cursor()

# 테이블 생성
cur.execute("CREATE TABLE lang (name, first_appeared)")

# DB Commit
con.commit()


# DB Close
con.close()

 

2.3 Insert 하기

생성한 Table에 데이터 Insert를 해보도록 하자.한 가지 데이터만 Insert 하는 경우 직접적으로 Value를 넣고 execute 함수를 통해서 Insert를 할 수 있다.또한, 여러 데이터를 넣을 때는 데이터를 List화 하여 executemany 함수를 통해서 한 번에 Insert를 할 수 있다. 여기서 Insert 하는 방법이 여러 가지임에 따라 사용 용도 맞게 사용하게 좋을 것 같다. 

# -*- coding: utf-8 -*-
import sqlite3

con = sqlite3.connect('example.db')

cur = con.cursor()

# 테이블 데이터 Insert
cur.execute("INSERT INTO lang VALUES ('C', 1972)")

# 테이블 데이터 Multiple Insert
insert_list = [
    ("Fortran", 1957),
    ("Python", 1991),
    ("Go", 2009),
]
cur.executemany("INSERT INTO lang VALUES (?, ?)", insert_list)

# DB Commit
con.commit()

# DB Close
con.close()

 

2.4 Select 하기

이제 Table에서 데이터를 Select를 해보도록 하자.

이때 fetchone(), fetchall() 두 개의 함수를 통해서 데이터를 가지고 올 수 있다. 함수명에서도 쉽게 알 수 있듯이 fetchone()는 단일 데이터를 가지고 오고, fetchall()는 Select에 사용된 모든 데이터를 가지고 오게 된다.그러니 상황에 맞게 Select 쿼리문을 사용하면서 그에 맞게 함수를 사용하여 데이터를 가지고 오도록 해야 한다.

# -*- coding: utf-8 -*-
import sqlite3

con = sqlite3.connect('example.db')

cur = con.cursor()

# Select DB:
cur.execute("SELECT * FROM lang")

# One
print(cur.fetchone())
# All
print(cur.fetchall())

# DB Close
con.close()


[Output]
('C', 1972)
[('Fortran', 1957), ('Python', 1991), ('Go', 2009)]

 

3. 예제 Code

이번에는 SQLite DB를 사용하는 방법을 알아보았다. 

간단하게 위에 나온 예제 파일은 itschool-info-lab Github에 올려놓았다. 

 

itschool-info-lab/python-example-code

:: IT School :: Python Example Code. Contribute to itschool-info-lab/python-example-code development by creating an account on GitHub.

github.com

해당 내용을 따라 해 보면 금방 이해하고 익숙해질 것이다.

궁금한 부분이 있거나, 틀린 부분이 있다면 언제든지 댓글로 남겨 주시면 답변하도록 하겠다.

4. 참고 URL

  1. https://docs.python.org/ko/3/library/sqlite3.html
  2. https://sqlite.org/index.html

 

728x90
반응형

댓글


loading