티스토리 뷰

반응형

0. SQLite란?

 

이해하기 쉽게 설명하면 SQLite는 파일형 데이터베이스 입니다. 데이터베이스라서 쿼리를 사용할 수 있어, 다양한 데이터 처리를 할 수 있습니다. 다량의 데이터도 컴퓨터의 자원이 허락된다면 처리할 수 있기 때문에 데이터베이스가 필요한 경우 손쉽게 이용되는 "임베디드형 RDB(Relation Database)" 입니다.
 
임베디드형 RDB?
 
요즘 SQLite는 모바일 환경에서 자주 이용됩니다. 일반적인 RDB는 모바일 환경에 적합하지 않기 때문에 경량화된 데이터 베이스를 사용하는 것이 일반적이며 이러한 디바이스에 적용되는 데이터베이스를 "임베디드 데이터베이스"라고 합니다.
 
여러분들이 만약 영어사전 앱을 만든다고 생각해 봅시다
 
이 경우 데이터베이스를 서버에 놓을 것인자 단말기에서 처리할 것인지 고민을 해야합니다. 데이터베이스를 서버에 놓게 되면 프로그램에서 매번 통신을 해야 하기 때문에 앱을 제공하는 회사입장에서 이는 다 비용이기 때문입니다. 하지만 그렇다고 해서 모바일에 일반적인 데이터베잇를 설치한다면? 이 방법 또한 너무 앱이 무거워지는 문제를 가집니다. 
 
그래서 경량화된 임베디드 데이터베이스 개발이 이뤄지게 되었고, 이렇게 탄생한것이 SQLite입니다. 
 

 
 

1. Python에서 SQLite DB 연결하기 

 

서론이 너무 길었습니다. 이제 파이썬을 통해 SQLite를 연결하는 방법에 대해서 알아보겠습니다.하는 방법은 매우 간단합니다. 아래의 단계를 하나하나씩 코드로 작성하면되는데, python는 각 단계가 한줄정도 밖에 되지 않습니다. 천천히 각 단계를 살펴보세요~

 
(1) 먼저 'sqlite3' 모듈 import를 통해 로드합니다. 
(2) SQLite의 DB 파일의 위치를 지정합니다. 
(3) 지정된 위치를 기반으로 Connection을 만듭니다. 
 
위의 과정을 코드로 설명하면 아래와 같습니다. 

#sqlite3 모듈로드
import sqlite3

file_path = "C:/SQLiteDB.sqlite"

conn = sqlite3.connet(file_path) #커넥션 생성

conn.close() #연결 닫기

 
사실 일반적으로 아래와 같이 작성하는 것이 정석이지만, 

import sqlite3

# 데이터베이스 파일 경로 지정
db_path = "my_database.sqlite"

# 데이터베이스 연결 생성
conn = sqlite3.connect(db_path)

# 데이터베이스 커서 생성
cursor = conn.cursor()

# SQL 쿼리 실행 예제
cursor.execute("SELECT * FROM my_table")

# 결과 가져오기
rows = cursor.fetchall()

# 연결 닫기
conn.close()

제목에서 언급한 바와 같이 데이터프레임(pandas의 dataframe)으로 DB를 읽어오는 과정을 설명하겠습니다. 
 

2. Pandas로 SQLite DB 일기

 

pandas로 DB를 읽을 때, 'pandas.read_sql_query'를 이용하면 간단하게 SQLite DB를 읽을 수 있습니다. pandas.read_sql_query는 쿼리 결과를 데이터프레임 형식 저장하기 때문에 이용하는 것도 매우 쉽게 이용할 수 있습니다. 사용하는 방법은 아래와 같습니다.

 
read_sql_query의 사용 예>
dataframe = pandas.read_sql_query(query_string, con)

import sqlite3
import pandas as pd

file_path = "C:/SQLiteDB.sqlite"

con = sqlite3.connect(file_path)

Query_String = "SELECT * FROM DBTableName"
df = pd.read_sql_query(Query_String, con)
print(df)

con.close()

파이썬의 WITH절을 사용하면 con.close를 사용하지  않는 간결한 코드를 만들수 있습니다. 
 

import sqlite3
import pandas as pd

file_path = "C:/SQLiteDB.sqlite"

with sqlite3.connect(file_path) as con : 	
  Query_String = "SELECT * FROM DBTableName"
  df = pd.read_sql_query(Query_String, con)
  print(df)

이렇게 읽은 테이블에서 인덱싱을 통해 원하는 결과를 출력하는 방법도 간단합니다. 

NewsDf_title_table = df[['ptime', 'title', 'content']]
NewsDf_title_table

3. 마무리

이번 포스트에서는 파이썬을 통해 SQLite 를 접속하고 pandas로 데이터베이스를 이용하는 방법에 대해 알아보았습니다

사실 다른 데이터베이스또 사용방법은 같습니다. SQLite로 연습하시고 다른 데이터베이스로도 확장햐 보시면 좋을 것 같습니다.


반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함