▶︎ 개요
파이썬 개발환경에서 가볍게 사용가능한 SQLite DB를 활용하는 방법에 대해서 알아보자.
▶︎ SQLite
SQLite는 작고 빠르며, 완전한 기능을 갖춘 SQL 데이터베이스 엔진을 구현하는 C 언어 라이브러리이다.
SQLite는 세계에서 가장 많이 사용되는 데이터베이스 엔진 중 하나이며, 많은 휴대폰과 대부분의 컴퓨터, 많은 애플리케이션에 내장되어 수 많은 사람들이 사용한다.
SQLite 파일 형식은 안정적이어서 여러 플랫폼 간 문제 없이 호환되며, 이전 버전과도 큰 문제 없이 호환된다.
▶︎ 사용방법
‣ DB 연결
connect
함수를 이용하여 새롭게 생성할 DB 혹은 사용할 DB를 SQLite를 통해서 연겷해보자.
import sqlite3
con = sqlite3.connect('example.db')
‣ DB Table 생성
연결한 DB에 신규 테이블을 생성해보자.
import sqlite3
con = sqlite3.connect('example.db')
cur = con.cursor()
# 테이블 생성
cur.execute('CREATE TABLE examTBL (name, desc)')
# DB Commit
con.commit()
# DB close
con.close()
‣ 데이터 Insert
생성한 테이블에 샘플 데이터를 insert
해보자.
한 가지 데이터만 insert
하는 경우에는 직접적으로 값을 넣고 execute
함수를 통해 insert
가 가능하다.
또한, 여러 데이터를 넣을 때에는 데이터를 List
화하여 executemany
함수를 통해서 한 번에 insert
를 할 수 있다.
import sqlite3
con = sqlite3.connect('example.db')
cur = con.cursor()
# 테이블에 1개의 데이터 직접 삽입
cur.execute("INSERT INTO examTBL ('test', '테스트용 데이터')")
# 테이블에 여러 개의 데이터 삽입
insert_list: list[str] = [
("John", "존입니다"),
("Jane", "제인입니다.),
("ruin", "루인입니다.),
]
cur.executemany("INSERT INTO examTBL VALUES (?, ?)", insert_list)
# DB Commit
con.commit()
# DB close
con.close()
‣ 데이터 Select
이제 테이블에서 삽입된 데이터를 불러오는 Select를 해보도록 하자.
이때 fetchone()
, fetchall()
두 개의 함수를 통해서 데이터를 가져올 수 있다.
함수명에서도 알 수 있듯이, fetchone()
는 단일 데이터를 가져오며,
fetchall()
는 Select
에 사용된 모든 데이터를 가져오게 된다.
import sqlite3
con = sqlite3.connect('example.db')
cur = con.cursor()
# 데이터 추출하기
cur.execute("SELECT * FROM examTBL")
# one
one_data = cur.fetchone()
print(f'한 개의 데이터를 출력 : {one_data}')
# all
all_data = cur.fetchall()
print(f'모든 데이터를 출력 : {all_data}')
# DB Commit
con.commit()
# DB close
con.close()