Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python과 SQLite로 배우는 SQL 데이터베이스 활용법

이 글에서는 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에서 데이터베이스를 다룰 준비가 되었습니다. 익숙해지려면 다양한 예제를 반복해서 연습하는 것이 중요합니다. 학습 과정에서 궁금한 점이 있다면 댓글로 남겨 주세요.