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

Python으로 나만의 SQLite 데이터베이스 구축하기: 완벽 입문 가이드

소개

프로그래머에게 데이터베이스를 다루는 능력은 필수입니다. 애플리케이션에서 데이터를 손쉽게 저장하고, 조회하고, 조작하며, 삭제할 수 있어야 하기 때문입니다. 다행히 Python에는 sqlite3 모듈이 기본으로 내장되어 있어 별도의 설치 과정 없이 바로 SQLite 데이터베이스를 만들고 관리할 수 있습니다.

SQLite는 하나의 파일에 데이터베이스 전체가 저장되는 경량형 RDBMS입니다. 서버 설치나 복잡한 설정 없이 파일 하나로 관리되기 때문에 사용과 접근이 매우 간편하며, 소규모 프로젝트나 데이터 분석 작업에 특히 유용합니다.

시작하기

SQLite가 무엇인지, 왜 사용하는지 이해했다면 이제 Python으로 SQLite의 다양한 기능을 활용하는 방법을 알아보겠습니다.

먼저 컴퓨터에 Python이 설치되어 있는지 확인하세요. SQLite 패키지는 Python에 기본 포함되어 있으므로 따로 설치할 필요가 없습니다.

SQLite 라이브러리를 사용하려면 스크립트 상단에서 다음과 같이 임포트하면 됩니다.

import sqlite3

데이터베이스 생성하기

데이터베이스를 생성하는 방법은 간단합니다. 해당 데이터베이스에 연결(connect)을 시도하면 되는데, 만약 파일이 존재하지 않으면 실행 시점에 자동으로 새로 생성됩니다.

database = sqlite3.connect("Student_records.db")
print("연결이 성공적으로 완료되었습니다!")
database.close()

이제 데이터베이스가 성공적으로 생성되고 연결되었습니다. 작업 디렉터리를 확인해 보면 Student_records.db 파일이 생성된 것을 볼 수 있습니다.

속성(컬럼) 추가하기

RDBMS에서 속성(attribute)이란 테이블의 컬럼(column)을 의미합니다.

참고 − 하나의 데이터베이스 안에는 여러 개의 테이블이 존재할 수 있으며, 각 테이블은 서로 다른 컬럼들을 가질 수 있습니다.

먼저 데이터베이스에 연결한 후 테이블과 속성을 정의합니다.

database = sqlite3.connect("Student_records.db")
print("연결이 성공적으로 완료되었습니다!")
database.execute("""CREATE TABLE Scores(ID INT PRIMARY KEY NOT NULL, NAMES TEXT NOT NULL, MARKS TEXT NOT NULL, GRADES NOT NULL)""")
print("데이터베이스에 컬럼이 생성되었습니다.")
database.close()

위 코드는 학생 ID, 이름, 점수, 등급을 담는 Scores라는 테이블을 생성합니다.

참고: NOT NULL은 반드시 값이 입력되어야 하며 비워둘 수 없음을 의미하고, PRIMARY KEY는 각 값이 고유해야 함을 뜻합니다. 즉, 두 학생의 ID가 동일해서는 안 됩니다.

레코드 삽입하기

데이터베이스와 테이블을 만들었다면, 이제 실제 데이터(레코드)를 삽입할 차례입니다.

역시 데이터베이스 연결부터 시작합니다.

connection = sqlite3.connect("Student_records.db")
print("연결이 성공적으로 완료되었습니다!")
cursor = connection.cursor()
cursor.execute("""INSERT INTO Scores(ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(1,"Vijay",93,"A"))
connection.commit()
connection.close()

위 코드의 핵심 요소를 살펴보겠습니다.

cursor = connection.cursor()는 데이터베이스의 레코드를 탐색하고 SQL 명령을 실행하기 위한 기본 도구입니다.

connection.commit()은 실행된 모든 명령을 데이터베이스에 실제로 저장합니다. 연결을 종료하기 전에 반드시 호출해야 변경 사항이 반영됩니다.

추가적인 레코드는 cursor.execute() 명령을 반복하여 같은 문법으로 손쉽게 넣을 수 있습니다.

− GUI 환경에서 데이터베이스를 확인하고 싶다면 DB Browser for SQLite를 다운로드해 보세요. 오픈소스이며 무료로 사용할 수 있는 가벼운 프로그램으로, 데이터베이스 내용을 시각적으로 쉽게 확인할 수 있습니다.

전체 예제

import sqlite3
connection = sqlite3.connect("Student_records.db")
print("연결이 성공적으로 완료되었습니다!")
cursor = connection.cursor()
cursor.execute("""INSERT INTO Scores (ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(1,"Vijay",93,"A"))
cursor.execute("""INSERT INTO Scores (ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(2,"Tony",86,"B"))
cursor.execute("""INSERT INTO Scores (ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(3,"Stark",100,"A"))
cursor.execute("""INSERT INTO Scores (ID,NAMES,MARKS,GRADES)VALUES(?,?,?,?)""",(4,"Steve",63,"C"))
print("레코드가 추가되었습니다.")
connection.commit()
connection.close()
input("종료하려면 Enter 키를 누르세요 ")

마무리

이제 직접 데이터베이스를 생성하고, 테이블과 속성을 정의하며, 레코드까지 추가할 수 있게 되었습니다!

sqlite3 라이브러리에는 이 외에도 데이터 조회, 수정, 삭제, 정렬 등 다양한 데이터 분석 작업을 손쉽게 수행할 수 있는 기능들이 많이 포함되어 있습니다.

더 자세한 내용은 공식 문서(https://docs.python.org/3/library/sqlite3.html)를 참고하시기 바랍니다.