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()
데이터베이스 연동 순서
데이터베이스 연동의 기본 순서를 요약하면 다음과 같습니다:
- 연결 및 커서 생성: 데이터베이스와의 연결을 설정하고 커서를 생성합니다.
- 쿼리 작성 및 실행: 필요한 SQL 쿼리를 작성하여 실행합니다.
- 변경 쿼리: 데이터를 추가, 수정, 삭제하는 경우 commit() 호출이 필요합니다.
- 조회 쿼리: 데이터를 조회하고 순회하며 처리합니다.
- 커서 및 연결 종료: 모든 작업 후 커서와 연결을 종료합니다.
데이터베이스 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 활용한 클라우드&보안 전문가 양성캠프 과정의 교육내용 정리 자료입니다.
'코딩 > 파이썬' 카테고리의 다른 글
[새싹 성동 2기] FastAPI 라우팅 가이드 (0) | 2024.12.11 |
---|---|
[새싹 성동 2기] FastAPI로 간단한 웹 애플리케이션 만들기 (0) | 2024.12.11 |
[새싹 성동 2기] 객체 지향 프로그래밍 (OOP) 기초 (0) | 2024.12.11 |
[새싹 성동 2기] Python에서 파일 처리하는 방법 (1) | 2024.12.09 |
[새싹 성동 2기]Python 데이터 타입과 연산자 기초 정리 (1) | 2024.12.09 |