파이썬으로 파일을 만들어서 실행하면 SQlite에 테이블 혹은 데이터를 추가할 수 있다.
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 테이블이 생성되었다.
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 라는 메서드로 명령을 실행하면 한번에 여러 데이터를 보낼 수 있다.
결과물
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 데이터베이스의 데이터 목록이 출력된다.
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으로 변경된 모습이다.
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 코드를 보유한 항목을 제거한다.
결과물
성공적으로 제거된 모습이다.