딥러닝(AI학습 53)

이유진·2024년 7월 8일

--34.SQLite.ipynb--

SQLite 데이터베이스 다루기

DB 연결 및 닫기

import sqlite3
import pandas as pd

con = None

try :
con = sqlite3.connect('example.db') # 연결하고자 하는sqlite3 파일명
print('DB 연결 성공')
except Exception as e:
print(e)
finally :
if con is not None:
con.close() # DB 사용후에는 반드시 connection을 종료(close) 해야한다!! ★
print('DB 연결 종료 성공')
con=None

테이블 생성

con = None

try :
con = sqlite3.connect('example.db') # 연결하고자 하는sqlite3 파일명
print('DB 연결 성공')

테이블 생성 SQL 정의

sql = '''
CREATE TABLE tb_student(
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER,
address TEXT
)
'''

cur = con.cursor() # 쿼리를 실행시키려면 connection으로 부터 cursor 객체 얻어와야 함.
cur.execute(sql)
print('테이블 생성 성공')

con.commit() # DB에 변경을 가하면, commit() 하여 변경내역을 저장.

except Exception as e:
print('예외 발생: ', e)

finally :
if con is not None:
con.close() # DB 사용후에는 반드시 connection을 종료(close) 해야한다!! ★
print('DB 연결 종료 성공')
con=None

데이터 추가 (INSERT)

con = None

try :
con = sqlite3.connect('example.db') # 연결하고자 하는sqlite3 파일명
print('DB 연결 성공')

테이블 생성 SQL 정의

sql = '''
INSERT INTO tb_student(name, age, address) VALUES ('Kay', 35, 'Korea')
'''

cur = con.cursor() # 쿼리를 실행시키려면 connection으로 부터 cursor 객체 얻어와야 함.
cur.execute(sql)
print('INSERT 성공')

con.commit() # DB에 변경을 가하면, commit() 하여 변경내역을 저장.

except Exception as e:
print('예외 발생: ', e)

finally :
if con is not None:
con.close() # DB 사용후에는 반드시 connection을 종료(close) 해야한다!! ★
print('DB 연결 종료 성공')
con=None

데이터 조회 (SELECT)

con = None

try :
con = sqlite3.connect('example.db') # 연결하고자 하는sqlite3 파일명
print('DB 연결 성공')

테이블 생성 SQL 정의

sql = '''
SELECT * FROM tb_student
'''

cur = con.cursor() # 쿼리를 실행시키려면 connection으로 부터 cursor 객체 얻어와야 함.
cur.execute(sql)
results = cur.fetchall()
print(results)

컬럼명

print('컬럼명 출력')

for i in cur.description :
print(i[0])

columns = [i[0] for i in cur.description]

Dataframe 으로 표현

df = pd.DataFrame(results, columns = columns)
print(df)

except Exception as e:
print('예외 발생: ', e)

finally :
if con is not None:
con.close() # DB 사용후에는 반드시 connection을 종료(close) 해야한다!! ★
print('DB 연결 종료 성공')
con=None

df

여러 row INSERT

con = None

try:
con = sqlite3.connect('example.db') # 연결하고하 하는 sqlite3 파일명
print('DB 연결 성공')

데이터 준비

students = [
{'name': 'Kei', 'age': 36, 'address' : 'PUSAN'},
{'name': 'Tony', 'age': 34, 'address': 'PUSAN'},
{'name': 'Jaeyoo', 'age': 39, 'address': 'GWANGJU'},
{'name': 'Grace', 'age': 28, 'address': 'SEOUL'},
{'name': 'Jenny', 'age': 27, 'address': 'SEOUL'},
]

cur = con.cursor() # 쿼리를 실행시키려면 connection 으로부터 cursor 객체 얻어와야 함.

for s in students:
sql = '''
INSERT INTO tb_student(name, age, address) VALUES('%s', %d, '%s')
''' % (s['name'], s['age'], s['address'])
cur.execute(sql)

print('INSERT 성공')
con.commit() # DB에 변경을 가하면, commit() 하여 변경내역 저장.

except Exception as e:
print('예외발생:', e)

finally:
if con is not None:
con.close() # DB 사용후에는 반드시 connection 을 종료(close) 해주어야 한다
print('DB 연결 종료 성공')
con = None

con = None

try :
con = sqlite3.connect('example.db') # 연결하고자 하는sqlite3 파일명
print('DB 연결 성공')

테이블 생성 SQL 정의

sql = '''
SELECT * FROM tb_student
'''

cur = con.cursor() # 쿼리를 실행시키려면 connection으로 부터 cursor 객체 얻어와야 함.
cur.execute(sql)
results = cur.fetchall()
print(results)

컬럼명

print('컬럼명 출력')

for i in cur.description :
print(i[0])

columns = [i[0] for i in cur.description]

Dataframe 으로 표현

df = pd.DataFrame(results, columns = columns)
print(df)

except Exception as e:
print('예외 발생: ', e)

finally :
if con is not None:
con.close() # DB 사용후에는 반드시 connection을 종료(close) 해야한다!! ★
print('DB 연결 종료 성공')
con=None

profile
독해지자

0개의 댓글