패스트캠퍼스 한 번에 끝내는 파이썬 웹 개발 초격차 패키지 pt2 Sqlite3 사용방법

정영찬·2022년 2월 2일

사용순서

  1. DdataBase 파일 열기
  2. 커서(cursor)생성
  3. SQL 명령 실행
  4. 커밋 또는 롤백
  5. 데이터베이스 닫기

파이썬으로 파일을 만들어서 실행하면 SQlite에 테이블 혹은 데이터를 추가할 수 있다.

테이블 생성(CREATE)

import sqlite3

# 데이터베이스 열기 - 이때 데이터베이스 파일이 있는 경로를 자세히 기록해야한다.
conn = sqlite3.connect('C:/Users/jhs00/OneDrive/바탕 화면/공부자료/PYTHON_ADVANCE/myvenv/Chapter05/SQL_DDL.db')

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

#SQL 명령작성

CREATE_SQL = """
    CREATE TABLE IF NOT EXISTS item( 
        id integer primary key autoincrement,
        code text not null,
        name text not null,
        price integer not null
    )
"""


#SQL 명령 실행
cur.execute(CREATE_SQL)

# 데이터베이스 닫기

conn.close()

결과물

item 테이블이 생성되었다.

테이블 데이터 삽입(INSERT)

import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('C:/Users/jhs00/OneDrive/바탕 화면/공부자료/PYTHON_ADVANCE/myvenv/Chapter05/SQL_DDL.db')

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

#SQL 명령작성

INSERT_SQL = "INSERT INTO item(code, name, price)VALUES (?,?,?)"


#SQL 명령 실행
cur.execute(INSERT_SQL, ('A000001', '게이밍 마우스', 38000))


# 커밋 : INSERT, UPDATE, DELETE는 commit 을 해야 실제 데이터 베이스에 반영된다.
conn.commit()

# 데이터베이스 닫기

conn.close()

데이터를 한번에 여러개를 보내고 싶을 때

import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('C:/Users/jhs00/OneDrive/바탕 화면/공부자료/PYTHON_ADVANCE/myvenv/Chapter05/SQL_DDL.db')

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

#SQL 명령작성

INSERT_SQL = "INSERT INTO item(code, name, price)VALUES (?,?,?)"

#데이터 여러개 한번에 추가하기
data = (
    ('A000002', '에어컨 20평형', 350000),
    ('A000003', '최신형 스마트폰', 800000),
    ('A000004', '가성비 노트북', 650000)
)


#SQL 명령 실행
cur.executemany(INSERT_SQL, data)


# 커밋 : INSERT, UPDATE, DELETE는 commit 을 해야 실제 데이터 베이스에 반영된다.
conn.commit()

# 데이터베이스 닫기

conn.close()

이중 튜플로 만들어진 data 항목을 만들고 executemany 라는 메서드로 명령을 실행하면 한번에 여러 데이터를 보낼 수 있다.

결과물

데이터 조회(SELECT)

import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('C:/Users/jhs00/OneDrive/바탕 화면/공부자료/PYTHON_ADVANCE/myvenv/Chapter05/SQL_DDL.db')

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

# SQL 명령작성

SELECT_SQL = "SELECT * FROM item"



# SQL 명령 실행
cur.execute(SELECT_SQL)

# fetchall 을 이용해서 데이터를 직접 받아와야 한다. 
rows = cur.fetchall()
for row in rows:
    print(row)

# 데이터베이스 닫기

conn.close()

결과물

파이썬 터미널 화면에 item 데이터베이스의 데이터 목록이 출력된다.

데이터 수정(UPDATE)

import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('C:/Users/jhs00/OneDrive/바탕 화면/공부자료/PYTHON_ADVANCE/myvenv/Chapter05/SQL_DDL.db')

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

# SQL 명령작성

UPDATE_SQL = "UPDATE item set price = 650000 WHERE code ='A000002';"


# SQL 명령 실행
cur.execute(UPDATE_SQL)

#커밋 
conn.commit()

# 데이터베이스 닫기

conn.close()

commit()은 INSERT, UPDATE, DELETE 에서 필수적으로 실행해야할 메서드이다. 이걸 실행하지 않으면 sqlite 에 데이터가 삽입/수정/제거되지 않는다.

결과물

A000002 code를 보유한 name 의 가격이 650000으로 변경된 모습이다.

삭제(DELETE)

import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('C:/Users/jhs00/OneDrive/바탕 화면/공부자료/PYTHON_ADVANCE/myvenv/Chapter05/SQL_DDL.db')

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

# SQL 명령작성

DELETE_SQL = "DELETE FROM item WHERE code = 'A000002';"


# SQL 명령 실행
cur.execute(DELETE_SQL)

#커밋
conn.commit()

# 데이터베이스 닫기

conn.close()

A000002 코드를 보유한 항목을 제거한다.

결과물

성공적으로 제거된 모습이다.

profile
개발자 꿈나무

0개의 댓글