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

정영찬·2022년 2월 2일
0

사용순서

  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개의 댓글