파이썬 - SQLite의 이해

2025. 1. 31. 13:02IT

에스큐엘라이트, sqlite는 많은 사용자가 동시에 접속해서 사용하는 용도가 아닌 개인용 어플리케이션의 데이터베이스로 많이 사용이 되고 있다고 말씀드렸습니다. 특히 데이터베이스가 필요한 안드로이드 스마트폰용 어플리케이션에서는 100% sqlite를 사용하고 있다고 해도 무방하지 않을까 싶습니다. 파이썬에도 sqlite가 기본으로 설치되어 있어서 별도로 설치를 할 필요 없이 바로 사용을 할 수 있습니다.

 

다음은 파이썬에서 sqlite를 사용하는 순서를 설명하기 위한 코드입니다. 

첫번째로 데이터베이스와 파이썬을 연결합니다. 

두번째, 커서를 생성합니다. 커서는 데이터베이스를 조작하고 결과를 받아오기 위한 것입니다. 

세번째, 데이터베이스에 질의를 합니다. 질의에는 데이터베이스 내에 자료를 저장할 공간을 만들고, 자료를 저장하고 수정하고 삭제하는 모든 행위를 의미합니다. 

네번째로 질의 결과를 받아서 처리합니다. 

다섯번째, 마지막으로 커서와 데이터베이스 연결을 닫습니다. 

 

이 설명대로 구현이 된 것이 다음의 코드입니다.

 022_sqlite.py

 

sqlite를 사용하는 순서가 중요하므로 앞서 설명드린 5단계를 한줄 한줄 코드를 보면서 다시 설명해 보겠습니다. sqlite의 최신 버전이 v3입니다. 그래서 sqlite를 sqlite3라고 버전과 함께 표기하기도 합니다.

 

 conn = sqlite3.connect(r".\files\db\myfirst.db") # 데이터베이스 연결

 

첫번째, 데이터베이스를 연결합니다. connect() 함수에 데이터베이스의 물리적 위치를 지정해줍니다. 만약에 해당 위치에 파일이 없다면 데이터베이스 파일을 만들어줍니다.

 

 cursor = conn.cursor() # 커서 생성

 

두번째, 커서를 생성합니다. sqlite를 사용하면서 가장 중요한 요소 중의 하나가 바로 이 커서입니다. 이 커서를 통해서 데이터베이스내에 자료를 저장할 테이블을 만들고 자료를 추가, 수정, 삭제를 합니다. 더불어 검색한 결과를 받아오는 것 역시 커서입니다. 데이터베이스에 명령을 내리고 그 결과값을 받아오는 장소를 가리키기도 합니다. 

 

 cursor.execute('SELECT * FROM AddressBook') # 쿼리 실행

 

세번째, 데이터베이스에 질의를 합니다. 질의 혹은 질문이라는 한국어가 있는데 영어로 Query라는 것을 그대로 발음해서 쿼리라고들 합니다. 프로그래밍을 하는 거의 대부분이 쿼리라고 부르며 쿼리는 SQL, Structured Query Language라는 표준 언어를 사용해서 데이터베이스에 질문을 던집니다. SQL문에서 CREATE문은 데이터베이스 내에 데이터를 담고 있는 Table을 만들때, SELECT문은 Table내의 정보를 가지고 올때, INSERT문은 데이터를 추가할 때, UPDATE문은 데이터를 수정할 때, DELETE문은 데이터를 삭제할 때 각각 사용합니다. 그 외에도 다른 문장들이 있지만 우리가 배울 것은 앞의 다섯가지 CREATE, SELECT, INSERT, UPDATE, DELETE의 다섯가지 입니다.

 

 for row in cursor.fetchall(): # 결과 처리

     print(row)

 

네번째, 결과를 처리합니다. 세번째에서 쿼리로 던진 결과는 커서에 담겨있습니다. 커서에서 fetchall()이라는 함수로 모든 결과를 가지고 옵니다. 가지고 온 결과를 다양한 방법으로 처리할 수 있겠습니다만, 여기서는 for 문을 이용해서 모두 출력을 하고 있습니다. 

 

 cursor.close() # 커서 닫기

 conn.close() # 데이터베이스 연결 닫기

 

마지막으로 커서를 닫고, 다음으로 데이터베이스와의 연결을 끊음으로서 데이터베이스 관련 조작을 완료할 수 있습니다. 



반응형