SQLite3 모듈이란?
파이썬에서 서버 없이 로컬에서 파일로 DB를 관리할 수 있는 SQLite를 다룰 수 있는 모듈
경량화 되어 있어서 많은 소프트웨어에서 내장 DB로 많이 사용된다.
SQLite3 모듈 기능
ㆍSQLite DB 생성 및 연결
ㆍSQL 쿼리 실행
ㆍ데이터 검색, 추가, 수정, 삭제
ㆍ트랜잭션 처리
SQLite3는 별도의 설치 필요없이 import를 하면 사용할 수 있다.
import sqlite3
sqlite3.connect()
sqlite3.connect() 함수는 DB에 연결하는 함수이다.
이 함수를 통해 DB 파일에 접속하고, 연결된 Connection 객체를 반환한다.
ㆍ database : 연결할 SQLite DB 파일의 경로
ㆍ timeout : 연결 시도 시간 초과 시간 (default = 5s)
ㆍ detect_types : 데이터 타입 자동 감지 여부 (default = 0)
ㆍ isolation_level : 트랜잭션 격리 레벨 설정
ㆍ check_same_thread : 스레드 간 동시 접근 허용 여부
ㆍ factory : 커서 캐시 크기
example)
sqlite3.conntect(database, timeout=5.0, dect_types=0, isolation_level=None, check_same_thread=True)
sqlite3.cursor.execute()
cursor.execute() 함수는 SQL 쿼리를 실행하는 메서드이다.
이 함수를 사용하여 DB에서 데이터를 조회, 삽입, 수정, 삭제 등의 작업을 수행할 수 있다.
cursor.excute(sql_query, (parameters))
ㆍsql_query : 실행할 SQL 쿼리
ㆍparameters : SQL 쿼리에 전달할 매개변수
cursor.execute() 함수는 SQL 쿼리에 변수를 전달하는 기능도 제공한다.
SQL 쿼리 안에 ?를 넣어 변수 위치를 표시하고, execute() 함수의 두 번째 파라미터로 매개변수를 전달한다.
이때 매개변수는 튜플 형태로 전달한다.
example)
cursor.execute("INSERT INTO posts (title, content, date) VALUES (?, ?, ?)", (title, content, date))
cursor.execute("UPDATE posts SET title = ?, content = ? WHERE id = ?", (title, content, post_id))
DB 연결을 종료하기 전에 반드시 commit() 메서드를 통해 변경 내용을 저장해야 함.
from flask import Flask, request, redirect, render_template
import sqlite3
from datetime import datetime
app = Flask(__name__)
now = datetime.now()
date = now.strftime('%Y-%m-%d %H:%M')
DATABASE = 'database.db'
def create_table():
conn = sqlite3.connect(DATABASE)
cur = conn.cursor()
cur.execute('''
CREATE TABLE IF NOT EXISTS posts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
content TEXT NOT NULL,
date TEXT NOT NULL
)
''')
conn.commit()
conn.close()
'TIL > SQL' 카테고리의 다른 글
SQL DB & NoSQL DB (1) | 2024.03.29 |
---|---|
SQL 기본 문법(SELECT, WHERE, GROUP BY, ORDER BY, IF, CASE) (0) | 2024.03.25 |
SQL DATE_FORMAT (0) | 2024.03.25 |