SQLite Python 연결

JoyJuhee·2022년 11월 2일
0

Python

목록 보기
16/22
post-thumbnail

데이터베이스 열기 -> 커서 생성 -> 명령 작성 -> 커밋 or 롤백 -> 명령 실행 -> 데이터베이스 닫기

create

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

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

# sql 명령 작성
CREATE_SQL = """
    CREATE TABLE IF NOT EXISTS Item (
        id integer primary key autoincrement,
        code next not null,
        name text not null,
        price integer not null
    )
"""

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

# create 할때는 commit할 필요가 없다.

# 데이터베이스 닫기
conn.close()

insert

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

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

# sql 명령 작성
INSERT_SQL = """
    INSERT INTO item(code, name, price) VALUES(?,?,?)
"""

# 데이터 여러개 한번에 추가하기
data = (
    ('A00002', '에어컨 20평형', 350000),
    ('A00003', '최신형 스마트폰', 800000),
    ('A00004', '가성비 노트북', 650000),
    
)
# sql 명령 실행
cur.execute(INSERT_SQL, ('A00001', '게이밍 마우스', 38000))

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

# 데이터베이스 닫기
conn.close()

select

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

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

# sql 명령 작성
SELECT_SQL = """
    select * from item limit 2
"""

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

rows = cur.fetchall() #select할 때는 fetchall 사용
for row in rows:
    print(row)

# 데이터베이스 닫기
conn.close()

update

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

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

# sql 명령 작성
UPDATE_SQL = """
    UPDATE Item set price = 650000 where code = 'A00002';
"""

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

conn.commit()

# 데이터베이스 닫기
conn.close()

delete

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

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

# sql 명령 작성
DELETE_SQL = """
    DELETE FROM Item WHERE code = 'A00002';
"""

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

conn.commit()

# 데이터베이스 닫기
conn.close()

출처 : 패스트캠퍼스 Python & Django로 시작하는 웹 프로그래밍

0개의 댓글