-
Python sqlite3 사용하기DB_study 2021. 10. 27. 01:57
이번 블로깅은 SQLite라는 라이브러리를 소개할 것이다.
SQLite
SQLite는 별도의 서버 프로세스가 필요 없고 SQL 질의 언어의 비표준 변형을 사용하여 데이터베이스에 액세스할 수 있는 경량 디스크 기반 데이터베이스를 제공하는 C 라이브러리입니다. 일부 응용 프로그램은 내부 데이터 저장을 위해 SQLite를 사용할 수 있습니다. SQLite를 사용하여 응용 프로그램을 프로토타입 한 다음 PostgreSQL 이나 Oracle과 같은 더 큰 데이터베이스로 코드를 이식할 수도 있습니다.(출처 : sqlite3)
지원하는 자료형
SQLite는 기본적으로 다음 형을 지원합니다: NULL, INTEGER, REAL, TEXT, BLOB.
따라서 다음과 같은 파이썬 형을 아무 문제 없이 SQLite로 보낼 수 있습니다.
파이썬형 SQLite형 None NULL int INTEGER float REAL str TEXT bytes BLOB 예제
employee.db
employee_data
위와 같은 테이블을 생성해 보도록 하겠습니다.
테이블 생성하기.
CREATE TABLE & INSERT DATA
# employee.db가 없을 경우 새로 생성하며 연결 # employee.db가 있을경우 해당 db로 연걸 conn = sqlite3.connect("employee.db") # conn.cursor을 통해 Cursor를 하나 생성 cur = conn.cursor() # conn.execute를 통해 employee_data 테이블을 생성합니다. conn.execute('CREATE TABLE employee_data(id INTEGER, name TEXT, nickname TEXT, department TEXT, employment_date TEXT)') # cur.executemany를 통해 데이터를 INSERT합니다. cur.executemany( 'INSERT INTO employee_data VALUES (?, ?, ?, ?, ?)', [(1001, 'Donghyun', 'SOMJANG', 'Development', '2020-04-01 00:00:00.000'), (2001, 'Sol', 'Fairy', 'Marketing', '2020-04-01 00:00:00.000'), (2002, 'Jiyoung', 'Magician', 'Marketing', '2020-04-01 00:00:00.000'), (1002, 'Hyeona', 'Theif', 'Development', '2020-04-01 00:00:00.000'), (1003, 'Soyoung', 'Chief', 'Development', '2020-04-01 00:00:00.000') ] ) # conn.commit()를 통해 변경사항을 저장합니다. conn.commit() # conn.close()를 통해 db와의 연결 해제합니다. conn.close()
저장한 데이터는 영구적이며 이후 세션에서 사용할 수 있습니다:
아래 예제는 간단한 SELECT 문을 실행한 후, 전체 ROW 데이타를 출력하는 예이다.
# employee.db 연결 conn = sqlite3.connect("employee.db") # cursor를 생성합니다. cur = conn.cursor() # cur.excute를 이용해 SELECT 쿼리를 실행합니다. cur.execute("SELECT * FROM employee_data") # cur.execute를 통해 가져온 모든 결과의 행을 가져와 리스트로 가져온다. rows = cur.fetchall() # 반복문을 통해 하나씩 row를 출력한다. for row in rows: print(row) # conn.close()이용해 db와의 연결을 해제합니다. conn.close()
데이터를 가져와서 DataFrame형태로 출력하기
# 먼저 DataFrame를 사용하기위해 pandas를 import 하기 import pandas as pd # employee.db 연결하기 conn = sqlite3.connect("employee.db") # cursor를 생성하기 cur = conn.cursor() # cur.execute를 통해 SELRCT 쿼리 실행 cur.execute("SELECT * FROM employee_data") # 행 데이터를 가져오기 rows = cur.fetchall() # columns열 이름을 가져오기 cols = [column[0] for column in cur.description] # 코드를 활요하여 DataFrame을 만들어주기 data_df = pd.DataFrame.from_records(data=rows, columns=cols) # conn.close()이용해 db와의 연결을 해제합니다. conn.close() data_df
출력 결과가 잘 나온것을 확인 할 수 있다.
다음 Table 삭제 코드
conn = sqlite3.connect("employee.db") cur = conn.cursor() # conn.execute에 DROP 쿼리를 넣어 실행 conn.execute('DROP TABLE employee_data') conn.close()
지금은 막 배우고 있는터라 많이 부족한 내용이다. 좀더 자세하게 알게되면 상세하게 추가로 올려보도록 하자.
출처: https://somjang.tistory.com/entry/Python-Python에서-Sqlite3-사용하기 [솜씨좋은장씨]