Chapter 14. SQLite 시작

SQLite는 별도의 서버 설치 없이 사용할 수 있는 경량 데이터베이스(Database)입니다.
일반적인 데이터베이스(MySQL, Oracle 등)는 서버를 설치하고 실행해야 하지만, SQLite는 하나의 파일(.db)만으로 데이터베이스를 사용할 수 있습니다.
파이썬에는 SQLite를 사용할 수 있는 sqlite3 모듈이 기본으로 포함되어 있어 별도의 설치 없이 사용할 수 있습니다.
- 별도의 서버 설치가 필요 없다.
- 하나의 데이터베이스 파일(.db)로 관리된다.
- 설치 과정이 간단하다.
- 속도가 빠르다.
- 파이썬에서 기본 지원한다.
- 학습용, 개인 프로젝트, 모바일 앱에서 많이 사용된다.
- 파이썬 학습
- 개인 프로젝트
- 업무 자동화 프로그램
- 모바일 앱(Android)
- IoT 장비
- 테스트용 데이터베이스
SQLite를 사용하려면 sqlite3 모듈을 가져와야 합니다.
import sqlite3
별도의 설치 없이 바로 사용할 수 있습니다.
SQLite에서는 데이터베이스 파일을 연결하면 파일이 없을 경우 자동으로 생성됩니다.
conn = sqlite3.connect("sample.db")위 코드를 실행하면 현재 폴더에 sample.db 파일이 생성됩니다.
conn = sqlite3.connect("sample.db")데이터베이스 사용이 끝나면 반드시 연결을 종료해야 합니다.
conn.close()
SQL 문장을 실행하려면 Cursor 객체가 필요합니다.
cursor = conn.cursor()
Cursor는 SQL을 실행하는 역할을 합니다.
c = conn.cursor()
print("Cursor 생성 완료")
conn.close()
테이블은 데이터를 저장하는 공간입니다. 회원 정보를 저장하는 테이블을 만들어 보겠습니다.
CREATE TABLE member (
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
SQL 문장은 execute() 함수로 실행합니다.
cursor.execute("""
CREATE TABLE member(
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)""")
conn.commit()을 실행하여 변경 내용을 실제 데이터베이스에 저장합니다.
conn.commit()
conn.close()
print("테이블 생성 완료")
테이블 생성이나 데이터 저장 후에는 반드시 commit()을 실행해야 합니다.
이미 테이블이 존재하는 경우 오류가 발생하지 않도록 합니다.
CREATE TABLE IF NOT EXISTS member(
id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
)
SQLite에서 자주 사용하는 자료형은 다음과 같습니다.
| 자료형 | 설명 |
|---|---|
| INTEGER | 정수 |
| REAL | 실수 |
| TEXT | 문자열 |
| BLOB | 바이너리 데이터 |
| NULL | 값이 없음 |
CREATE TABLE product(
product_id INTEGER PRIMARY KEY,
product_name TEXT,
price INTEGER,
description TEXT
)
회원 테이블과 상품 테이블을 생성합니다.
c = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS member(
member_id INTEGER PRIMARY KEY,
name TEXT,
email TEXT
)
""")
cursor.execute("""
CREATE TABLE IF NOT EXISTS product(
product_id INTEGER PRIMARY KEY,
product_name TEXT,
price INTEGER
)
""")
conn.commit()
conn.close()
print("데이터베이스 생성 완료")
실행 후 생성되는 파일명은 shop.db이며, 테이블은 member와 product입니다.
SQLite 데이터베이스는 DB Browser for SQLite 프로그램을 사용하면 쉽게 확인할 수 있습니다.
- DB Browser for SQLite 실행
- Open Database 클릭

- SQLite는 경량 데이터베이스로 별도의 서버 설치가 필요 없다.
- sqlite3 모듈을 사용하여 쉽게 데이터베이스를 생성하고 관리할 수 있다.
- 데이터베이스 파일은 자동으로 생성되며, 연결 후에는 반드시 종료해야 한다.
- Cursor 객체를 사용하여 SQL 문장을 실행한다.
- 테이블 생성 시 IF NOT EXISTS를 사용하여 오류를 방지할 수 있다.
- SQLite에서 자주 사용하는 자료형은 INTEGER, REAL, TEXT, BLOB, NULL이 있다.