파이썬 SQLite3 사용법

파이썬 SQLite3 사용법
Python 에서 SQLite3 모듈 사용 방법에 대해서 설명드립니다. DB 생성, 테이블 생성, 데이터 Insert, Update, Delete 등의 쿼리와 데이터 Select 조회 방법 등을 예제 소스코드를 이용하여 설명드립니다.

파이썬 SQLite3 사용법

SQLite3 패키지 설치

Python에서는 추가 패키지 없이 sliqte3 모듈을 사용가능합니다. 하지만 SQLite3 명령어 등을 설치하면 생성된 데이터베이스 파일을 보다 효과적으로 설치 할 수 있습니다. 우분투에서는 다음 명령어로 SQLite3 패키지를 설치 할 수 있습니다.

$ sudo apt install sqlite3

아래의 예제 소스코드는 모두 아래의 코드를 이용하여 sqlite3 모듈을 import 한 것으로 가정하여 설명드리도록 하겠습니다.

import sqlite3

파이썬 SQLite3 사용법

SQLite3 DB 생성 및 연결

SQLite 데이터베이스 파일을 생성하기 위해서는 아래와 같은 예제 코드를 사용합니다.

conn = sqlite3.connect("test.db")

위의 예제는 SQLite3 데이터베이스에 연결 하는 것으로, 기존에 test.db 파일이 존재하지 않을 경우 새로운 파일을 생성하고 기존 파일이 존재하면 기존 파일을 읽습니다.

아래와 같이 DB 파일을 생성하지 않고, 메모리 기반으로 데이터 베이스를 생성할 수도 있지만 프로그램이 종료되면 데이터가 유실된 다는 점에서 주의 하셔야합니다.

conn = sqlite3.connect(':memory:')

DB 연결 종료

데이터 베이스 사용이 종료되면 아래의 코드를 이용하여 연결을 종료하면 됩니다.

conn.close()

테이블 생성

쿼리를 실행하기 위해서는 execute 명령어를 사용하는데, 이 명령어를 이용하여 테이블을 생성할 수 있습니다.
가장 먼저 아래의 소스코드로 테이블을 생성해 주시기 바랍니다.

cur = conn.cursor()
cur.execute("create table test (name text, score int)")

데이터 Insert

데이터를 저장할때에도 동일하게 execute 함수를 사용할 수도 있지만, 여러개의 데이터를 저장할 때에는 executemany 함수가 사용될 수 있습니다.

execute

아래의 내용은 Insert 구문을 SQL 쿼리로 작성 한 에제입니다.

cur.execute("insert into test values ('a', 100)")
conn.commit()

아래와 Tuple 데이터를 이용하여 동적으로 Insert 쿼리를 작성하여 실행할 수도 있습니다.

cur.execute("insert into test values (?, ?)", ('b', 1))
 conn.commit()

다음과 같이 dict 데이터를 이용하여, 저장될 파라미터를 저장하는 코드를 작성 할 수 있습니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

cur.execute("insert into test values (:name, :score)", {'name':'c', 'score':99})
 conn.commit()

executemany

여러개의 데이터를 저장 할 경우 executemany 함수를 사용하여 저장할 수 있습니다.
다음의 에제는 executemany 함수의 사용 예제를 나타납니다.

data = [
 ('d', 93),
 ('e', 11)
]   

cur.executemany("insert into test values (?, ?)", data)

데이터 Select

다음 내용은 저장된 데이터를 읽어오는 예제 입니다.

cur.execute('select * from test')
for row in cur:
    print(row)

cur.execute("select * from test")
rows = cur.fetchall()

print (rows)

실행 결과는 다음과 같습니다.

(u'a', 100)
(u'b', 1)
(u'c', 99)
(u'd', 93)
(u'e', 11)
[(u'a', 100), (u'b', 1), (u'c', 99), (u'd', 93), (u'e', 11)]

for 함수를 통해서 하나씩 데이터를 fetch 하여 처리 할 수도 있고, fetchall 함수를 이용하여 모든 데이터를 한번에 변수에 저장할 수도 있습니다.

데이터 Update, Delete

아래의 내용은 데이터를 Update 하거나 Delete하는 예제입니다.

Update 예제

cur.execute("update test set score=11 where name='b'")
conn.commit()

