코딩/파이썬

[새싹 성동 2기] SQLite 데이터베이스 연동 가이드

insu90 2024. 12. 11. 22:04

SQLite를 사용하여 데이터베이스를 연동하고 데이터를 생성, 조회, 수정, 삭제하는 과정을 단계별로 정리한 가이드입니다.

 

 

1. 데이터베이스 연결 및 테이블 생성

SQLite 데이터베이스에 연결하고 사용자(users) 테이블을 생성하는 코드 예제입니다.

import sqlite3

# 데이터베이스 연결
# SQLite 데이터베이스 파일 'example.db'에 연결
conn = sqlite3.connect("example.db")
print(conn)

# # 커서 생성
# SQL 명령을 실행하기 위한 커서 객체를 생성
cursor = conn.cursor()

# 테이블 생성
sql = """
create table if not exists users (
    id integer primary key autoincrement,
    name text not null,
    age integer not null,
    email text unique not null
)
"""
cursor.execute(sql)

# 커서와 연결을 종료
# 커서를 닫아 관련된 자원을 해제합니다
cursor.close()
# 연결을 닫아 모든 변경 사항을 저장하고 자원을 해제합니다
conn.close()

 

2. 데이터 추가 (INSERT)

INSERT INTO를 사용하여 데이터를 추가하는 예제입니다.

import sqlite3

# 데이터베이스 연결
conn = sqlite3.connect("example.db")

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

# 데이터 추가
# 사용자 입력을 안전하게 처리하기 위한 파라미터화된 쿼리 (SQL Injection 방지)
sql = "INSERT INTO users (name, age, email) VALUES (?, ?, ?)"
cursor.execute(sql, ("Alice", 30, "alice@test.com"))
cursor.execute(sql, ("Bob", 40, "bob@test.com"))

# 변경사항 저장
conn.commit()

# 커서와 연결을 종료
cursor.close()
conn.close()

 

3. 데이터 조회 (SELECT)

테이블의 데이터를 조회하는 코드입니다.

import sqlite3

# 데이터베이스 연결
conn = sqlite3.connect("example.db")

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

# 데이터 조회
sql = "SELECT * FROM users"
rows = cursor.execute(sql)
print("데이터 조회 결과:")
for row in rows:
    print(row)

# 커서와 연결을 종료
cursor.close()
conn.close()

 

 

4. 데이터 수정 (UPDATE)

UPDATE를 사용하여 데이터를 수정하는 코드입니다.

import sqlite3

# 데이터베이스 연결
conn = sqlite3.connect("example.db")

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

# 데이터 수정
sql = "UPDATE users SET age = ? WHERE name = ?"
cursor.execute(sql, (300, "Alice"))

# 변경된 데이터 확인
sql = "SELECT * FROM users"
rows = cursor.execute(sql)
print("수정 후 데이터:")
print(list(rows))

# 변경사항 저장
conn.commit()

# 커서와 연결을 종료
cursor.close()
conn.close()

5. 데이터 삭제 (DELETE)

DELETE를 사용하여 데이터를 삭제하는 코드입니다.

import sqlite3

# 데이터베이스 연결
conn = sqlite3.connect("example.db")

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

# 데이터 삭제
sql = "DELETE FROM users WHERE name = ?"
cursor.execute(sql, ("Bob",))

# 삭제 후 데이터 확인
sql = "SELECT * FROM users"
rows = cursor.execute(sql)
print("삭제 후 데이터:")
print(list(rows))

# 변경사항 저장
conn.commit()

# 커서와 연결을 종료
cursor.close()
conn.close()

 

데이터베이스 연동 순서

데이터베이스 연동의 기본 순서를 요약하면 다음과 같습니다:

  1. 연결 및 커서 생성: 데이터베이스와의 연결을 설정하고 커서를 생성합니다.
  2. 쿼리 작성 및 실행: 필요한 SQL 쿼리를 작성하여 실행합니다.
    • 변경 쿼리: 데이터를 추가, 수정, 삭제하는 경우 commit() 호출이 필요합니다.
    • 조회 쿼리: 데이터를 조회하고 순회하며 처리합니다.
  3. 커서 및 연결 종료: 모든 작업 후 커서와 연결을 종료합니다.

데이터베이스 URL 구성

다양한 데이터베이스와 연동할 때 사용하는 URL 형식입니다:

  • 형식: dialect+driver://username:password@host:port/database
  • 설명:
    • dialect: 데이터베이스 유형 (예: sqlite, mysql, postgresql)
    • driver: 드라이버 (예: pysqlite, pymysql, psycopg2)
    • username: 사용자명
    • password: 비밀번호
    • host: 데이터베이스 서버 주소
    • port: 포트 번호
    • database: 데이터베이스 이름 또는 SQLite 파일 경로

주요 데이터베이스 URL 예시

데이터베이스URL 형식

MySQL mysql+pymysql://username:password@host:port/dbname
PostgreSQL postgresql+psycopg2://username:password@host/dbname
Oracle oracle+cx_oracle://username:password@host:port/dbname

 

이 가이드를 따라 SQLite와 같은 데이터베이스를 쉽게 연동하고 데이터를 처리할 수 있습니다.

 

 

 

*생성형 AI 활용한 클라우드&보안 전문가 양성캠프 과정의 교육내용 정리 자료입니다.