Profile picture

[Python] SQLite3 모듈 사용 방법

JaehyoJJAng2023년 11월 05일

▶︎ 개요

파이썬 개발환경에서 가볍게 사용가능한 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()

Loading script...