반응형
파이썬에 내장되어 있는 sqlite3 모듈을 사용해보자.
기본적인 CRUD(Create, Read, Update, Delete)정도만 사용해봐도 될 것 같고, 나머지는 sql 쿼리를 공부하면 더 다양한 문법들을 사용할 수 있다.
코딩을 하기에 앞서 sqlite 데이터베이스에 값이 정상적으로 들어갔는지 확인하기 위해 'DB browser for SQLite'를 설치하자.
<소스코드>
import sqlite3
def createTable():
try:
sql = "create table if not exists student(name varchar(20), age int, birth date)"
conn = sqlite3.connect('test.db')
conn.execute(sql)
conn.close()
print("테이블 생성 성공")
except Exception as err:
print("테이블 생성 실패")
def insertData(name, age, birth):
try:
sql = "insert into student values(?, ?, ?)"
conn = sqlite3.connect('test.db')
conn.execute(sql, (name, age, birth))
conn.commit()
conn.close()
print("데이터 추가 성공")
except Exception as err:
print("데이터 추가 실패")
def updateData(old_name, new_name):
try:
sql = "update student set name=?, age=? where name=?"
db = sqlite3.connect("test.db")
db.execute(sql, (new_name, 20, old_name))
db.commit()
db.close()
print("데이터 수정 성공")
except Exception as err:
print("데이터 실패")
def deleteData(name):
try:
sql = "delete from student where name=?"
db = sqlite3.connect("test.db")
db.execute(sql, (name,))
db.commit()
db.close()
print("데이터 삭제 성공")
except Exception as err:
print("데이터 삭제 실패")
def selectData():
try:
sql = "select * from student"
db = sqlite3.connect("test.db")
cur = db.cursor()
cur.execute(sql)
dt = cur.fetchall()
db.close()
for n, a, b in dt:
print(n, a, b)
except Exception as err:
print("select 실패")
createTable()
insertData('신사임당', 50, '2000-01-01')
insertData('김철수', 30, '2010-01-01')
updateData('김철수', '김철구')
selectData()
deleteData('김철구')
selectData()
<결과화면>
코드를 실행하면 해당 path에 'test.db'라는 데이터베이스가 생성된다.
이 데이터베이스를 아까 설치했던 'DB browser for SQLite'을 실행해서 내부 데이터를 확인할 수 있다.
위 코드의 결과로 현재는 신사임당에 해당하는 데이터만 들어있다.
위의 소스코드를 함수화시켜놨으니 insert문이나 delete문을 호출하면서 값이 변동되는지 확인해보면 어떻게 동작하는지 알 수 있을 것이다.
반응형
'Data Analysis' 카테고리의 다른 글
크롤링이 안 되는 경우 (User-Agent) (0) | 2022.04.30 |
---|---|
파이썬 numpy (0) | 2021.02.20 |
엑셀 빈 셀에 한 번에 특정 값 입력하기 (0) | 2020.11.12 |
파이썬 openpyxl (차트) (0) | 2020.11.11 |
파이썬 openpyxl (0) | 2020.11.11 |