Delete 예제

cur.execute("delete from test where name='e'")
conn.commit()

데이터가 수정, 삭제 되는 쿼리일 경우 기존의 insert 쿼리와 마찬가지로 commit() 함수를 통해서 적용해야 데이터베이스 파일에 적용되게 됩니다.

Python SQLite3 예제

지금까지 파이썬 SQLite3 사용법 대해 설명드렸습니다. 이 글에서 사용된 전체 예제 코드는 아래와 같습니다.

import sqlite3

conn = sqlite3.connect("test.db")

cur = conn.cursor()

cur.execute("create table test (name text, score int)")
conn.commit()

cur.execute("insert into test values (?, ?)", ('b', 1))
conn.commit()

cur.execute("insert into test values (:name, :score)", {'name':'c', 'score':99})
conn.commit()

data = [
 ('d', 93),
 ('e', 11)
]

cur.executemany("insert into test values (?, ?)", data)
conn.commit()

cur.execute('select * from test')
for row in cur:
    print(row)

cur.execute("update test set score=11 where name='b'")
conn.commit()

cur.execute("delete from test where name='e'")
conn.commit()

cur.execute("select * from test")
rows = cur.fetchall()

print (rows)

conn.close()

저장된 데이터를 이용하여 Python에서 시각화 하기 위해서는 아래의 글을 참고해 주시기 바랍니다.

 

[출처] https://hiseon.me/python/python-sqlite3-tutorial/

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
57 [python 인공지능] Deploy ML models with FastAPI, Docker, and Heroku | Tutorial 졸리운_곰 2025.07.08 467
56 [python 인공지능] [VSCode] VSCode에서 ipynb 파일을 HTML(PDF 등..)로 졸리운_곰 2025.05.27 289
55 [Python 인공지능] [파이썬을 이용한 한글 NLP] 03. 간단한 키워드 추출기 졸리운_곰 2025.01.29 459
54 [Python 인공지능] [ 한글 키워드 시각화 ] 파이썬 python 텍스트 마이닝 한글 ( 워드 클라우드 WordCloud, squrify 트리맵으로 빅데이터 마스터) file 졸리운_곰 2025.01.29 403
53 [Python 인공지능] 기계 학습의 A to Z : IPython notebook과 scikit-learn을 활용한 기계 학습 file 졸리운_곰 2024.08.10 523
52 [python] 인공지능 python : 한글 문서 자동 요약 - lexrank 졸리운_곰 2023.07.06 404
51 [python] 인공지능 katiehouse / django-scikit-learn-tutorial file 졸리운_곰 2023.06.03 664
50 [python] [Anaconda]가상환경 설치,삭제 file 졸리운_곰 2022.12.03 405
49 [python][머신러닝] Scikit-learn Tutorial: Machine Learning in Python file 졸리운_곰 2022.11.29 497
48 [python] 파이썬(sklearn) 사이킷런(sklearn) 기초 졸리운_곰 2022.08.20 321
47 [python] scikit-learn이란 file 졸리운_곰 2022.08.20 455
46 [anaconde3][python] Create environment for tensorflow 1.4 in Anaconda 3 졸리운_곰 2022.07.02 563
45 [python][인공지능] [TensorFlow] Anaconda 가상환경 이용하여 TensorFlow GPU 설치 졸리운_곰 2022.01.20 438
44 [Python 인공지능] TextRank 를 이용한 키워드 추출과 핵심 문장 추출 (구현과 실험) file 졸리운_곰 2021.11.22 597
43 [python][인공지능] FLASK를 이용하여 PYTHON에서 PYTORCH를 REST API로 배포하기 졸리운_곰 2021.03.20 364
42 [python 파이썬] Creating REST API for TensorFlow models file 졸리운_곰 2021.02.01 488
41 [python 파이썬 인공지능] Keras 모델을 REST API로 배포해보기 file 졸리운_곰 2021.02.01 411
40 [파이썬 머신러닝] Scikit-learn 기초 졸리운_곰 2020.01.31 579
39 파이썬으로 간단한 뉴럴 네트워크 만들기 How to Create a Simple Neural Network in Python file 졸리운_곰 2020.01.29 22636
38 Keras를 활용한 주식 가격 예측 file 졸리운_곰 2019.02.25 984
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED