파이썬 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/

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
47 [python] 파이썬 f-string (파이썬 스트링 앞에 f') file 졸리운_곰 2021.07.17 446
46 [Python] 파이썬으로 복리 계산하기 file 졸리운_곰 2021.07.17 562
45 [python, 파이썬] 연습 문제: 복리 이자 계산 졸리운_곰 2021.07.17 925
44 [python] 파이썬 기초 문법 정리 졸리운_곰 2021.05.17 861
43 [python] [GPU]GPU 사용 Python 코드 실행 졸리운_곰 2021.04.21 567
42 [python] 파이썬 스케줄 수행 - schedule, apscheduler file 졸리운_곰 2020.07.26 454
41 파이썬 스크립트 스케줄링하기 file 졸리운_곰 2020.07.26 1012
40 Python Scheduler 만들기(APScheduler) 졸리운_곰 2020.07.26 1089
39 [python] 주피터 노트북에서 패키지 설치 졸리운_곰 2018.12.06 1225
38 Data Structures and Algorithm In python 파이썬으로 자료구조와 알고리즘 : 출처 인터넷 file 졸리운_곰 2018.08.27 514
37 Mastering Basic Algorithms in the Python Language 이북 출처 인터넷 file 졸리운_곰 2018.08.27 629
36 python dev 사용자 입력과 출력 졸리운_곰 2018.03.01 472
35 APScheduler 사용기 file 졸리운_곰 2018.02.09 1070
34 [파이썬, 조각코드] 스케쥴러 만들기. 졸리운_곰 2018.02.09 795
33 Python virtualenv 정리 (Linux/Windows) 졸리운_곰 2018.01.23 486
32 [Python] 코드난독화 file 졸리운_곰 2018.01.19 1002
31 Python - Way to recursively find and replace string in text files 졸리운_곰 2017.08.30 478
30 Python Coding for Minecraft 마인크래프트를 위한 파이썬 프로그래밍 file 졸리운_곰 2017.05.05 1794
29 Atom을 Python 개발 툴로 사용하기 file 졸리운_곰 2017.03.06 938
28 IPython Notebook을 통한 데이터 분석 #3 file 졸리운_곰 2017.03.05 754
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED