이 글에서는 Python과 SQLite 데이터베이스를 함께 사용하는 방법을 배워보겠습니다. Python은 SQLite 데이터베이스에 연결할 수 있는 내장 모듈을 제공하며, 우리는 sqlite3 모듈을 사용해 Python과 SQLite를 손쉽게 연동할 수 있습니다.
SQLite 데이터베이스 연결하기
Python에서 SQLite 데이터베이스에 연결하려면 아래 세 가지 단계를 따라야 합니다. 각 단계를 살펴본 후 직접 프로그램을 작성해 보세요.
- sqlite3 모듈 임포트: 먼저 sqlite3 모듈을 불러옵니다.
- 연결 객체 생성:
sqlite3.connect(db_name)메서드를 사용합니다. 이 메서드는 데이터베이스 이름을 인자로 받으며, 해당 이름의 파일이 존재하지 않으면 새로 생성하고, 이미 존재하면 그 파일을 엽니다. - 커서 객체 생성:
conn.cursor()를 통해 커서 객체를 얻습니다. 커서는 Python과 SQLite 데이터베이스 사이의 중재자 역할을 하며, 모든 SQL 명령은 이 커서 객체를 통해 실행됩니다.
위 세 단계만으로 SQLite 데이터베이스와의 연결이 완성됩니다. 참고로 이 과정은 Python에서 다른 데이터베이스를 다룰 때도 거의 동일하게 적용됩니다. 각 단계가 헷갈린다면 아래 코드를 확인해 보세요.
# importing the module
import sqlite3
# creating an connection
conn = sqlite3.connect("tutorialspoint.db") # db - database
# Cursor object
cursor = conn.cursor()테이블 생성 및 데이터 삽입
이제 데이터베이스와 연결되었으니, SQL 쿼리를 사용해 실제 데이터베이스를 구축해 보겠습니다. 아래 순서대로 진행하세요.
- 컬럼명과 데이터 타입을 포함한 테이블 생성 SQL 코드를 작성합니다.
cursor.execute()를 사용해 위 코드를 실행하여 데이터베이스에 테이블을 만듭니다.- 테이블에 행(row)을 삽입하는 SQL 코드를 작성하고, 앞 단계와 같은 방식으로 실행합니다.
conn.commit()메서드를 호출하여 변경 사항을 파일에 저장합니다.conn.close()메서드로 연결을 종료합니다.
# importing the module
import sqlite3
# creating an connection
conn = sqlite3.connect("tutorialspoint.db") # db - database
# Cursor object
cursor = conn.cursor()
# code to create a databse table
create_table_sql = """
CREATE TABLE students (
id INTEGER PRIMARY KEY,
first_name VARCHAR(20),
last_name VARCHAR(30),
gender CHAR(1)
);
"""
# executing the above SQL code
cursor.execute(create_table_sql)
# inserting data into the students table
insert_student_one_sql = """INSERT INTO students VALUES (1, "John", "Hill", "M");"""
cursor.execute(insert_student_one_sql)
insert_student_two_sql = """INSERT INTO students VALUES (2, "Jessy", "Hill", "F");"""
cursor.execute(insert_student_two_sql)
insert_student_three_sql = """INSERT INTO students VALUES (3, "Antony", "Hill", "M");"""
cursor.execute(insert_student_three_sql)
# saving the changes using commit method of connection
conn.commit()
# closing the connection
conn.close()위 코드를 실행한 후 오류가 발생하지 않았다면 정상적으로 완료된 것입니다.
데이터베이스에서 데이터 조회하기
그렇다면 저장된 데이터는 어떻게 확인할 수 있을까요? 아래 단계를 따라 코드를 작성해 보세요.
- 데이터베이스에 연결합니다.
- 커서 객체를 생성합니다.
- 테이블에서 원하는 데이터를 가져오는 SQL 쿼리를 작성합니다.
- 쿼리를 실행합니다.
- 커서 객체가 원하는 데이터를 보유하게 되며,
fetchall()메서드로 데이터를 가져옵니다. - print 함수로 데이터를 출력하여 확인합니다.
# importing the module
import sqlite3
# creating an connection
conn = sqlite3.connect("tutorialspoint.db") # db - database
# Cursor object
cursor = conn.cursor()
# SQL query to get all students data
fetch_students_sql = """
SELECT * FROM students;
"""
# executing the SQL query
cursor.execute(fetch_students_sql)
# storing the data in a variable using fetchall() method
students = cursor.fetchall() # a list of tuples
# printing the data
print(students)위 프로그램을 실행하면 아래와 유사한 결과를 얻을 수 있습니다.
실행 결과
[(1, 'John', 'Hill', 'M'), (2, 'Jessy', 'Hill', 'F'), (3, 'Antony', 'Hill', 'M')]
마무리
이제 여러분은 Python에서 데이터베이스를 다룰 준비가 되었습니다. 익숙해지려면 다양한 예제를 반복해서 연습하는 것이 중요합니다. 학습 과정에서 궁금한 점이 있다면 댓글로 남겨 주세요.